HS codes are the classification system customs authorities use to decide what your product is and what duty it attracts. Every cross-border shipment needs one per line item. Shopify gives you a field for it on each variant — and no practical way to fill several thousand of them.
So most stores ship without. That works until it does not: shipments held at the border, duty charged at a default rate higher than the correct one, carrier APIs rejecting labels, and customers hit with surprise charges that become support tickets and refund requests.
What an HS code is
It is a numeric code, hierarchical by design. The first six digits are internationally standardised; countries append their own digits for national tariff detail.
- The first two digits are the chapter — the broad category.
- Four digits give the heading.
- Six digits give the subheading, which is the globally common part.
- Eight or ten digits are the national tariff line, which varies by destination country.
Six digits is the usual thing to store on a product in Shopify. Your carrier or broker extends it for the destination.
Why the spreadsheet is the right tool
Classification is naturally grouped work. Every cotton t-shirt in your catalog shares a code. Every ceramic mug shares a code. You are not classifying 3,000 products — you are classifying maybe 40 product groups and then applying the result 3,000 times. That is precisely what sorting and fill-down are for.
SheetSync exports one row per product or variant with type, vendor, SKU, title and the HS code field. From there:
Classify by product type. Sort by type, classify each group once, fill down the block. Most catalogs are done in an hour.
Keep a lookup table. Put your product-type-to-HS-code mapping on a second tab and drive the column with =VLOOKUP(C2, Codes!A:B, 2, FALSE). New products classify themselves on the next export, and your classification decisions are documented in one place rather than living in someone's head.
Find what is missing. Filter to blanks. That is your remaining work, with an exact count.
Validate. =LEN(F2) flags anything that is not six digits. Combine with a check that the value is numeric and you catch the typos before customs does.
Spot misclassification. A pivot of HS code against product type immediately shows the outlier — the one apparel item sitting under a homeware chapter because of a copy-paste.
Step by step
- Open Product Info Sync and include the HS code field in your export.
- Export the catalog and sort by product type.
- Classify each group using your national customs tariff lookup — most authorities publish a free searchable tariff.
- Build a lookup tab so the mapping is reusable.
- Validate length and format.
- Paste values, sync back, and review the log.
Getting it right
- Format the column as plain text. This is the number one cause of broken HS data: a spreadsheet reads
6109.10as a number and silently drops the trailing zero, or converts a code to scientific notation. Set the format before you paste anything. - Pick one convention for separators. Store six plain digits, consistently, rather than mixing
610910and6109.10. - Classify by what the product is, not what it is for. Material and construction usually drive the code more than the use case does.
- Use your own country's official tariff tool rather than a code you found in a forum. Classification is a declaration you are legally responsible for.
- Ask a broker for the ambiguous ones. Composite goods, sets and kits are genuinely hard. Classify the easy 95% yourself and get advice on the rest — much cheaper than advice on all of it.
- Review annually. The harmonized system is revised periodically and codes are retired. A yearly pass over your lookup tab is enough.
HS codes and country of origin are the two halves of a customs declaration. Export both columns together and do the whole job in one sync.
Fill in your HS codes once
Export your catalog, classify in a spreadsheet, and sync HS codes back to Shopify.
Try SheetSync today