How to set up and manage shipping rules

Shoppers pay shipping on WooCommerce checkout. The Shipping Rules dashboard allows you to define how shipping costs are calculated and presented. Companion applies your smart rules and ‘hide others when free’ settings on the storefront.

What it is

Shipping Rules is found in the sidebar under Advanced Tools, then Shipping Rules. The page title is Shipping Rules, with the subtitle: Full control over your store’s shipping – zones, shipping methods, rates, smart rules, and shipping classes. This dashboard is separate from WooCommerce Settings. It manages zones, methods, smart rules, and classes, while Companion applies smart rules and ‘hide others when free’ behavior on the checkout. There are no page-level Save or Reset buttons. The dashboard features three tabs: Shipping Zones & Methods (default), Smart Shipping Rules, and Shipping Classes.

How it helps you

Shipping Rules helps you define precise shipping options for your customers. You can set up geographic zones, offer various shipping methods like flat rate or free shipping, and apply smart rules to adjust costs or visibility based on cart contents. This ensures shoppers see accurate and relevant shipping rates at checkout, improving their experience.

What is included

Shipping Zones & Methods Tab

  • New Shipping Zone button: Creates a new shipping zone.
  • Empty state message: ‘No shipping zones yet. Click “New Shipping Zone” to get started.’
  • Accordion zone cards: Expand or collapse to view zone details. Zone order is not editable.
  • Rest of the World zone: A default zone (ID 0) that is always present. It cannot be renamed or deleted, and countries cannot be added or removed from it. Shipping methods can still be added to this zone.
  • New shipping zone dialog: Appears when creating a new zone. Requires a Zone name (max 120 characters). The Create button is disabled until a name is entered.
  • Rename zone (pencil icon): Opens a dialog to change the Zone name.
  • Delete zone: Prompts a confirmation dialog ‘Delete zone “{{name}}”?’ before removing the zone and its methods.
  • Countries in this zone: Allows adding up to 500 countries (ISO codes only) to a zone. Saving countries replaces any existing state or postcode restrictions with country-only entries.
  • Shipping Methods heading: Lists methods within a zone. Methods are not reorderable.
  • Add method dropdown: Allows adding Flat Rate, Free Shipping, or Local Pickup methods.
  • Empty methods message: ‘No shipping methods in this zone yet. Click “Add method” to create one.’
  • Method card: Includes an Enable switch to activate or deactivate the method.
  • Delete method (trash icon): Removes the method without a confirmation dialog.
  • Method Settings: Configures WooCommerce fields (text, price, select) for the method.
  • Free Shipping method extra setting: Hide other shipping methods when this one is available. When enabled, paid shipping methods are hidden at checkout if this free shipping option applies. Local pickup remains available. This setting is off by default and saves immediately.

Smart Shipping Rules Tab

  • Helper text: ‘Surcharge, discount, free, hide, or cap shipping methods based on cart conditions (subtotal, weight, quantity, products, country). A higher-priority rule wins, and a maximum-cost rule always applies last. Affects the live checkout.’
  • New rule button: Creates a new smart rule (hidden while a rule form is open).
  • Empty state message: ‘No rules. Click “New rule”.’
  • Rule list: Displays rule name (or ‘unnamed’), a Disabled badge if off, action badges (e.g., Surcharge, Discount), and which methods it applies to (e.g., All methods, Flat rate). Priority is shown if greater than 0.
  • Delete rule (trash icon): Removes the rule without a confirmation dialog.
  • New rule / Edit rule form:
    • Rule name: Required field with a placeholder (e.g., ‘Surcharge for remote zone’).
    • Priority: Default 0, range 0-1000. Higher numbers mean higher priority.
    • Enabled: Default on.
    • Action: Default Surcharge. Other options include Discount, Free shipping, Hide method, Maximum shipping cost.
    • Amount: Default 0, max 1000000.
    • Type (for Surcharge/Discount): {{cur}} fixed (default) or % of cost. The Maximum shipping cost action forces the type to fixed.
    • Apply to method: Default all. Other options include Flat rate, Free shipping, Local pickup.
    • Free shipping action: Zeroes the cost of matching rates. It does not add a WooCommerce Free Shipping method.
    • Conditions: All conditions must be met for the rule to apply. Includes Min/Max subtotal, Countries (max 300), Min/Max item count, Min/Max weight (kg), and Cart contains (Not applicable, all, Specific products, Categories, Shipping classes). Product, category, and shipping class IDs are limited to 2000.
    • Exclusion: Default No exclusion. If the cart contains specified items, the rule will not apply.
    • Cancel and Save buttons. Saving pushes the configuration to Companion.

Shipping Classes Tab

  • New Shipping Class button: Creates a new shipping class.
  • Empty state message: ‘No shipping classes yet. Click “New Class” to get started.’
  • Table: Displays Name, Slug, Products (count), and Description (dash if empty) for each class, with Edit and Delete actions.
  • New Shipping Class / Edit Shipping Class dialog: Requires a Name (max 120 characters, placeholder e.g., ‘Heavy items’) and an optional Description (max 2000 characters). The Slug is not editable.
  • Delete confirm: Prompts a confirmation dialog ‘Delete shipping class “{{name}}”?’ before removing the class. Products in this class will be left without a shipping class.
  • Assigning a shipping class to a product is done on the product editor page, in the Shipping class field. The option ‘No shipping class’ is available there.

How to turn on and manage each capability

Open Shipping Rules

Open Shipping Rules: Navigate to Advanced Tools in the sidebar, then select Shipping Rules.

Manage Shipping Zones and Methods

  1. Create a new shipping zone: On the Shipping Zones & Methods tab, click New Shipping Zone. Enter a Zone name in the dialog, then click Create.
  2. Add countries to a zone: For any zone except Rest of the World, click Add a country… or Add more. Search for and select countries. Click Save.
  3. Add a shipping method: Within a zone, click the Add method dropdown and choose Flat Rate, Free Shipping, or Local Pickup.
  4. Configure a shipping method: Click Settings on a method card. Adjust the WooCommerce fields as needed, then click Save.
  5. Hide other methods when Free Shipping is available: For a Free Shipping method, enable the Hide other shipping methods when this one is available switch. This saves immediately.
  6. Delete a shipping zone: Click the trash icon on a zone card. Confirm the deletion in the dialog.
  7. Delete a shipping method: Click the trash icon on a method card. The method is removed immediately without confirmation.

Create a Smart Shipping Rule

  1. Start a new rule: On the Smart Shipping Rules tab, click New rule.
  2. Configure rule details: Enter a Rule name, set Priority, ensure Enabled is on, choose an Action (e.g., Surcharge, Free shipping), set the Amount and Type, and select which methods to Apply to.
  3. Set conditions: Define conditions based on subtotal, countries, item count, weight, or cart contents (products, categories, shipping classes). All conditions must be met. Optionally, add Exclusion criteria.
  4. Save the rule: Click Save.
  5. Delete a smart rule: Click the trash icon on a rule card. The rule is removed immediately without confirmation.

Manage Shipping Classes

  1. Create a new shipping class: On the Shipping Classes tab, click New Shipping Class. Enter a Name and optional Description, then click Save.
  2. Edit a shipping class: Click Edit on a class row. Update the Name or Description, then click Save. The Slug cannot be edited.
  3. Delete a shipping class: Click Delete on a class row. Confirm the deletion in the dialog.
  4. Assign a shipping class to a product: This is done in the WooDonkey product editor, not on this tab. Edit a product and select the desired class from the Shipping class field.

What to know before you start

  • The Shipping Zones & Methods tab is the default view when you open Shipping Rules.
  • The Rest of the World zone is always present and cannot be renamed or deleted. You can add shipping methods to it.
  • Shipping zones and methods cannot be reordered within the dashboard.
  • Smart shipping rules directly affect the live checkout experience for your shoppers.
  • Non-cap smart rules run in priority order and can stack, meaning multiple matching rules might apply. A higher-priority rule takes precedence in cases of conflict. Maximum shipping cost rules always apply last, after all other rules.
  • The ‘Free shipping’ action in a smart rule zeroes the cost of matching shipping rates. It does not create a WooCommerce Free Shipping method.
  • The Free Shipping progress bar setting on the Add-to-Cart Popup is managed separately and has its own eligibility amount, independent of any WooCommerce Free Shipping minimums.
  • Shipping Rules does not use shortcodes.
  • Companion version 1.375.0 or higher is required for smart rules and the ‘hide other shipping methods when this one is available’ feature to function on your storefront.
  • Management of shipping zones, methods, and classes uses the WooCommerce REST API.

Problems you may hit, and how to fix them

  • Symptom: Shipping zones or methods are not in the desired order.
    Fix: Shipping zones and methods cannot be reordered in the dashboard. Their display order is not editable.
  • Symptom: The ‘New Class’ button text in the empty state for Shipping Classes is inconsistent.
    Fix: The empty state message for shipping classes says “Click ‘New Class’ to get started,” but the button is labeled New Shipping Class. Both refer to the same action.
  • Symptom: A smart shipping rule is not applying at checkout.
    Fix: Check if the rule’s Enabled switch is on. Verify that all defined conditions (e.g., min/max subtotal, countries, products) are met by the cart contents.
  • Symptom: The ‘Hide other shipping methods when this one is available’ setting for Free Shipping is not working on the storefront.
    Fix: Ensure Companion version 1.375.0 or higher is installed and active on your WooCommerce store.
  • Symptom: A smart rule with the ‘Free shipping’ action did not add a new Free Shipping method to WooCommerce.
    Fix: The ‘Free shipping’ action in a smart rule zeroes the cost of existing matching shipping rates. It does not create a new WooCommerce Free Shipping method.
  • Symptom: The Free Shipping progress bar on the Add-to-Cart Popup shows a different amount than a WooCommerce Free Shipping method.
    Fix: The eligibility amount for the Add-to-Cart Popup’s Free Shipping bar is set independently on the Add-to-Cart Popup settings page and does not sync with WooCommerce Free Shipping minimums.
  • Symptom: Deleting a shipping method or smart rule did not ask for confirmation.
    Fix: Deleting a shipping method or smart rule is an immediate action without a confirmation dialog.
  • Symptom: Cannot delete the ‘Rest of the World’ shipping zone.
    Fix: The Rest of the World zone is a default system zone and cannot be deleted.
  • Symptom: After saving countries for a shipping zone, previously defined states or postcodes for that zone are gone.
    Fix: When you save countries for a zone, any existing state or postcode restrictions for that zone are replaced with country-only entries. This dashboard only supports country-level restrictions.

Related reading