What are Shipping Rules?
The Shipping Rules in Better Shipping allow you to setup special cases that will override your normal shipping. You can use the shipping rules to setup promotions such as "Free Shipping Over $50". Or you can use the rules to add or subtract an amount off the shipping price such as if a specific product is in the customers cart, subtract $5 from the shipping total.
One thing to note is that the shipping rules happen last in the calculation. It will calculate the per product and tiered shipping prices of your products first, and then apply the shipping rules. If there are particular products that you do not wish to be included in the shipping rules, you can set the "Skip Shipping Rules" setting on the "Products" page in the Better Shipping shipping rate.
How to use the Shipping Rules
There are many, many ways to use the shipping rules for your store. We will go through a few examples using each of the features to get you familiar, but we am constantly amazed at how creative people can be with making the rules work for them and their shipping strategies.
The first example we will go through is to use the price based rules. These are used for rules such as "Free over $100" and setting flat shipping rates depending on how much the customer spends.
Once you are on the Shipping Rules page, click on the "Create New Rule" button, which takes you to the create shipping rule page.
On the create shipping rule page, the first thing to enter is the name of the new shipping rule. This name can be anything you want, and your customers will not see the name of the rule. It is just for you to easily identify the rule. Descriptive names work the best here. For this example we are going to call the rule "Free over $50".
Then if we click on the dropdown, we are presented with a few options:
Based on order price allows you to set a price range that triggers when a customer cart is within the range. This price range works off the product cost of your products, and not the shipping cost. These are used for rules such as "Free over $100" and setting flat shipping rates depending on how much the customer spends in your store.
Based on order weight rules work much the same way as the order price rules, however instead of working from the customer cart price, it works from the customer cart weight. This is the total cart weight calculated from the customer cart and the weights you have set in your Products page in your Shopify Admin. These rules can be sued for calculating flat shipping prices based on weight, special rules that only trigger for very heavy items, special rules that only trigger for a combination of heavy items.
Order includes products allows you to make changes based on if there are specific product in the order. This can be used for promotions, or if you just want to add an extra amount if a specific item is in the customers cart.
Order doesn't include products is much the same as the Order includes products rule, but will trigger if the specified products are not in the customers cart.
All orders will trigger on every order. This can be used if you want to add on a specific amount on top of your product rates, for example if your rate is to a shipping zone that will use your normal rates, but then has a special tax you need to add.
We will go through an example for each of these, but for the first example, choose "Based on order price" as we are making the "Free over $50" shipping rule.
Once the "Based on order price" option is chosen, two price fields are displayed. These are for specifying the range you want the rule to trigger in. For example, if you want the rule to trigger when the customer orders between $15 and $20 worth of products, but not trigger when they order $20, you would put $15 in the low range, and $19.99 in the high range.
For our example we want $50 and above, so we will put $50 in the low range and leave the high range blank.
The next dropdown is used to choose the effect you want your shipping rule to have if it is triggered. There are 3 different effects your rules can have.
Replace total shipping price will cause all previous calculations to be overridden, and replaces the total shipping cost the customer will pay, with the value you specify. This is useful for the current example "Free over $50" as we can set the total shipping price to be $0 (free). This effect can also be useful if you setup multiple shipping rules that trigger at different ranges, you can setup flat rate shipping based on how much a customer orders. For example you could setup 3 rules, "$10 shipping if you spend $0-$4.99", "$15 shipping if your spend $5-9.99", "$20 shipping if you spend more than $10".
Add/Subtract amount lets you add or subtract a fixed amount or percentage from the total shipping cost. This allows you to run promotions "10% off shipping if you spend more than $50", or add an extra charge if the customer is in a particular zip code, or add $20 if there is a particular product in the shopping cart. There are many ways to use this effect.
Disable shipping rate will disable the current Better Shipping shipping rate, and will not generate a shipping total for the customer at checkout. This is useful if you have specific items that can't be shipped to certain states. If you are using Better Shipping exclusively (if you are using other shipping apps or shopify generated rates, we can't disable those), you can stop customers from checking out and ordering those items. An important point about the disabled rate rules is the use of the "Rule queue". If you have the disable rate rule as the last rule in the queue to execute (largest number), it will disable the rate and no rate will be shown to the customer. However, if you have any rules that are after the disable rate rule in the rule queue (larger still), and they are triggered (such as a "Free over $50" rule), then the last rule to be executed takes precedence and a rate will be generated. It just goes to show how important the rule queue is! More information about the rule queue can be found below.
Again, we will go through all of these with examples, however, for the current "Free over $50" rule we are creating, we will choose the "Replace total shipping price" effect and enter 0 as the value in the field that appears.
The final step is to click "Create Rule" at the bottom of the page to create the new shipping rules. You will be taken back to the shipping rules page where you can see the rule has been created.
Now that we have a rate created we can see that it has a number "1" in the "Rule queue" column. The Rule queue is the execution order of your rules. When you have only a single shipping rule, it is not important, however, if you have more than one shipping rule, the rule queue determines the order of execution of the rules. For example, if you have a shipping rule "Free shipping over $50", and another rule that says "$20 shipping for order weight above 10 lbs". If a customer orders products that cost over $50 and also the total weight is over 10 lbs, which rule should be applied? The free shipping rule? Or the $20 weight rule. This is where the rule queue comes in. The rule queue works as execution order from lowest number first to the highest number last. So if we set the "Free over $50" as rule queue 1, and the weight rule as rule queue 2, then the app goes through the rule queue in order from lowest number to highest number. The "Free over $50" rule is executed first, setting the total shipping cost to $0. And then the "$20 shipping for order weight above 10 lbs" rule is executed next, setting the total shipping cost to $20. So the customer will see $20 at checkout.
If we switch the order of the rule queue for those two rules, setting the "$20 shipping for order weight above 10 lbs" as rule queue 1, and the "Free over $50" as rule queue 2, and the customer makes exactly the same order in their cart. The app will execute the weight rule first, setting the total shipping to $20. Then the "Free over $50" rule is triggered, setting shipping to $0. So the customer will see "Free" at the checkout.
One final thing to note is if the rule is not triggered, it will just be ignored. So if the customer ordered a cart that weights over 10 lbs, but is less than $50. Then the same execution order happens, except when it gets to the "Free over $50", as the cart is less than $50, it will not be applied and the app will move on to the next rule if there is one. In this case, the customer would see $20 at checkout.
Now that we have created out first rule, from here, you can create more rules by clicking on the "Create New Rule" button again, or if you are finished, click on the "Finish" button and you will be taken back to the main shipping rates page. Once you have clicked "Finish", that is the end of creating a new shipping rate for your store. The shipping rate is now active and you can run test orders to see if it is behaving the way you expect.
If you are interested in examples for the other types of shipping rules, keep reading, otherwise you can continue now to the next part of the help by clicking on the "Next" button at the bottom of this page.
Setting up a weight based shipping rule
The weight based shipping rules are very similar to the price based shipping rules so we won't spend a lot of time on this.
First create a new rule by clicking on the "Create New Shipping Rule" button.
Once the page has loaded we have the rule name field again at the top for a new rule. Again, we want to put something descriptive as the name (remembering that the customer does not see this name).
In this example rule we are going to pretend that we have some heavy items in our store. Lets say we have a "Medicine Ball" product that has a product weight of 20 lbs, and a "Kettle Weight" that has a product weight of 5 lbs. For our shipping, we have the Medicine Ball to ship for $15 per product and the Kettle Weight ships for $5 per product. However, our shipping carrier charges an extra $10 for every 25 lbs of shipping weight, which we also need to charge to the customer. So to do this, we can setup some weight based shipping rules for 25-50lbs, 50-75lbs, 75-100lbs and so on.
This rule is going to add $10 to the calculated shipping cost if the customer cart weight is between 25 lbs and 50 lbs. However, the two ranges in the Shipping rules are inclusive. Which means that the rule will trigger if the cart weight is 25 lbs as well as if the cart weight is 50 lbs, which is not quite what we want. So lets call this rule: "Add $10 between 25 lbs and 49.99 lbs".
From the dropdown, we also select "Based on order weight".
Again, like the Based on order price rules, we are give two ranges, but also another dropdown to select either kg or lbs. First off we want to work in lbs, so click on the kg dropdown and change it to lbs.
Then we want to put in our range, 25 lbs in the leftmost box and 49.99 in the rightmost box (Note, last time we left the rightmost box blank and it defaulted to "and above", the same can be done with the weight based rule if you need to).
Now we have setup when our rule will be triggered, we want to select what happens to the shipping price. In the next dropdown box we want to choose the "Add/Subtract amount" option. This will allow us to add or subtract a fixed amount (i.e. $10) or a percentage multiple (such as add 10% to the total shipping cost). Once you have selected the dropdown, two fields will appear, the fixed $ amount, and the percentage % amount. You can use just one of the fields, or both of the fields, it is up to you.
The Add/Subtract amount rule does not overwrite the per product shipping, it will add or subtract the amount specified to or from the calculated per product shipping. For example, using the Medicine ball and Kettle weights that ship for $15 per product and $5 per product respectively, if a customer orders 1xMedicine Ball and 1xKettle Weight, then the per product shipping total is calculated at ($15 + $5) = $20 total shipping. If an Add/Subtract rule of $10 is triggered in that order, then the total shipping cost will be ($20 (per product) + $10 (rule)) = $30 total shipping.
The fixed amount field will add on the fixed amount value to the total shipping cost. So if a customer has a cart total of $53.20, and a shipping cost of $10, and if you put $5 in the fixed amount box, the totals will be $53.20 for the cart, $15 for the shipping.
The percentage field, will add on the percentage amount of the total shipping cost, not the total product cost. This means that if your customers cart total is $53.20, and the shipping cost is $10. If you have 10% in the percentage field, it will add 10% to the total shipping cost. So the final charge would be $53.20 for the cart total, and $11 for the total shipping cost.
If use both the fixed amount fields, (say if you wanted to add $5 and also add 10% of the total shipping cost. The order of the two calculations will be the percentage is calculated first, then the fixed amount will be added. So using the same example, $52.20 for the cart total, and $10 for the calculated shipping cost. If you use both fields, the totals will be $53.20 for the cart total, $16 for the shipping total. The $16 is calculated by: ($10 + (10 * 10%)) + $5, or calculated_shipping + percentage + fixed_amount.
Please note, you can also use negative numbers in both the fixed amount and percentage fields. This is useful if you want to give a shipping discount to your customers. For example if you want to run a 10% off shipping promotion, you could enter "-10" in the percentage field.
For the rule that we are making "Add $10 between 25 lbs and 49.99 lbs", we just want to put $10 in the fixed amount box.
Once we have done that, we can click the "Create Rule" button, and our new rule will be created.
We can see that now we have a rule that will cover the 25 lbs to 49.99 lbs range. So from our previous example with the medicine ball and the kettle weight, if a customer orders 1xMedicine Ball and 1xKettle Weight, the cart weight will be 25 lbs, so the rule will trigger and $10 will be added to the shipping total. So as before we will get the per product total of ($15 + $5 = $20) and the shipping rule which adds $10, so the total shipping will be $30.
That is working fine, however, what happens if a customer order 3xMedicine Balls? With a product weight of 20 lbs each, the 60 lbs cart will be out of range of our 25-49.99 shipping rule, so nothing will be added. Our carrier also charges and extra $10 per 25 lbs, so a 60 lbs package will have to charge and extra $20 not $10.
So you can go back and create several more shipping rules, exactly the same as we just did, but this time you want your weight range to be 50-74.99 lbs and add $20, 75-99.99 lbs and add $30 and so on, you can add as many rules as you need. Use your best judgment as to how high you need to go to cover all the costs.
Once you have added all the rules you need, you can click the "Finish" button at the bottom of the rules page to finalize this shipping rate.
Order includes products
The next shipping rule we are going to look at is the Order includes products rule. This rule can be used to detect specific products in the customers cart, and then perform the shipping rule effects on them (replace shipping rate, add/subtract amount, disable rate). One caveat with this shipping rule type, is it is currently only supported for shops with less than 5000 products. If your shop has more than 5000 products, you will not see this shipping rule type.
This is a new type of shipping rule and has many applications. The way we are going to use it is to disable the shipping rate completely if a customer is within the shipping rate's shipping zone and the customer has a particular product in the cart. This is useful if you need to restrict only certain products to specific states or zip codes, such as shipping alcohol, chemical products, hunting equipment etc..
For this example, I've created a t-shirt shop that sells cat t-shirts and dog t-shirts. We are going to restrict the cat t-shirts so they can't be shipped internationally. So for this shipping rate, we have selected our international shipping zone, setup our product shipping rates, and continued onto the shipping rules page.
Again from the shipping rules page, click on "Create New Rule", and enter in the Shipping rule name field a descriptive rule name (the customer will not see this name). We will enter for this rule "Disable cat t-shirts" as we don't want anyone buying cat t-shirts using this shipping rate.
Then from the Choose shipping rule type dropdown choose Order includes products option. Once selected you will see two boxes appear side by side. The leftmost box is a list with all of your products in your shop. The rightmost box will be empty, this is the box we will fill with the products that we want to trigger the rule.
To use the boxes, we can select the products we want in the left hand box, and click on the single arrow button -> to move over the selected products to the right hand box. The double arrow ->-> button will move over all of the products from one box to the other.
Above the arrow buttons is a search field, we can use this to search through our products to find the ones we want. The search field only searches the product names, and does not search by type or collection. This is what we will use now. I'm going to enter in "cat" into the search field to bring up all of the cat t-shirts. Then we'll use the double arrow button ->-> to move over all of the searched cat products to the right hand box.
Now that we have chosen the products we want the rule to trigger on in the right hand box, we can move on to the next step of choosing what happens when the rule is triggered.
In the next dropdown with the label "Choose what happens to the shipping price if the rule is triggered" click the dropdown and choose Disable shipping rate. There are no options for this dropdown.
Once you have selected that, click on the "Create Rule" button to save your new rule.
We can see that this rule will disable the shipping rate if the customer cart contains any of the 4 products that we added in the rule.
If the customer cart contains a product that is not in the rule, the rule will not be triggered. If the customer cart contains a products that is in the rule, the rule will be triggered. If the customer cart contains both a product that is not in the rule, and a product that is in the rule, the rule will be triggered.
Order doesn't include specific products
This rule is almost the same as the "Order includes specific products" rule, however, the "Order doesn't include specific products" rule will trigger when the chosen items are not in the customers shopping cart.
For this example, we will use the same cat and dog t-shirt shop we used for the other rule. However, this time, lets say that instead of disabling the cat t-shirts, that we want to take 10% off the shipping price if you only have dog t-shirts in your cart. So the rule will be "If the order doesn't have cat t-shirts, 10% off shipping".
Again, from the shipping rules page, click "Create New Rule". Then in the shipping rule name field put a descriptive title "10% off if no cat t-shirts", and choose Order doesn't include products from the dropdown box.
Then as before, we use the two boxes to select the products that we want to trigger the rule. Again, we use the search box and type "cat" and select all of the cat t-shirts. All of the products in the right hand box will trigger the rule. So we have all of the cat t-shirts in the right hand box, this means that if a customer shopping cart does not contain any of the cat t-shirts, then this rule will trigger. If the customer cart has one or more of the products in the right hand box, then this rule will not trigger.
Once we have selected all of the cat t-shirts, then we move on to the rule effect dropdown box.
In this dropdown, choose "Add/Subtract amount" as we want to take off 10% if there are no cat t-shirts in the order.
In the % box, put in -10% (don't forget the "-" sign) and then click on the "Create Rule" button to save the rule.
We can now see the rule in the shipping rules page. And if we do a test order we can see that the rule takes off 10% from the calculated shipping rate if there are no cat t-shirts in the order.
The final type of shipping rule is the All orders type. This shipping rule will trigger for every order. It can be used to temporarily disable an entire shipping rate, or allow you to discount or increase your entire shipping calculation when you are running a promotion. This shipping rule will be applied to every customer order for the current shipping rate.
For this example, let's set free shipping for this shipping rate, as we are currently running a promotion for free shipping for our entire shop. So instead of resetting all of our product rates that we have already entered, we can just add an "All orders" rule to set free shipping temporarily. From the shipping rules page, click on "Create New Rule". Then in the shipping rule name field put "All orders free shipping".
From the shipping rule type dropdown, choose All orders. And as this rule will trigger for every order, there are no extra details you need to provide, so we can move straight on to the next dropdown to select what happens when the rule is triggered.
In the final dropdown for the rule effect, choose "Replace total shipping price", and put $0 (free shipping) in the field that appears below. Then click on the "Create Rule" button to save the rule.
We can then see the rule on the shipping rules page.
This is the end of the shipping rules examples. To see more examples for the shipping rates, click the next button at the bottom of this help page and navigate to the examples section.