Let's say you have some products from a certain vendor in your shop that aren't allowed to ship internationally, they are only available for domestic shipments. However, all your other products can be shipped to either zone.
- Set-up a new product group for the restricted items. ( If the restricted products are all from a 3rd party dropship vendor, then we recommend setting up a new fulfillment service, and using that fulfillment service's default product group. )
- Add the proper shipping methods to the Domestic zone.
- Leave the International zone blank. You will see a gray badge next to that zone Rate Failure Enabled.
- If you do not see the gray Rate Failure Enabled badge next to the zone, then go to Settings > General. Scroll to the bottom, locate the section Rate Failure, and then click the button Enable Rate Failure.
- You should now see Rate Failure Enabled Badge next to the restricted zone within the restricted product group.
The rate failure setting is enabled by default.
How Shipping Zone Restrictions and Rate Failure work
When you have rate failure enabled for a product group for a given zone, it means that when a product from that group is in an order being shipped to that zone, the app will not return any rates to the Shopify checkout, thus preventing the order from occurring.
The app will not return any rates, even if there are other non-restricted products in the order.
It's a 'one rotten apple spoils the bunch' kind of scenario.
The only problem with is this is that Shopify has no mechanism for showing a error message explaining why there are no shipping methods available.
Provide proper messaging on product pages, cart page, and shipping FAQ on your site.
Because there will be no error message at checkout when the app fails rates to prevent checkout, it is recommended to add messaging on your product pages, cart page, and shipping FAQ, indicating the shipping zone restrictions.
The easiest way to add messaging on product pages is to simply add text within the product description. If you are comfortable using Liquid and editing theme code, then you can also show a message based on product vendor or product type.
Using Liquid you can also show an alert on the cart page when there are products with restrictions in the cart, letting them know before getting to the checkout page, that if they attempt to ship to such and such zone, they will not be able to complete their order.
Is there a better way?
No.
This is the only possible approach we know of to guarantee a customer can not complete a purchase with a restricted product to a restricted zone.
We agree, having an error message when there are no rates returned would be great, but for now this kind of feature doesn't exist.