Background
This tutorial is going to discuss the potential issues that occur with Shopify pricing when a customer orders multiple products that are stocked in different warehouses OR are in different shipping profiles.
Issue Explained
Let's say you have two products, where each of them are only in one warehouse:
- Product A - In Stock in Warehouse A only
- Product B - In Stock in Warehouse B only
When the user reaches the checkout, Shopify sends us one request for each of these items, because they cannot be shipped together as they are not stocked in the same warehouse.
This also occurs when you split your products into multiple shipping profiles inside Shopify - except they ship them from the same location, but as two requests.
What we get sent from Shopify is:
- Get Shipping Quote For Product A from Warehouse A to Customers Address
- Get Shipping Quote For Product B from Warehouse B to Customers Address
Shopify then takes the results from both of these requests, and combines the cheapest from both of them into a single shipping price.
Let's say the options returned where:
- Product A
- Regular Shipping - $20
- Express - $25
- Product B
- Regular Shipping - $25
- Express - $30
If the names of the shipping methods match, it retains the name, so in this case, the user would see:
- Regular Shipping - $45
- Express - $55
But, let's say one item was heavy, and required a tailgate, and the other was small and did not:
- Product A (small)
- Regular Shipping - $20
- Express - $25
- Product B (big)
- Business - $250
- Tailgate Delivery- $550
Now, in this instance, the names are not the same, so Shopify cannot combine them.
Instead, it takes the Cheapest available returned option for each product, and combines them as a single option called SHIPPING.
So, in this example, the user would see:
- Shipping - $270
The issue here is that the user may not be a business, and they may require a tailgate - but they are never presented with that option to choose from, and are charged the lesser business price.
Unfortunately, there are limited options with what we can do in this situation. They are:
- Only offer tailgate - that way the user will always be charged the higher price
- Put the smaller items into the other larger item location, but out of stock - then Shopify should include them with the bigger item in that request, but also still make the separate fulfilment on the order - but I'd test this.
Given that Shopify sends us two requests, and each request has no link to the other (IE. there is nothing that tells us they are related in anyway, or that two requests are coming), we cannot add handling on our side to combine the requests into one.
The other potential issue here is when we have a freight error and use the fall back price/description.
A fallback price is displayed whenever there is an error in us generating a price for a consignment. Common issues are:
- No routes/prices available due to no zone rates
- Product not added to Machship - so can't get dimensions
In these cases, we would return:
- Contact Us For A Freight Quote - $99
Going back to the above example, the issue will quickly become evident:
- Product A (small)
- Regular Shipping - $20
- Express - $25
- Product B (big)
- Contact Us For A Freight Quote - $99
What the user would see in their cart after Shopify returns the cheapest price in each case is:
- Shipping - $119
Potential Solutions
The resolution to this issue is limited, other than to ensure you pay attention to the error emails send by FusedShip and fixing up issues (such as adding products or rates).
The other option is to turn off the back up rates, or increase them. If they were turned off, it may say shipping is not available, or it would use the inbuilt Shopify fallback rates option.