Implementing Free Shipping for VIP Tiers on Shopify Plus
    • Dark
      Light

    Implementing Free Shipping for VIP Tiers on Shopify Plus

    • Dark
      Light

    Article summary

    Products


    Loyalty & Referrals
    Supported plans

    Premium, Enterprise

    eCommerce Platform

    Shopify Plus

    Offer free shipping to shoppers based on their VIP tier status. Free shipping is a great way to incentivize users to engage with your Loyalty program. This article will show how to implement free shipping on Shopify Plus.

    Available for:
    Free shipping is only possible if you have a VIP tiers Program set up.

    Before you start

    If you don’t have the Shopify Script Editor App, download it on the Shopify app store here.

    Accessing your shipping rate names

    1. In your Shopify store go to Settings > Shipping and Delivery.
    2. Click Manage Rates.
    3. Copy the Rate name, i.e. “Expedited USA” or “DHL Express (Discounted rates from Shopify Shipping)”. You need to copy the Rate name EXACTLY as it appears in this field.

    Creating a new shipping script

    1. Click Apps > Script Editor
    Please note:
    If you already have a shipping script running, you should be aware that if you publish a new one, any existing shipping script will be disabled. To avoid disabling an existing script, add our code above the last line of your existing script. See instructions for adding to your existing script.

    If you are creating a new script, do the following:

    1. Click Create script.
    2. Click Shipping rates.
    3. Select Modify shipping rate price.
    4. Click Create script.
      Example of what you will see after clicking Create script:
    5. Select “Code” (not Input).

    Embedding the code in your Script Editor

    The next step is to paste the Yotpo shipping code into your shipping script. Below are three examples of code, choose one based on what kind of shipping discounts you want to offer.

    If you want a percentage discount on shipping:

    Below is an example script you can use if you want to offer a percentage discount on shipping for one VIP tier.

    • Replace “swell_tier_gold” with your VIP tier name. The name will always begin with “swell_tier_” and then your tier name, for example, swell_tier_super gold tier
    • Replace “shipping_rate_name” with the Rate name you want to discount. The names should match exactly how they appear on your shipping settings page.
    • After “DISCOUNT_RATE” Enter the percentage of discount to offer on the above Rate. This should be a number between 0.01-0.99.
      For example, 0.25 means you’re offering a 25% discount on shipping. In this example, if a shopper was a gold member and the shipping method cost $16, this would discount $4 off the shipping price.

    Example script for a percentage discount on shipping

    Additional instructions for adding to an existing shipping script

    You only need to paste lines 4-21 if you are adding the Yotpo code to an existing shipping script. Paste it after your other code, inside your existing loop.

    This means inserting the Yotpo code just before the last line which usually looks like this:

    Output.shipping_rates = Input.shipping_rates.

    Input.shipping_rates.each do |shipping_rate|
      next unless shipping_rate.source == "shopify"
    
      standard_shipping_flag = false
      
      YOTPO_TIER = "swell_tier_gold"
      SHIPPING_NAME = "shipping_rate_name"
      DISCOUNT_RATE = 0.25
    
      customer = Input.cart.customer
      if customer
        if (customer.tags.include?(YOTPO_TIER))
            standard_shipping_flag = true
        end
      end
    
      if shipping_rate.name == SHIPPING_NAME && standard_shipping_flag
        shipping_rate.apply_discount(shipping_rate.price * DISCOUNT_RATE, message: "Discounted Shipping")
      end
    
    end
    
    Output.shipping_rates = Input.shipping_rates

    If you want to offer free shipping

    Below is an example script you can use if you want to offer free shipping to two different VIP Tiers.

    • Replace “swell_tier_gold”/”swell_tier_super gold” with your VIP Tier names. The name will always begin with “swell_tier_” and then your tier name, for example, swell_tier_super gold tier
    • Replace “shipping_rate_name” with the Rate name you want to offer for free. The name should match exactly how it appears on your shipping settings page.

    Example script for free shipping

    Additional instructions for adding to an existing shipping script

    You only need to paste lines 4-21 if you are adding the Yotpo code to an existing shipping script. Paste it after your other code, inside your existing loop.   

    This means inserting the Yotpo code just before the last line which usually looks like this:

    Output.shipping_rates = Input.shipping_rates.

    Input.shipping_rates.each do |shipping_rate|
      next unless shipping_rate.source == "shopify"
    
      standard_shipping_flag = false
      
      YOTPO_TIER_1 = "swell_tier_gold"
      YOTPO_TIER_2 = "swell_tier_super gold"
      SHIPPING_NAME = "shipping_rate_name"
    
      customer = Input.cart.customer
      if customer
        if (customer.tags.include?(YOTPO_TIER_1) or customer.tags.include?(YOTPO_TIER_2))
            standard_shipping_flag = true
        end
      end
    
      if shipping_rate.name == SHIPPING_NAME && standard_shipping_flag
        shipping_rate.apply_discount(shipping_rate.price * 1, message: "Free Shipping")
      end
    
    end
    
    Output.shipping_rates = Input.shipping_rates

    If you want to free shipping for multiple shipping methods

    Below is an example script you can use if you want to offer free shipping to two different VIP Tiers, with a discount on two different shipping methods.

    • Replace “swell_tier_gold”/”swell_tier_super gold” with your VIP Tier names. The names should match exactly your Shopify Customer tags belonging to each tier. Learn more about creating and using tags in Shopify.
    • Replace “shipping_rate_name” with the different Rate names you want to offer for free. The names should match exactly how they appear on your shipping settings page.

    Example script for free shipping with two shipping methods

    Additional instructions for adding to an existing shipping script

    Only paste lines 4-21 if you are adding the Yotpo code to an existing shipping script. Paste it after your other code, inside your existing loop.   

    This means inserting the Yotpo code just before the last line which usually looks like this:

    Output.shipping_rates = Input.shipping_rates.

    Input.shipping_rates.each do |shipping_rate|
      next unless shipping_rate.source == "shopify"
    
      standard_shipping_flag = false
      priority_shipping_flag = false
      
      YOTPO_TIER_1 = "swell_tier_gold"
      YOTPO_TIER_2 = "swell_tier_super gold"
      STANDARD_SHIPPING_NAME = "shipping_rate_name"
      PRIORITY_SHIPPING_NAME = "shipping_rate_name"
    
      customer = Input.cart.customer
      if customer
        if (customer.tags.include?(YOTPO_TIER_1))
            standard_shipping_flag = true
        end
        if (customer.tags.include?(YOTPO_TIER_2))
            priority_shipping_flag = true
        end
      end
    
      if shipping_rate.name == STANDARD_SHIPPING_NAME && standard_shipping_flag
        shipping_rate.apply_discount(shipping_rate.price * 1, message: "Free Shipping")
      end
      if shipping_rate.name == PRIORITY_SHIPPING_NAME && priority_shipping_flag
        shipping_rate.apply_discount(shipping_rate.price * 1, message: "Free Shipping")
      end
    
    end
    
    Output.shipping_rates = Input.shipping_rates

    Next steps

    Make sure that you are telling your customers about your new free shipping perks!

    If you have not already done so, update the text in your VIP Tiers Program Settings.


    Was this article helpful?