"HS codes and country of origin are required to ship products internationally"
You went to buy a shipping label and Shopify stopped you. Nothing is broken. Shopify is telling you that at least one product in this order is missing customs data, and it won't print a label without it.
This page covers what the two missing fields are, how to fill them for one product, how to fill them for a lot of products, and why the error sometimes shows up on orders that never leave the country.
What Shopify is actually asking for
Two fields, both on the product, both in the Shipping section:
- Country of origin — where the item was made or manufactured. Not where you ship it from, and not where your business is registered. This trips up a lot of people. If you're a US seller shipping a shirt made in Vietnam, the country of origin is Vietnam.
- Harmonized System (HS) code — the number customs uses to classify what's in the box. At least six digits, numbers only. What each digit means, if you've never looked at one closely.
Customs authorities use both to decide duty. Carriers won't accept an international label without them, which is why Shopify blocks the purchase rather than letting you print something that gets rejected later.
Fix it for one product
Shopify's own steps, which take about thirty seconds:
- From your Shopify admin, go to Products.
- Click the product you want to edit.
- In the Shipping section, make sure Physical product is turned on. If it isn't, the customs fields don't appear at all.
- Click Country of origin and pick the country or region where the item was made.
- In Harmonized System (HS) code, enter the code.
Save, go back to the order, and the label will buy.
Fix it for a lot of products
Shopify has a built-in bulk editor and it's free. From the product list, check the products you want, then:
- Click Bulk edit.
- Click Columns.
- In the Shipping section, click Harmonized system code.
- Edit your products as necessary, then click Save.
You get a spreadsheet-style grid and can type codes down the column.
That works. The problem isn't the editing, it's the selecting. The bulk editor edits the products you hand it. It won't tell you which products are missing data in the first place, and Shopify's product list has no filter for "HS code is empty." On a catalog of a few hundred products with variants, finding the gaps is the part that eats the afternoon, not typing the codes.
Shopify gives you the editor. It doesn't give you the list. Every method is compared in adding HS codes in bulk.
Why you're seeing this now
Three things cause it, and it's often the third:
- The products predate international shipping. Customs fields are optional until they aren't. Everything added before you started shipping abroad has them blank.
- The products came in by CSV. Shopify's standard product CSV has no HS code column at all — the value lives on the variant's inventory item, not the product — so an import leaves the field empty on every row, silently.
- Markets is enabled. Once international markets are turned on in your store settings, the customs requirement applies to label purchases generally, including orders shipping from one US address to another. See why Shopify asks for HS codes on a domestic order.
What happens if you ignore it
You can't, in the sense that the label won't buy. But the wider version matters too. Shopify's own documentation is direct about what missing or incorrect codes lead to: non-compliance penalties, border delays, seizure of the products, or denial of import. A shipment held at a border is worse than a shipment you couldn't send.
Frequently asked questions
Why does Shopify want an HS code for a domestic order?
Once international markets are enabled in your store settings, Shopify applies the customs data requirement to label purchases generally, not only to orders crossing a border. Turning markets off clears the error but also turns off your international selling, which is almost never what you want.
What is a valid HS code?
At least six digits, numbers only. No letters, no periods, no spaces. A four-digit heading is a category rather than a classification and carriers reject it. Countries append extra digits for their own tariff schedules, but the first six are the international standard.
Can I use the same HS code for every product?
You can enter it and the label will print. It is still the wrong answer. The code determines the duty rate, so a blanket code means the wrong duty is calculated, and it is the kind of thing customs notices on repeat shipments.
Is country of origin where I ship from?
No. It is where the item was made or manufactured. A US business shipping a product manufactured in China declares China, not the United States.
Do digital products need HS codes?
No. The customs fields only appear when Physical product is enabled in the product's Shipping section. If a product is digital, leave that setting off and the requirement doesn't apply.
Related: Why Shopify asks for HS codes on a domestic order · "Harmonized code is invalid" · Shopify customs information: where the fields hide · Country of origin in Shopify · What is an HS code?
Last reviewed 27 July 2026.
Find every product that's missing customs data.
Origova scans your whole catalog and lists exactly what's missing. The scan is free and unlimited — you see your number before you decide anything.
Install on Shopify