All posts
SEP 28, 2026 / 8 min READ

Shopify International Shipping: How to Set It Up and Choose the Right Rates App

Shopify International Shipping: How to Set It Up and Choose the Right Rates App
Expanding a Shopify store beyond domestic borders opens up a significantly larger customer base, but it also introduces a layer of complexity that catches many merchants off guard. Shipping rates that look reasonable at checkout turn out to be far below what the carrier actually charges. Labels have to be created manually outside Shopify and re-entered order by order. A customer in Germany receives an unexpected customs bill they weren't warned about, and leaves a negative review.

None of these are unavoidable. They're the result of setting up international shipping reactively, configuring settings as problems surface rather than building the workflow correctly from the start. This guide walks through what to decide before you touch a single Shopify setting, how to configure international shipping zones and markets correctly, why live carrier rates matter more for international orders than domestic ones, and which apps actually solve the rate and label problem in practice.

Before You Touch Settings: Decisions to Make First

The most common international shipping mistakes happen before anyone opens Shopify admin. Skipping the upfront decisions and going straight to configuration means you'll be undoing settings within a few weeks.

1. Which countries will you actually ship to?

  • Not every country makes business sense to ship to from day one. Factor in: carrier availability to that destination, customs complexity (some markets have high duties or restrictive import rules), return rates and logistics, and whether demand in that market justifies the operational overhead. 

2. Will you pass shipping costs to customers or absorb them?

  • Free international shipping is a powerful conversion tool but needs careful margin analysis. Flat-rate international shipping is simpler to manage but either overcharges some customers or undercharges you depending on destination and package weight.
  • Live carrier rates, where the customer pays exactly what the carrier charges, are the most accurate model but require carrier integration beyond Shopify's native settings.

3. Single carrier or multiple?

  • A single carrier keeps operations simple but limits your options when a carrier doesn't serve a destination competitively. Multiple carriers give you flexibility: ship with UPS to the US, DHL to Europe, India Post for domestic, but require a shipping app that handles all of them in one workflow.

Shopify International Shipping Settings: Step by Step

Once you've made the upfront decisions, here's how to configure international shipping correctly in Shopify.

Step 1: Add international shipping zones

Go to Settings → Shipping and delivery → Add Zone (Below The Fulfillment Warehouse) on your shipping profile. Name it (e.g., "Europe" or "Southeast Asia"), and add the countries that fall within it. You can create multiple zones with different rate structures; for example, a "US & Canada" zone at one price tier and a "Rest of World" zone at a higher flat rate.

Step 2: Set up Shopify Markets

Go to Markets on your Shopify admin page and add the international markets you're selling to. Shopify Markets lets you set local currencies, localised pricing, and specific domain or subfolder structures per market. This is separate from shipping zones but feeds into how international customers experience checkout, including the currency they see rates displayed in.

Step 3: Assign rates to each zone

Within each shipping zone, you'll add rate rules. Shopify gives you three options natively:

  • Flat rate
    : A fixed charge per order or per weight band
  • Free shipping: Triggered by order value or unconditional
  • Carrier-calculated rates: Live rates pulled from a carrier's API, available on Shopify's Grow plan(Annual Billing) and above or as an add-on

Where flat rates fall short for international orders:

A flat rate of ₹1,500 to "All International" might be reasonable for a 500g package to the UAE but completely insufficient for a 3kg package to Brazil. International rates vary enormously by destination zone, package weight, dimensional weight, and service level. A flat rate that works for one order type will be wrong for most others. For stores with a varied product catalog shipping to multiple continents, flat rates require constant monitoring and manual adjustment every time carrier tariffs change.

Why Live Carrier Rates Matter More Internationally

Domestically, the variation between a correctly estimated flat rate and the actual carrier charge is often a few rupees or a few dollars, manageable. Internationally, that gap can be orders of magnitude larger.

The variables that make international rates unpredictable:

  • Destination zone
    : Carriers divide the world into pricing zones, and the jump between zones is steep. A package going to Singapore might cost significantly less than the same package going to South Africa, even though the customer sees one "International" flat rate.
  • Dimensional weight: Most international carriers charge the greater of actual weight or dimensional weight. A lightweight but bulky product a cushion, a lampshade, a camera bag is billed on its size, not what it weighs. Flat rates based on actual weight will consistently undercharge for these items.
  • Fuel surcharges: International air shipping fuel surcharges fluctuate weekly and are applied as a percentage on top of the base rate. A flat rate set in January may be materially inaccurate by March.
  • Service level differences: Economy international and express international can differ by 3–4x in price for the same package. Giving customers the choice between them with accurate prices for each is only possible with live rate integration.

Best Apps for International Shipping Rates on Shopify

Shopify's native carrier-calculated shipping covers a limited set of carriers depending on your plan and region. For most merchants, especially those shipping internationally with multiple carriers, a dedicated shipping app is the practical solution.

PH Multi-Carrier Shipping Label App by PluginHive

The PH Multi-Carrier Shipping Label App is built specifically for Shopify merchants who need live rates, label generation, and tracking across multiple carriers in a single workflow. For international shipping specifically:

  • Live rates at checkout
    : The app connects to your carrier accounts UPS, FedEx, DHL, and others and fetches real-time rates at checkout based on the customer's destination, package dimensions, and weight. Customers see carrier-specific rates and service options rather than flat estimates.
  • International label generation: Once an order is ready to fulfil, labels are generated directly in Shopify, with no switching to the carrier's own portal and re-entering address and package data. For international shipments, this includes the required customs documentation.
  • Tracking synced to Shopify: After fulfilment, tracking numbers are synced back to the Shopify order and tracking updates are reflected in the dashboard. Customers receive notifications without the merchant manually following up on each international shipment.
  • Box and dimensional weight configuration: Custom box profiles can be saved in the app so dimensional weight is calculated correctly at the checkout rate stage, preventing the under-quoting problem that comes from fetching rates without accurate package dimensions.
  • HS code support: HS codes can be added to products to help ensure the correct customs information is included when creating international shipping labels. This makes it easier to prepare shipments with the required product classification details.
  • Customs documents and ETD support: The app supports electronic trade documents (ETD) where supported by the carrier, reducing the need to print and attach physical customs documents. Merchants can also provide the required customs documentation for international shipments directly through the shipping workflow.

Customs, Duties and Documentation

Inaccurate or missing customs documentation is the most common reason international Shopify shipments get held, returned, or hit customers with unexpected fees. Getting this right is not optional.

Commercial invoice:

Every international parcel requires a commercial invoice declaring the contents, their value, and their country of origin. Most carriers require three copies for international shipments. The invoice must match the package contents exactly; discrepancies between declared and actual contents are a common cause of customs holds.

  • HS codes (Harmonised System codes):

    HS codes are the standardised international classification for goods used by customs authorities worldwide. The correct HS code for your product determines the duty rate applied at the destination. Incorrect HS codes can result in delays, penalties, or higher-than-expected duty bills for your customer. Look up the correct HS code for each product type in your catalog and store it against the product in Shopify. Some shipping apps and carrier platforms will pull this when generating the customs paperwork.

  • Declared value:

    The declared value on customs documentation should reflect the actual commercial value of the goods, not a reduced amount intended to minimise the customer's duty liability. Undervaluing goods on customs paperwork is a compliance violation in most countries and creates liability for the shipper. Some carriers also tie their compensation limits to declared value, so undervaluing reduces your coverage in the event of a claim.

  • DDP vs. DDU:

    Delivered Duty Paid (DDP) means the merchant pays duties and taxes upfront and the customer receives the package without additional charges. Delivered Duty Unpaid (DDU) means the customer is responsible for duties on arrival, which can come as a surprise if they weren't informed at checkout. Being explicit about which model you use, and setting customer expectations at checkout prevents the negative experience of an unexpected customs bill.

Conclusion

International shipping on Shopify is manageable when the decisions and configuration are done in the right order: decide which markets you're serving and what your cost model is before touching settings, configure shipping zones and markets correctly in Shopify admin, and then replace flat rates with live carrier integration so the rates customers see at checkout reflect what you actually pay.

The documentation and customs side is non-negotiable; getting HS codes, declared values, and commercial invoices right from the start avoids the delays and customer complaints that come from cutting corners on compliance. Start with the countries and carriers that make sense for your catalog, get the workflow running cleanly, and expand from there.