The content below is directly from WooCommerce.
Ensuring you have the most accurate instructions.

You can find the setup guide on the WooCommerce Shipping & Tax page.

Set Up Shipping Labels

To set up Shipping Labels:
  • Go to WooCommerce > Settings > Shipping > WooCommerce Shipping & Tax > Shipping Labels.
  • Select a Paper size from the dropdown.
  • Payment.
    • Add a credit card, if one is not already stored on your account. A method of payment must be on file if you wish to print labels.
  • Choose a different card, if one is on file at your account and you wish to use another.
  • Skip this step: It’s also possible to bypass and enter nothing, and be prompted to add a payment method later when you’re ready to Print Shipping Labels (below).
  • Tick or untick the box for Email Receipts.
  • Save changes.

Manage Packages

WooCommerce Shipping allows you to select carrier’s boxes, or define custom boxes, envelopes, and other packaging that you use for shipping.

Custom packaging

  1. Go to WooCommerce > Settings > Shipping > WooCommerce Shipping & Tax > Packages.
  2. Select Add package. The Add a Package screen displays.
  3. Select Type of package from the dropdown.
  4. Enter a Package name to identify it.
  5. Enter Dimensions and Weight.
  6. Add package.

Carrier-provided packaging

You can opt to use the boxes and envelopes provided by carriers. Many carriers offer those supplies for free.
  1. Go to WooCommerce > Settings > Shipping > WooCommerce Shipping & Tax > Packages.
  2. Select Add package. The Add a Package screen displays.
  3. Select Service package and tick the box of one or more of the options available from the courier.
  4. Add packages.
Flat rate packaging is used automatically if you selected flat rate services in your shipping method.
Due to a known issue with USPS, we currently advise against using discontinued Regional Rate Boxes when shipping with Cubic rates. Until further notice, please use your own boxes or other approved USPS boxes to avoid incorrect adjustment fees. If you have been overcharged, USPS will issue a refund, though there is currently no established timeline for the correction.
WooCommerce Shipping supports printing USPS and DHL Express Worldwide labels. A user with an Admin or Shop Manager role can create shipping labels with a payment method added to their respective account or by adding a new payment method as suggested here.
DHL requires the WooCommerce Shipping & Tax 1.25.0+.
Beginning on July 9, 2023, the United States Postal Service has consolidated USPS Parcel Select Ground®, USPS Retail Ground®, and USPS First-Class Package Service® into one singular ground shipping option known as USPS Ground Advantage™. The selection of these services will translate to USPS Ground Advantage™. Users should still be able to select USPS Parcel Select Ground® or USPS First-Class Package Service® while creating a shipping label, and the label will be printed with USPS Ground Advantage™ as the service.
To print a shipping label.
  1. Go to WooCommerce > Orders and select an order to fulfill. On the order details screen is a Shipping Label metabox at the top: Most WooCommerce shipping method extensions show the rate chosen by the customer and packaging information below the order details:
  2. Select Create shipping label
  3. Enter the full address you’re shipping from, if it’s the first time printing a shipping label. This can be a street address or PO box. Note: Typically PO boxes are only supported by postal services (such as USPS) and not by carriers (such as DHL Express). If the originating or destination addresses is a P.O. box, those carriers won’t be available as an option when printing a label. Returns to sender often cannot be done if using a PO box. NOTE: As of March 15th, 2023, WooCommerce Shipping requires that the origin address contain the shipper’s phone number. This is a USPS and federal government requirement in identifying the individual(s) responsible for shipping a package on behalf of the organization they represent. We must register each user that prints a shipping label through WooCommerce Shipping. If the phone number is not present, merchants may see a message like: Error: The WooCommerce Shipping & Tax server returned: Bad Request Phone Number must be provided in the 'Origin address' tab. (400). The error may be resolved by entering a phone number for the origin address as in the screenshot below:
  4. Confirm the origin and shipping addresses, then select Verify address.
  5. If the order requires multiple packages, click the Move button to the right of the product(s) that should be moved to a separate package. Select between Add to a New packageShip in original packaging, or another package (if already created), and click Submit to move the item. Confirm the Package details, or select packaging from the dropdown. Then select Use these packages.
    As of July 9th, 2023, USPS has implemented new regulations that require merchants to identify shipments of hazardous materials (HAZMAT). To ensure compliance, please follow these steps: If your shipment includes hazardous materials, choose the ‘Yes’ option under the ‘Are you shipping dangerous goods or hazardous materials?‘ question. Next, select the specific type of hazardous material from the provided dropdown menu. If you’re uncertain whether the product you’re shipping falls under the HAZMAT category, please use USPS’s search tool. WooCommerce Shipping does not currently support HAZMAT shipments through DHL Express.
  6. Select Shipping Rate and whether an Adult signature is required (optional).
  7. Buy shipping labels or Add credit card. What you see depends on if you previously entered a payment method.
    • Buy shipping labels: This means that you previously had a payment method on file at or added a credit card during setup above. You’re ready to proceed to the next step.
    • Add credit card: This means you did not have a payment method on file at and skipped adding a credit card during setup. You will be taken to the Add Credit Card screen to complete all required fields and Save Card. Once a payment method is entered, the button changes to Buy shipping labels and you’re ready to proceed. Should you change your mind later, you can Delete Card.
  8. View the shipping label in Print mode, after selecting Buy shipping labels and a display automatically appears. Note: Some browsers require you to select the Print button.
9. Print. Or Save this label and repeat the process for all Orders you’re fulfilling, then Print all at once.
Measure and weigh packages carefully, and choose the correct service when using carrier-provided packaging. Carriers automatically assess all shipments and if you paid the incorrect amount, you may be billed or refunded the difference. For more information, see Understanding adjustment fees.

Printing a label if the shipping is international

If you’re sending an international shipment there will be an extra step after you’ve selected the package size. If a customs form is required, you’ll be prompted to fill the relevant information for each of the items you’re shipping, which could include the HS Tariff numbers:
Customs form step
  Some shipments will require that you print separate customs documents.
  • USPS – For certain USPS international shipments, a single shipping label will be split into three parts (proof of payment, customs declaration, and dispatch note). In those cases, you’ll need to put the three parts, in order, inside a USPS-provided window pocket.
  • DHL – For countries’ non-supported countries by DHL’s Paperless Trade, you need to print the customs documents. You’ll be prompted to print the custom document right after printing your label. You can always find and print the custom documents from your order page. Select the three ellipsis menu in the Shipping Label metabox. For countries supported by DHL’s Paperless Trade, WooCommerce Shipping automatically submits your customs information electronically for supported countries. You only need to print the shipping label.
Once the custom documents printed, you’ll need to attach the documents to the package using a plastic sleeve. You can order these plastic sleeves for free from DHL and USPS (or pick them up from the post office).
If duties and taxes are assessed by the destination country, your customers will be responsible to pay them.
From March 1 2023, if you are shipping to countries that follow European Union (EU) customs rules, you must provide a clear, specific description on every item. Otherwise, shipments may be delayed or interrupted at customs. Learn more

Tracking information

  You can find the tracking number a few ways:
  • In Shipping Label metabox on the top of your order page, click on the Track Package button to find the tracking number and link.
  • The Shipping Label metabox on the right display of your order page displays the tracking number for your shipment.
  • The tracking number(s) will be included in the email sent to your customer when the order is marked “completed.”
First Class Mail envelopes are untracked and the label will be in a different format:
USPS First Class Mail is an untracked service, meaning that USPS won’t give anyone (not even us) tracking data on the movement of First Class Mail envelopes (including Large Envelope/Flat). However, packages include tracking. Anything with a height over 3/4 inch is considered a package by USPS.   Increasing the height of an envelope to over 3/4 inch would be a little more expensive but would include tracking.
If you have issues with the tracking status of your shipment, the carrier can help you directly. For USPS call 1-800-275-8777 and for DHL call 1-800-225-5345.

Reprint Shipping Labels or Request Refund

Reprint your label or request a refund, if necessary. When editing an order select the three ellipsis menu to see those options.
Refunds   By selecting Request refund, it will submit a request for a refund from the carrier. The carrier must approve the refund. You can only request a refund for labels that haven’t been shipped and are still in the pre-transit (the carrier hasn’t received the package). Carriers won’t refund labels that have inducted into their network. Refunds can only be processed within 30 days of the labels being created. Refunds will take at least 14 days to process for USPS and at least 31 days for DHL. Carriers will monitor its network for a period of time to ensure that the label didn’t end up in the mail stream. You can find more information on USPS’s refund policy on the USPS site.  
First Class Mail letters are not eligible for refund by USPS.

Schedule a pickup

  After printing a shipping label, in the order details look for the “Shipment tracking” box that displays your label purchase and contains the tracking number for your shipment. Select the three ellipses menu to see the options and choose “Schedule a pickup”. This will link you out to the carrier’s website where you can schedule a time.
  • USPS – Free for packages when scheduled at the same time your mail is delivered by your letter carrier. For scheduling a pickup at a select time and day, you can opt for USPS’s Pickup on Demand® for a fee.
  • DHL Express – Free

Label Reports

Review your label purchases in one place at: WooCommerce > Reports > Shipping Labels.
  On that page, you can specify a time range for which a report should be generated and export the report as a .CSV file.

Live Shipping Rates (discontinued)

WooCommerce Shipping no longer provides the option to set up live shipping rates in stores as of the release of WooCommerce 3.5. Live rates will continue to work for stores currently using them.
Live shipping rating requires that non-virtual products have weights and dimensions set. More info at: Adding Dimensions and Weights to Products for Shipping. To enable USPS or Canada Post live shipping rates:
  1. Go to: WooCommerce > Settings > Shipping.
  2. Add a USPS or Canada Post shipping method to an applicable zone.Note: USPS is only available for stores accepting US Dollars, and Canada post is only available for stores accepting Canadian Dollars.
  3. Name the shipping method to be displayed for your use, and enter the post code you are shipping from. The origin ZIP code will default to the value set in WooCommerce > Settings.
  4. Select the carrier services you want to offer. By default, Priority Mail services are selected. Enter any price adjustments, if applicable. Price adjustments can be useful to help cover your costs for shipping supplies. This will add an additional cost to the final shipping price, shown as one price to your customer.
  5. Select which rates to offer customers.
  6. Enter a fallback shipping cost (optional) and what rate class you want to charge. This will allow the customer to check out if USPS can not return rates, charging the fallback rate instead.
USPS offers two shipping class rates: Retail and Commercial.
  • Retail rates are the standard rates that USPS charges for shipping. This is what you would pay if you take your package to a USPS post office for shipping.
  • Commercial rates are the discounted rates available via a special agreement with USPS. If you select Commercial rates, your customers are charged the agreed-upon discounted rate.
Select which rate to offer.
Select the method of box packing to use.


To diagnose issues with your WooCommerce Shipping, go to WooCommerce > System Status > WooCommerce Shipping & Tax. If you’re experiencing issues, enable debug and/or logging. The system status page displays issues that could cause WooCommerce Shipping stop functioning and contains helpful debug information, plus links to get further assistance.
When debug is enabled, you’ll see helpful troubleshooting messages on the Cart and Checkout:
Shipping rate debugging in cart

I’m asked to add a credit card to purchase labels, even though I’ve got a credit card on file.

Make sure you’re logged into the correct account where you’ve added the credit card via WooCommerce > Settings > Shipping > WooCommerce Shipping. If you need to change the account connected to your site, follow this guide from our WooPayments documentation as the process is the same. You can then reconnect with the correct account in WooCommerce > Settings.

“Unauthorized Invalid token” error

01-10-2018 @ 14:09:18 - Received (401): {"statusCode":401,"error":"Unauthorized","message":"Invalid token","attributes":{"error":"Invalid token"}}
01-10-2018 @ 14:09:21 - wcc_server_error_response Error: The WooCommerce Services server returned: Unauthorized Invalid token ( 401 ) (fetch_service_schemas_from_connect_server)
Reset the connection to by following this guide from our WooPayments documentation as the process is the same.

Unable to connect through Firewall

If you are using a security plugin or have a firewall, it’s possible that connections to our servers are being blocked. An example of this case is when you encounter Unexpected server error notice when trying to print a shipping label. When you encounter such an error, you can usually find the reason for the error by opening the browser console window, as in the above example, Sucuri blocks the request to our server. To resolve this, you can whitelist our server. Outgoing requests from WooCommerce Shipping & Tax plugin are only made to, this is currently the IP address: If you’re unsure how to do that, you can reach out to the security plugin developer or your hosting support to ensure that our IP address is whitelisted.

The Create Shipping Label button is missing from the Order Details screen.

  The “Create shipping label” button will show if the following is true:  
  • Your store is in the United States (including Puerto Rico, Virgin Islands, and other U.S. territories)
  • Your store currency is US Dollars
  • At least one product in the order “needs shipping” according to WooCommerce (typically means a non-virtual product)
  If your order meets the criteria outline above and you still aren’t seeing the “Create shipping label” button, please create a ticket containing the relevant order data so we can help diagnose the issue.  

This address is not recognized. Please try another.

  You may encounter this error when printing shipping labels. This means that we were unable to verify the address with USPS – it may have been entered incorrectly, or isn’t considered “deliverable” by the post office.   Use the USPS zip code lookup tool to verify the address. If it’s not recognized, we recommend reaching out to your customer.   If the tool recognizes the address there may be an issue with WooCommerce Shipping. Please open a ticket with the relevant address information so we can look into it.    

Shipping Rates are not returned

  Several things can prevent shipping rates from being calculated, including problems with the USPS API service. Most issues can be diagnosed by looking at the Debug Log at WooCommerce > Status > WooCommerce Shipping & Tax.  

Product is missing weight or dimensions

01-15-2018 @ 18:15:49 - Error. Unable to get shipping rate(s) for wc_services_usps instance id 25. (calculate_shipping)
01-15-2018 @ 18:15:49 - product_missing_weight Product ( ID: 37 ) did not include a weight. Shipping rates cannot be calculated. (calculate_shipping)
  Solution: Ensure that your products have weight and dimensions, then try again.

USPS or Canada Post shipping method is missing.

WooCommerce Shipping no longer provides live shipping rates to new stores as of the release of WooCommerce 3.5. Live rates will continue to work for stores currently using them.
If you don’t see the USPS or Canada Post shipping methods when adding a method to a zone, check your store’s currency setting. USPS is restricted to stores using US Dollars, and Canada Post is restricted to stores using Canadian Dollars.     Note: you may need to refresh your WooCommerce Shipping data after changing currencies. Go to WooCommerce > Status > WooCommerce Shipping & Tax and click Refresh.

No USPS service available to Nigeria and Ghana.

The USPS PC provider that WooCommerce Shipping uses restricts shipments to Nigeria and Ghana. However other carriers don’t have these restrictions. You can also ship to these countries by going directly to the post office.

Frequently Asked Questions

Why do I need to connect to

We connect to your account to authenticate your site and user account so we can securely charge the payment method on file for any labels purchased. You can read our Terms of Service here.

Why do I need to enter my credit card?

WooCommerce Shipping requires a credit card to purchase shipping labels.

Do I need special paper or a specific printer to print labels?

Not at all! You can print shipping labels via WooCommerce Shipping on any 8.5 x 11 in paper, and then attach it directly to your package. Or if you have a thermal printer setup you can use those 4 x 6 in labels. Any printer will work for printing labels on 8.5 x 11 in paper. You can also use a thermal printer to print on 4 x 6 in labels but it’s not necessary for printing shipping labels with WooCommerce Shipping.

How do I order free supplies from carriers?

Many carriers offer free shipping supplies to be used when shipping with them. For your convenience, many of those packages are already prepopulated in the WooCommerce Shipping settings. USPS – You can order free shipping supplies directly from USPS’s website. DHL – You can order free shipping supplies by clicking here – it will open a template email for you to complete and send your order to DHL Express. Check the carrier’s usage policy as some packaging is for a specific shipping service or associated with a set flat-rate.

How to provide customers with a return shipping label for products to be returned

While the plugin does not include an option to specifically print a “return label”, you can print multiple labels from within the same order. To create a return shipping label you will have to get in touch with the customer to get their address, which will be the new origin address for the package. It is also important that you get the correct dimensions and weight of the package that the customer will use to send you back the products, as that will influence the price that you pay for shipping. Once you have those details, on the order page, select to print a new label. Then follow the steps described in the following section to update the origin address, which is where you will enter the address provided by the customer. The destination address has to be the address where you will receive the returned package.

How to update Origin Address

On the order details page, click Create shipping label
The label appears pre-filled. Click the arrow to expand the section at the top, Origin address Update your details, and click Validate address to save. These details will be saved for use on future purchases.
Screenshot shows to toggle the arrow at the end of the title row to expand the details, and use the blue button beneath the details to save the changes

Bulk actions cannot be selected.

This is a result of WooCommerce Shipping not being fully configured yet. Enable Jetpack and connect the site to have bulk actions enabled again.

Is it possible to auto-create a USPS manifest?

At this time, no. It would need to be compiled manually. Postal service workers requesting a manifest typically happens in December, prompted by the holidays when sending/delivering packages is at its height, and speed in processing becomes central.

What are the HS Tariff Numbers?

HS (Harmonized System) is an internationally standardized system of names and numbers to classify products. It’s used by Customs agencies all over the world. You can fill in the HS tariff number for every product on every international shipment you make. Although the HS Tariff number is not usually required, we recommend using the tariff codes to avoid certain scenarios, especially if you are shipping to a country that follows European Union (EU) customs rules:
  • Delays: Not classifying your products will cause the importing country to spend time manually classifying them on their end.
  • Denials: Each importing government has its own unique restrictions in place to protect local markets. While there are some products that are perfectly fine to export in one market, they might very well be denied in another.
To fill in the HS Tariff numbers on your Customs declaration, you’ll need to look up the tariff numbers associated with whatever products you are shipping. You can search for them on Though some codes may be longer, you only need to include the first six digits.

Can I buy and print shipping labels for US domestic and international packages?

Yes! You can buy and print USPS shipping labels for domestic destinations and USPS and DHL shipping labels for international destinations. Shipments need to originate from the U.S.

Can I get discounts on labels?

Yes. You automatically get the cheapest USPS shipping rates (up to 90% off retail rates) and heavily discounted DHL shipping rates (up to 65% off retail rates). These rates will automatically be available when buying labels via WooCommerce Shipping.

DHL: Undelivered and unacceptable shipments

A shipment might be unacceptable or undelivered if they don’t follow DHL Express terms and conditions of Carriage. There are several conditions that make a shipment unacceptable:
  • required customs declaration isn’t made
  • it contains prohibited items
  • its packaging is defective or inadequate
  • receiver fails to pay owed duties and taxes – Your customer will receive an email notification if duties and taxes are owed on the package.
  • its shipping address is incorrect or not properly marked – DHL Express will contact your customer or you for more information.

What items are prohibited from being ship?

Carriers prohibit and restrict certain items to be shipped, and it will vary by carrier and destination. It’s your responsibility to review those regulations.

How do I submit an insurance claim for lost or damaged shipments?

For USPS shipments, you can submit a claim directly with USPS. For DHL shipments, you can submit a claim by emailing us all of the following information:
  • Tracking number.
  • Copy of the waybill, if available.
  • Documentation supporting the amount claimed- e.g. a vendor/supplier invoice and a retail invoice.
  • If an item was purchased or sold via the Internet, documentation of that transaction is required e.g a PayPal receipt.
  • Serial numbers, identifying marks, or other information unique to the specific item(s) claimed.
  • Indicate if the claim is for missing content, lost shipment or damaged item.
  • Description of the missing content, lost shipment or damage (attach photos if available). Include, the serial number or identifying mark, the number of units, and the claim amount for each item.
Note that DHL insurance coverage is limited and outlined in DHL’s Terms and Conditions.

Flat Rate Shipping

Flat Rate Shipping is a shipping method included in WooCommerce that allows you to define a standard rate per item, per shipping class, or per order. Flat Rate Shipping works with Product Shipping Classes, adding more power and flexibility.

Setup and Configuration

This shipping method has to be added to a Shipping zone. If you haven’t configured your Shipping zones yet, please check our Setting up Shipping Zones guide before proceeding.
  • Go to WooCommerce > Settings > Shipping > Shipping zones.
  • Click the Edit button on the shipping zone where you want to offer this method.
  • Inside the shipping zone, click the Add shipping method button.
  • Then, select the shipping method and click the Continue button.
  • Enter a Name that displays to customers in the cart and checkout pages.
  • Select the Tax Status to determine whether tax is applied to the Cost.
  • Enter the Cost for this option, to be applied to the entire cart.
    • You can add additional costs per item to this field. See Advanced Costs below.
    • You can keep the cost at $0.00 to disable Flat Rate, which can be useful if you configured Shipping Classes (see below).
  • Click the Create button to finish.

Shipping Classes

If you configure Shipping classes, you will see additional fields:
You will find one Shipping class cost for products belonging to each of the shipping classes you created, and a No shipping class cost for products that don’t belong to any shipping class. These costs are always added on top of the amount from the Cost field (which can optionally be $0.00). You will also find the Calculation Type selector, where you can determine how the shipping class costs will be applied:
  • Per Class: Charge shipping for each shipping class individually.
  • Per Order: Charge shipping for the most expensive shipping class.

Advanced Costs

The Cost field allows you to charge a flat rate per item, a percentage based cost or a minimum fee. These are the available placeholders:
  • [qty] — Number of products in the cart
  • [fee] — An additional fee. This fee has two optional arguments.
    • percent — A percentage based on total order cost.
    • min_fee — A minimum amount. Useful when using percentages.
    • max_fee — A maximum amount. Useful when using percentages.


  • 10 + ( 2 * [qty] ) — A base shipping cost of $10 plus $2 for each item in the cart.
  • 20 + [fee percent="10" min_fee="4"] — A base shipping cost of $20 plus 10% of the order total, which is at least $4.

How to set up Free Shipping for some products and Flat Rate for the rest

If you would like to offer Free Shipping on some products but charge a Flat Rate for others, the best way to set this up is using Shipping Classes. In this use case, we have set up three shipping classes: Free Shipping, Regular Shipping, and Expedited Shipping. Once we have all the products added to their respective shipping classes, we can use the following settings to allow for the products in the Free Shipping class to not charge for shipping, while all the other products do.
By setting the Free Shipping class cost to use 0 * [qty], no matter how many products from that class are added to the cart, the shipping cost will not increase. However, products in the Expedited Shipping class will cost $20 per product from that class (because we’re using 20 * [qty]) while Regular Shipping class products and products that have no shipping class will cost $10 per product to ship (as we’re using 10 * [qty] for each of those options). This means that if you have one product from each of our three shipping classes, the total Flat Rate cost will be $30 ($20 for one Expedited Shipping product, $10 for one Regular Shipping product, and $0 for one Free Shipping product). Note: For this to work as described above, it is important to set the Calculation Type to “Per Class: Charge shipping for each shipping class individually” and that the Cost field is left blank.  

Setting up Shipping Zones

Selling physical products? You need to ship them!

To set up shipping in WooCommerce, you first set up shipping zones, then add methods to those zones, and lastly, rates to your methods. You can create as many zones as you like, and add multiple methods and rates to each zone.

Shipping Zones

Shipping Zone is a geographical area to which you ship items. You can get as specific as you need, right down to regions and zip codes, or you can leave it more general – whichever suits you best.

Customers only see the methods available for their address and corresponding zone. Each customer matches only one zone.

For example, you could create these zones in WooCommerce:

Local California ZIP 90210 Local pickup
Domestic All US states 2 Flat rates named “standard” and “priority”
Europe Countries in Europe Flat rate shipping

Add as many zones as you need, with each zone containing multiple shipping methods.

Adding and managing zones

To set up shipping zones, go to: WooCommerce > Settings > Shipping. If you don’t see Shipping as an option, go back to WooCommerce > General and take a look at settings at Shipping Location(s) – you may need to enable shipping settings there!

The first time you visit WooCommerce > Settings > Shipping, there is a prompt to add a new shipping zone, but you’ll also find the default Rest of the world zone.

The Rest of the world zone is used for customers that do not match any of the shipping zones you add. Adding methods to this zone is completely optional, depending on your needs.

If a customer enters a shipping address that is in a zone without shipping methods, they will be informed that no shipping is available.

Since zones match from top to bottom, you can also exclude regions from shipping by adding a zone for that region and assigning no shipping methods to it.

Adding a new zone

  • Go to: WooCommerce > Settings > Shipping > Shipping Zones.
  • Click Add zone at the top.
  • Enter a descriptive Zone Name, and select Zone Regions that apply. Regions can consist of: a) Countries, b) States, c) Continents.
  • Click Limit to specific zip/postcodes (if applicable) to further narrow which customers match this zone.
  • Select which Shipping Methods are available to this zone.
  • Click Save changes.
How to use zip/postcodes to limit a shipping zone: A local shipping zone can include one or multiple (one per line) of the following: specific postcodes, numeric ranges (e.g., 90210…99000), and postcodes with wildcards.

A wildcard can be used to capture all postcodes that share the same beginning, so it is the recommended option for postcodes with non-numeric characters (e.g., 902* would capture 90210 and also 90288-1234; CB23* would capture CB23 1EX). Using wildcards in numeric ranges isn’t supported.

In the below example, we created three zones – Local, Domestic, and North America – to demonstrate how zones can be set up.

Sorting shipping zones

Shipping zones match customer address from top to bottom — the first to match the customer address is always used. If no custom zones match, then the Rest of the world zone is used.

To sort and reorder zones:

  • Go to: WooCommerce > Settings > Shipping > Shipping Zones.
  • Click and hold on the far left handles and drag the shipping zone.
  • Click Save changes to finish.

Editing and deleting shipping zones

  • Go to: WooCommerce > Settings > Shipping > Shipping Zones.
  • Find the Edit and Delete buttons on the right side of the shipping zone.
  • Click the Delete button to eliminate the shipping zone.
  • Click the Edit button to revise the name, regions, or shipping methods. Click the Save changes button to finish.
The Rest of the world section cannot be moved, renamed or deleted because it acts as a default when no other zones apply.

Adding shipping methods to zones

  • Go to WooCommerce > Settings > Shipping > Shipping zones.
  • Click the Edit button on the shipping zone where you want to add a shipping method.
  • Inside the shipping zone, click the Add shipping method button.
  • Then, select the shipping method and click the Continue button.
Only shipping methods that support Shipping Zones are listed. If you have a method that does not support Shipping Zone, it is shown in the navigation menu and works globally/independent of Shipping Zones.

For more information about configuring the core shipping methods, see the following related docs:

Local Pickup Documentation
Flat Rate Shipping Documentation
Free Shipping Documentation

Disabling and removing shipping methods from zones

  • Go to WooCommerce > Settings > Shipping > Shipping zones.
  • Click the Edit button on the shipping zone from which you want to remove a shipping method.
  • Click the switch under the Enabled column to disable the shipping method.
  • Click the Delete button to eliminate the shipping method.

Control the shipping method selected by default

The default Shipping Method for customers is the top listedenabled shipping method in the zone that they match. Check the Sorting shipping zones section to learn how to reorder shipping methods.

You can also control how shipping methods are ordered in the cart page, in the same screen. All the selected shipping methods will be sorted in the cart page, in the same order you followed, to arrange them in this screen.

How zones work for customers

Using these shipping zones and methods:

  • In the 90210 zip code in California, we offer Local Pickup and Free Shipping.
  • In the United States, we offer a Domestic Flat Rate.
  • In Canada and U.S. regions, we offer a different Flat Rate.
  • For the rest of the world, we offer yet another Flat Rate.

Free Shipping

Free shipping is a great way to encourage customers to spend more. For example, offer free shipping on orders over $100.

Setup and Configuration

This shipping method has to be added to a Shipping zone. If you haven’t configured your Shipping zones yet, please check our Setting up Shipping Zones guide before proceeding.
  • Go to WooCommerce > Settings > Shipping > Shipping zones.
  • Click the Edit button on the shipping zone where you want to offer this method.
  • Inside the shipping zone, click the Add shipping method button.
  • Then, select the shipping method and click the Continue button.
  • Enter a Name that displays to customers in the cart and checkout pages.
  • In Free shipping requires, you can select what is the requirement to offer free shipping:
    • No requirement — Free Shipping is offered to all customers
    • A valid free shipping coupon — Free Shipping is available if the customer uses a coupon that offers free shipping (see below: Create Free Shipping Coupons).
    • A minimum order amount — Free shipping is only available if a minimum amount is spent. Set this amount in the Minimum Order Amount field, which will appear if you choose this option.
    • A minimum order amount OR a coupon — Free shipping is available if a minimum amount is spent or the customer uses a coupon that offers free shipping.
    • A minimum order amount AND a coupon — Free shipping is offered only if a minimum amount is spent and the customer uses a coupon that offers free shipping.
  • When any of the Minimum order amount options is selected, an additional checkbox will appear: Apply minimum order rule before coupon discount.
    • If the box is unchecked, the order amount after a coupon discount will be compared to the Minimum order amount to determine if Free shipping should be offered.
    • If the box is checked, then the order amount before a coupon discount will be used instead.
  • Click the Create button to finish.

Example: Coupon discounts and Minimum order amount

You have set $20 as the minimum order amount for free shipping eligibility, your customer has a product of $25 in the cart, and they also have a coupon that gives $10 off:

  • If “Apply minimum order rule before coupon discount” is unchecked — The order amount is $25 – $10 = $15. The customer will not get free shipping according to the minimum order amount rule.
  • If “Apply minimum order rule before coupon discount” is checked — The order amount is $25 and the $10 discount is ignored. The customer will get free shipping according to the minimum order amount rule. The coupon discount will still be applied.

Create Free Shipping Coupons

1/ Create a coupon.

  • Go to WooCommerce > Coupons.
  • Select Add Coupon.
  • Select Allow Free Shipping.
  • Publish.

More info at: (Coupon Management).

2/ Enable free shipping for coupons.

  • Go to the shipping zone where you added the Free Shipping method in the previous step.
  • Click the Free shipping method
  • Select the option A valid free shipping coupon from the dropdown.

Customers can now use the coupon to get free shipping.