Highlighting a common error merchants make when setting up WooCommerce Shipping Zones
There is a common misunderstanding among WooCommerce merchants and web developers -- particularly among those new to WooCommerce -- about how WooCommerce Shipping Zones work. This can lead to a belief that a plugin that provides shipping quotes isn't working when the issue is that the shipping zones aren't configured properly.
The key to resolving the issue is to understand the rules WooCommerce uses for its shipping zones:
- Customers only see the methods available for their address and its corresponding shipping zone.
- Shipping zones are assigned based on the first one the customer matches with.
- Each customer matches only one shipping zone.
An Example Of Improperly Implemented Shipping Zones
Let's take a look at an example of improperly implemented shipping zones.
In this case, the merchant has defined two shipping zones. The geography of both is the United States. The merchant thinks the result will be that both the Small Package Quotes - UPS Edition and the Real Time Shipping Quotes plugins will provide rates on the Cart and Checkout pages.
However, when WooCommerce's rules are applied, if the ship-to address is in the United States, the first shipping zone will be a match, and therefore only rates for UPS will appear on the Cart and Checkout pages. Shipping quotes from the Real Time Shipping Quotes plugin will never appear on the Cart and Checkout pages because the first shipping zone will always match first.
An Example Of Properly Implemented Shipping Zones
If the merchant wants shipping quotes from the Real Time Shipping Quotes plugin to appear on the Cart and Checkout pages, then both shipping methods need to appear in the first shipping zone.
The plugins will have settings that govern when one or both will return shipping rates. However, placing them in separate shipping zones with the same geography ensures that the plugin in the second shipping zone will never be included on the Cart or Checkout page.
Related Documents
Setting Up Shipping Zones (From WooCommerce's documentation)