Setting HS codes across a large catalogue

International labels will not print without an HS code, and duties at checkout are guessed without one. Shopify gives your store a default country of origin — but not a default HS code, and the code lives on every variant, not the product. Here is how to fill a large catalogue without clicking through it, and the spreadsheet that has nowhere to put the code.

Shopify has no default HS code. It gives your store a default country of origin — "In the event a country of origin isn't listed on your product, we'll use your default country of origin for duty and tax calculations at checkout." — but nothing like it for the code. (That origin value stays on the customs side of your store; showing it to shoppers is a separate problem.) And the code is not set once per product: it sits on every variant.

A merchant asking Shopify for a fix in June 2026 put it plainly: "Currently, HS code and Country of Origin must be set individually on every variant, even when all variants of a product are identical in classification and origin."

Why the empty fields matter

Two things go wrong without them. Labels: "shipping labels can't be printed for international orders unless they have Harmonized System (HS) codes." Duties at checkout: "If a product is missing an HS code, then calculations are based on the product's description and product category instead" — and with none of the three, "duties and import taxes are still calculated, but are likely to be inaccurate." If you collect duties at checkout, a wrong estimate is either money you lose or a customer charged the wrong amount.

Why it is every variant

Shopify's HS code help page talks about a product's Shipping section and never mentions variants. Its own spreadsheets tell you otherwise: one row per variant, with the variant's SKU and options beside the HS code. A shirt in four sizes and three colours is twelve codes, usually the same one twelve times.

Filling thousands at once

The bulk editor, for hundreds. In Products, tick the products, choose Bulk edit, then under Columns › Shipping add Harmonized system code. Every variant gets its own cell, and you can fill the column down.

The inventory spreadsheet, for the whole catalogue. In Products › Inventory, choose Export. The file has an HS Code column and a COO column for country of origin, one row per variant — and per location, if you stock more than one. Fill them and import the file back.

The duties spreadsheet, for the gaps. In Settings › Taxes and duties › Duties and import taxes, open Manage, and under Product information choose Update with CSV. Shopify exports the products that are missing information; fill the HS code column, import it back, and Shopify emails you when it is done.

The spreadsheet that cannot. The ordinary product spreadsheet under Products › Import has no HS code column and no country of origin column. If you have been adding a column there and seeing nothing change, that is why.

Looking the code up. "If you don't have an HS code for your product, then start typing a description of your product to search for the appropriate code." The field offers a search of the code list, not a suggestion — you still choose.

Hundreds of products waiting for an HS code? Describe your catalogue →

Making it a rule rather than a chore

An app does the rule for you. HS Code & Origin Bulk Editor sets codes and country of origin in bulk, by collection on its free plan (up to 20 products a month). At $9.99 a month (up to 1,000 products) it filters by vendor, product type and tag and can run on a schedule; at $19.99, unlimited, it adds its own rules and applies them to new products as they arrive. It is young — one review at the time of writing — so try it on a copy of a collection first.

Shopify Flow can do it too, if you prefer Shopify's own tools. Flow has no set HS code action, but its Send Admin API request action can make most changes Shopify allows, "including mutations not yet available as actions in Flow." The change that sets an HS code is not on its list of exceptions, so a workflow such as when a product of type Wool jumper is created, give each variant 6110.11 should be buildable — test it on one product first. Flow is free on Basic, Grow, Advanced and Plus; it is not available on Starter.

Two more things worth knowing

Six digits is the start, not the limit. Since October 2025 you can add country-specific codes, with more digits than the standard six, for the markets you ship to.

Managed Markets uses its own codes. If you use it, "Harmonized System (HS) codes are automatically assigned to your products and might differ from the ones that you initially entered." Your own codes are not thrown away — Shopify says "Your codes and Managed Markets codes are kept separate, so you always know which rates and rules apply."

Which route is yours

What you need Where it comes from
A default HS code for the whole store Not native — only country of origin has one
Codes on a few hundred variants Native — bulk editor, Harmonized system code column
Codes on the whole catalogue Native — the inventory spreadsheet, HS Code and COO columns
Codes for the products still missing one Native — the duties spreadsheet under Taxes and duties
Codes through the product spreadsheet Not possible — it has no HS column
Codes by type, vendor or tag, including new products An app — HS Code & Origin Bulk Editor, from $9.99; or a Flow build, Basic and above
Shopify choosing the code Not native — the field offers a search, not a suggestion

What Shopivibe does

If your catalogue sorts cleanly by type, vendor or tag, use the spreadsheets and the app above — they do exactly that, for a few dollars a month or nothing.

Where this becomes worth asking for is when the code does not follow anything those tools filter on: "anything tagged gift-set takes the code of its main item, and tell me every week which new products it could not place." That is a rule on how your products relate to each other rather than on a filter, applied as products arrive, with a list of the ones it could not place.

Two things to say plainly. We do not choose your codes — which code a product belongs under is your call, or your customs broker's, and a wrong one is answered for at the border. And setting the code is built for you, not switched on — the rule that says which item a set takes its code from is written for your catalogue. A person here takes it on straight away and has it working in your store within 24 hours.

Shopivibe solves the problem in your store and keeps what it adds maintained, including when Shopify changes something underneath. Shopivibe is free during early access, with 3,500 credits included. Credits beyond the included 3,500 cost $0.06 each.

Know which code each of your products should carry? Describe it in your own words →

Checked against Shopify's documentation and the App Store on 22 September 2026.