Guide

Shopify Markets duties and HS codes: what cross-border merchants get wrong

June 9, 2026 · 8 min read · shopify customs duties, cross border hs code

Shopify Markets makes it easy to sell in Canada, the US, and beyond — but it does not automatically fix your customs data. If your product catalog has missing or guessed HS codes, you will still pay surprise duties, face border delays, and lose margin on international orders.

This guide explains how Shopify customs duties actually work under Markets, why harmonized system codes sit at the center of every cross-border shipment, and what a practical customs readiness audit looks like before you turn on a new market.

What Shopify Markets does — and what it leaves to you

Shopify Markets handles the storefront experience: localized pricing, currency conversion, domain routing, and (with the right carriers) duties and taxes at checkout. Customers see a polished local buying experience. That is the part merchants notice first.

What Markets does not do is classify your products for customs. Each SKU still needs a valid harmonized system code before it crosses a border. Carriers and customs authorities use that code — not your product title — to determine:

Many merchants assume that enabling a new market in Shopify admin is enough. It is not. The compliance work happens in your catalog data layer — specifically, the HS code and country-of-origin fields attached to each product variant.

Why HS codes determine your Shopify customs duties

An HS code (Harmonized System code) is a standardized product classification number used by customs agencies worldwide. For ecommerce, think of it as the SKU customs sees. When a customer in Toronto or Texas receives your package, the broker looks up your declared code in the national tariff schedule and applies the matching duty rate.

A wrong code creates three expensive outcomes:

  1. Underpaid duties — You or your customer get a bill after delivery. Chargebacks and support tickets follow.
  2. Overpaid duties — You absorb margin you did not need to lose because the product was classified in a higher-duty category.
  3. Border holds — Shipments stall for manual review. Delivery promises break. Repeat purchase rates drop.

For a Shopify store doing even 50 cross-border orders per month, a handful of misclassified SKUs can cost more than a year of compliance tooling.

Canada vs United States: one product, two codes

This is where most international sellers stumble. Canada and the United States share the first six digits of the harmonized system, but each country extends the code to 10 digits with its own tariff lines and duty rates.

Example: a women's cotton knit pullover might classify as:

Same sweater. Same Shopify listing. Different national codes and different landed costs. If you ship to both markets under Shopify Markets, you need both codes correct on every affected SKU — not a single generic "6110" chapter guess pulled from a blog post.

Shopify's catalog supports country-specific HS data through metafields and market configurations, but the values still have to be accurate. Garbage in, duties out.

How duties flow through a Shopify Markets order

Here is the simplified path from checkout to customs, which helps clarify where data breaks:

  1. Checkout — Shopify (or your carrier app) estimates duties and taxes using product data you supplied, including HS code and declared value.
  2. Fulfillment — Your 3PL or shipping label software transmits the commercial invoice. The HS code on the invoice must match what customs expects for that product description.
  3. Customs clearance — CBSA or CBP validates the code against the shipment contents. Mismatches trigger holds or reassessment.
  4. Delivery — If duties were under-collected at checkout, the carrier bills the recipient — which shows up as a bad post-purchase experience tied to your brand.

Duties collected at checkout are only as good as the HS code behind them. If your catalog still has blank harmonized system fields, Shopify customs duties displayed to buyers are estimates built on sand.

The five catalog problems we see in every customs readiness audit

When merchants run a free customs readiness audit, the same issues appear repeatedly:

  1. Missing codes — Especially on older SKUs, bundles, and variants added before international expansion.
  2. Chapter-level guesses — A 4-digit or 6-digit code copied from a supplier invoice, without the country-specific 10-digit extension.
  3. One code for all markets — US HTS pasted into the Canada field (or vice versa).
  4. Description drift — Product title updated for SEO ("organic bamboo tee") but HS code still reflects the old classification ("polyester blend").
  5. Variant blindness — Parent product classified; size/color variants with different materials left blank.

None of these show up as red errors in Shopify admin. They surface when a shipment gets held or a customer emails about an unexpected $34 duty bill.

Cross-border HS code cleanup: a practical workflow

You do not need a customs broker on staff to get 80% of the way there. You need a repeatable cleanup process before you scale ad spend or wholesale into a new market.

Step 1 — Export and segment

Pull every SKU you ship cross-border. Segment by destination market (Canada, US, both) and flag rows with empty or suspiciously short codes. Anything under 10 digits for CA or US destinations goes on the fix list.

Step 2 — Classify with market-specific codes

Assign 10-digit Canadian CBSA codes and 10-digit US HTS codes simultaneously. Tools trained on broker data — not generic keyword matchers — handle this at catalog scale. Jstars AI HS Code Classifier does both in one pass and includes current duty rates so you can sanity-check landed cost before publishing market pricing.

Step 3 — Reconcile duty rates with Markets pricing

Once codes are clean, compare duty rates against your Shopify Markets price lists. A 12% duty swing on a hero SKU may mean your US market price needs adjustment — better to find that in a spreadsheet than in a chargeback.

Step 4 — Write codes back to Shopify

Store classifications in the metafields or fields your carrier and Markets configuration read. Document who owns ongoing maintenance (new product launches, seasonal bundles).

Step 5 — Re-audit quarterly

Tariff schedules change. The 2026 US HTS Revision 5 introduced line-item updates that shifted rates for common consumer goods. Schedule a quarterly customs readiness audit the same way you review ad ROAS — especially if you add SKUs weekly.

Checklist before enabling a new Shopify Market

Run through this list before you flip the switch on Canada, the US, or any new cross-border market:

If more than 10% of your catalog fails the first bullet, pause the market launch. Fix the data first. The install cost of a classification app is trivial compared to one rejected pallet.

HS codes and Shopify Markets: the compounding advantage

Merchants who treat customs data as infrastructure — not a one-time spreadsheet project — compound advantages over time:

Organic search reinforces the same positioning. Merchants Google "hs code shopify" and "shopify customs duties" before they open the App Store. Owned content on your domain — like this guide — captures that intent weeks before a paid ad would.

When to escalate to a customs broker

Software gets you accurate codes for standard consumer goods at catalog scale. You still want a licensed broker for:

Think of catalog classification tools as the cleanup layer that gets you broker-ready, not broker-replacement for complex regulatory lines.

Run a free customs readiness audit

Install Jstars AI HS Code Classifier on Shopify. Classify your catalog with accurate CA + US HS codes and duty rates — free for your first 20 products each month.

Install on Shopify — Free

Related reading: How to run a free customs readiness audit · HS code FAQ for Shopify merchants · Jstars AI HS Code Classifier overview