DOCS

WooCommerce

Zonos Checkout for WooCommerce

Integrate the Checkout extension for WooCommerce.

Integration checklist 

Follow this comprehensive checklist to set up your Zonos Dashboard account and integrate Zonos Checkout extension for WooCommerce.

1

Create a Zonos account

To get started, please contact our sales team to create an account and sign an agreement. Once an agreement is signed, you'll receive two micro deposits in your account that need to be verified.

Please email these micro deposit amounts to accounting@zonos.com with your Dashboard store ID (CC your sales rep).

Once verified, your banking details will display in Dashboard -> Settings -> Billing.

2

Configure Dashboard and Checkout settings

After creating your Zonos account, you'll need to configure settings in Dashboard to ensure Checkout works properly with your store. This section covers all the essential Dashboard configurations.

Set up payouts

Connect a bank account to receive timely payouts from Checkout. Payouts are processed daily within a 2-day delay from the captured payment. To do this, please follow these steps:

  1. Navigate to Dashboard -> Settings -> Checkout settings .
  2. Click Add bank account.
  3. You will be taken to a Stripe portal to complete set up and provide the following information:
    • Bank account information.
    • Company EIN.
    • Social Security Number of a 25% company owner. For more details on why this is required see Stripe's documentation.

Note: If you need to update your payout schedule, please contact support@zonos.com

Set up allowed domains

Zonos Checkout requires a list of allowed domains for security purposes. This prevents unauthorized sites from loading Checkout and ensures it only runs on your approved domains. Without this configuration, Checkout will return permission errors.

To set this up:

  1. Navigate to Dashboard -> Settings -> Checkout settings.
  2. Under URLs, add your full domain and any subdomains where Checkout will be used. For example, if your domain is example.com, you should add example.com and test.example.com.

Customize branding settings

Configure your branding settings in Dashboard to match your store's look and feel.

To do this, please follow these steps:

  1. Navigate to Dashboard -> Settings -> Checkout settings -> Branding
  2. Configure the following settings:
    • Logo.
    • Brand and accent color.
    • Theme, Style, and Font.

For more information on branding settings, see our documentation.

Connect a shipping carrier

To quote shipping at checkout, you'll need to connect a shipping carrier to your Zonos account. This will allow you to enable specific shipping service levels at checkout.

To connect a shipping carrier, please follow these steps:

  1. Navigate to Dashboard -> Settings -> Shipping -> Rates.
  2. Click Add carrier.
  3. Follow the carrier setup instructions.

For more details on connecting carrier accounts, see our documentation.

Set up shipping zones

Shipping zones allow you to configure which shipping carriers and service levels are available for different regions of the world.

To set up shipping zones, please follow these steps:

  1. Navigate to Dashboard -> Settings -> Shipping -> Locations.
  2. Click New zone.
  3. Enter a zone name and select the countries you want to ship to.
  4. Select the carrier and service level you want to offer.

For more details on shipping zones, see our documentation.

Set up a fall back country of origin and HS code

The country of origin and HS code are used to calculate accurate duties and taxes.

If you do not provide a specific country of origin or HS code, we will use the fallbacks set up in Dashboard.

To set your fallback Country of Origin and HS code:

  1. Navigate to Dashboard -> Settings -> Shipping -> Catalog.
  2. For the country of origin, select the country where the majority of your products are manufactured in.
  3. For the HS code, enter the HS code of your most common product. If you don't have a HS code, navigate to Classify in Dashboard and enter the name and description of your product to generate an accurate HS code.
3

Install and configure the Checkout extension for WooCommerce

Follow these steps to install and configure the Checkout extension for WooCommerce.

Install the extension

  1. Log into your WordPress admin.
  2. Under plugins, search for Zonos Checkout for WooCommerce extension.
  3. Click Install and activate.

Connect the extension to your Zonos account

  1. In your WordPress Admin click on Zonos Checkout extension in the left hand navigation.

  2. Click on General Settings.

  3. Enter your Private API key and Store ID to link your Zonos Dashboard settings to your WooCommerce site.

    1. Locate your store's private API key in Dashboard. There are a couple different API keys available. Select the API key that has your store's name, the Type is Secret, and Token starts with credential_live. Input this API key in the Private API Key field in General settings of the extension.

    2. Copy your Store ID from Dashboard and input this into the Store ID field in General settings of the extension.

  4. Enable the app in test mode.

    1. By default, Test mode is toggled on. When test mode is enabled, shoppers will not be directed to Zonos Checkout.

Configure your international checkout button

You have two options for configuring how international shoppers access Zonos Checkout.

Use your current checkout button for both domestic and international shoppers:

Configure your current checkout button to automatically redirect international shoppers to Zonos Checkout while keeping domestic shoppers on your standard checkout flow. To do this, follow these steps:

  1. In General settings of the extension, enter your checkout button's CSS selector (e.g., #checkout-button or .woocommerce-checkout-button).
  2. Click Save general settings.

To find your CSS selector, right-click your checkout button, select "Inspect", and look for the id or class attribute in the HTML. If you have multiple checkout buttons, either include each button's CSS selector or configure all buttons to redirect to the cart page and use the cart page's checkout button selector.

Add a dedicated international checkout button

Create a dedicated international checkout button, which is ideal if you have many VPN users or US-based shoppers who need to ship to an international address.

To create a separate button for international shoppers:

  1. In General settings of the extension, enter your checkout button's CSS selector (e.g., #checkout-button or .woocommerce-checkout-button).

  2. Toggle the International checkout button to the right.

  3. Configure the button appearance:

    • Enter the button text (e.g., "International Checkout" or "Global Checkout").
    • (Optional) Add custom CSS to match your store's design as shown in the example below. If no custom CSS is provided, the button will default to your store's primary color scheme. We recommend testing the button's appearance on both desktop and mobile devices.
  4. Click Save general settings.

Enable US in Shipping zones: When enabled, the dedicated international checkout button will appear for all shoppers. To allow US-based shoppers to use international checkout (for example, when using a VPN or shipping to an international address), you must enable the US in Shipping zones in Dashboard. Without this setting, US shoppers will not be redirected to Zonos Checkout.

5

Map WooCommerce settings

Customize Zonos to seamlessly integrate with your WooCommerce store, ensuring accurate duty, tax, and shipping calculations. Use the Mapping settings tab to align product details and attributes with your ecommerce setup. While default values are provided, you can configure these settings to suit your store's unique requirements.

Product details, custom details, weight and dimensions

These fields are mapped to default common values. Values marked with an asterisk (*) are required. If you use a third-party app that overrides any (*) fields, ensure these (*) fields are mapped correctly to the values the third-party app uses.

Manage product info with Catalog

You can also manage your product info with Catalog in Dashboard.

If you add weight, dimensions, HS code(s), or country of origin to Catalog, Checkout will always use those fields. If any information is present in both your ecommerce platform and Catalog, the information in Catalog will override the information sent from the ecommerce platform when running our calculations. For example, suppose a product's weight is present in WooCommerce and Catalog. In that case, Zonos will use the weight in Catalog to calculate shipping.

Product attributes

If your products have unique attributes like color or size applied to variations, you'll need to map these attributes in the Zonos extension. This ensures that when an order is fulfilled, your WooCommerce store and inventory are updated with the correct product that was shipped. To map attributes follow the steps outlined in our mapping WooCommerce product attributes documentation.

Note: If you have questions or need assistance mapping product variations, please contact support@zonos.com.

6

Test your integration

Now that you have set up your account and your app, you are ready to test your integration.

To place a test order at checkout:

  1. Add ?zonosTestMode=1 to your store's URL to be directed to Zonos Checkout.
  2. Change Zonos Hello to the country you would like to test by clicking on the Hello flag and selecting the country you would like to test. This is needed or else you will not be redirected to Zonos Checkout if using a single checkout button. You can update Hello by changing zCountry= in the URL to whatever country you would like to test. For example, if you wanted to test Canada you would input CA in zCountry=CA.
  3. Run through the checkout process and place an order. See our general testing documentation for more details.
  4. After completing testing, enable Zonos by toggling Test mode to off. This will turn your integration live and allow international shoppers to use Zonos Checkout.

Some things to remember:

  • De minimis—If the cart subtotal of your order is under the ship-to country's de minimis, there may not be any duties or taxes due. This is reflected in our calculations.
  • Refunds and cancellations—We are collecting the payment, so if you need to do any refunds or cancellations, please process these in Dashboard.
  • Labels—Print labels for all international orders in Dashboard, unless you have been certified to print labels outside of Dashboard. This is required so Zonos can pay the duties and taxes on your behalf.

Post-integration 

Your Zonos extension will automatically import orders from Zonos to WooCommerce. However, there can be rare instances where an order may not import or an order status in WooCommerce is not in sync with Dashboard. You can use the following features in the extension to import orders, sync order statuses manually, and enabled advanced settings to troubleshoot issues.

Manually import orders

If a Zonos order has not imported into WooCommerce, you can use the Order import tab to manually import orders into WooCommerce:

  1. Log into Dashboard.
  2. Navigate to Orders.
  3. Click into the order that needs to be imported and copy the Zonos order number.
  4. In WordPress Admin, navigate to the Order import tab in the Zonos Extension, and enter the Zonos order number into the Zonos order number field.
  5. Click Import order. If the order was successfully imported, the order will show in WooCommerce and you will see "Order imported successfully" banner at the top of the page. If the order failed to import, you will see a banner with the error message details.

Manually sync orders

If an order status in WooCommerce does not match the status in Zonos, you can manually sync the order.

  1. Log into Dashboard.
  2. Navigate to Orders.
  3. Click into the order that needs to be imported and copy the Zonos order number.
  4. In WordPress Admin, navigate to the Order sync tab in the Zonos Extension, and enter the Zonos order number into the Zonos order number field.
  5. Click Sync order. The order status in WooCommerce should now match the order status in Dashboard.

Advanced settings

Debug mode

Toggle on Debug mode to send Zonos detailed logs to help you diagnose any issues and improve the performance of your integration.

Rate limit

Maximum number of webhook requests allowed per IP address per minute. The default is 30 to protect against potential abuse.

Common Troubleshooting

If you use a caching app like WP Rockett, you will need to clear your cache when you make changes to your Zonos Extension.

Frequently asked questions

What product information should I provide for the most accurate quote on duties, taxes, and shipping costs?

Product information can impact the amount of duties and taxes that are due, and the total shipping cost. The more product information you provide to Zonos, the more precise the quote returned will be. Zonos can generate a quote even when this information is unavailable, but recommends providing the following key product details to improve accuracy:

  • Weight: Weight impacts your shipping cost, which can affect duties or taxes. Weights in your WooCommerce product listings are automatically used by Zonos when mapped. You can also add weight to Catalog in Dashboard to ensure accurate shipping calculations.
  • Dimensions: Dimensions are used to calculate dimensional weight. Carriers will charge whichever weight is greater between the physical weight and dimensional weight. Zonos can utilize product dimensions (length, width, and height) set on each product in WooCommerce to calculate dimensional weight to ensure you collect the correct amount of shipping from your customers. You can also add dimensions to Catalog in Dashboard to ensure accurate shipping calculations.
  • HS codes: HS codes impact duty rates and can sometimes affect taxes. You can map HS code values in WooCommerce or use Catalog in Dashboard.
  • Country of origin: A product's country of origin impacts duty rates and may affect taxes. You can map country of origin values in WooCommerce or use Catalog in Dashboard.

Was this page helpful?