TL;DR
Harmonized System (HS) codes are a core part of classifying products to move across borders. I redesigned the experience to enable region-specific classification and give advanced merchants the control they needed while the default stayed simple for everyone else.
HS codes are kind of a big deal.

Merchants selling internationally are required to fill out a customs form to move products across borders. HS codes are used to classify products to tell customs what the products are to apply the right duties, taxes, and other regulations. Every region and product needs a 6-digit code, but in reality, most regions extend that code to 8, 10, 12, or 13 digits to apply their own taxes, duties, and regulations.

With the extensions by country, it means the same product can require different classifications depending on where it’s being shipped and restrict a product entirely or more than double its duties.

The biggest problem for Shopify merchants? Shopify only supported 6 digits on a customs label.

Every border reads the same 6 digits. Then they diverge.
Global — all 193 World Customs Organization (WCO) members
70
Chapter
Glass and glassware
13
Heading
Glassware for table, kitchen, toilet, office, décor
28
Subheading
Other
Region-specific
20
Tariff line
Valued over $0.30 but not over $3 each
10
Stat. suffix
Crystalline or non-lead crystal
The global 6 digits
Chapterdigits 1–2
The broadest category. Chapters are ordered to classify everything from animals to vases to machinery.
Headingdigits 3–4
The product type within a chapter. This narrows the category to a specific class of goods.
Subheadingdigits 5–6
The specific variant within a heading. This completes the 6-digit combination that becomes the common language for international trade.
Regional extensions — digits 7+
Tariff linedigits 7–8
A country-specific extension used to set duty rates. Each country adjusts according to its own tariff schedule so the same product can carry different codes and different duty rates depending on the destination market.
Statistical suffixdigits 9–10
Added by some countries for national trade statistics. The suffix is required for filings but invisible to most merchants. In the US, this brings codes to 10 digits.
Classify something. It'll be fine.

It sounds simple, but small details change everything. What it's made of, how it's used, even who it's for can lead to a completely different classification.

Follow the questions and see where you end up.

pick something to classify

HS code
If any detail had been different:
Redesigning the 6-digit field.

HS codes are already complex. Surfacing everything upfront would make the experience worse for most merchants, so we reframed the problem: how do we introduce complexity without making it everyone’s problem?

We anchored the experience in the 6-digit HS code. Region-specific codes became opt-in, available when you need precision and invisible when you don’t.

The harder challenge was that the system itself kept changing. Instead of designing for a fixed state, we focused on a pattern that could adapt. We tested interaction models, surfaced tradeoffs, and drove alignment across the team.

What we landed on was a flexible model for handling classification at different levels of specificity.

In the end, the approach was simple:

  • Keep the default path clear
  • Make advanced control available, not required
  • Design the system to evolve
Release into the wild.

In the end, we achieved our goal to create a foundation for merchant autonomy. Success here won't be defined by adoption, but a reduction in support inquiries.

This was a project the team knew we needed for years, but every attempt revealed just how complex it was to untangle region-level HS codes. Leaving it unsolved carried real risks: packages delayed at customs, surprise tariffs, unexpected duties rates, and merchants losing trust in Shopify.

Cracking it didn't just ship a long-overdue feature. It showed how design could cut through complexity, unite a team, lead the product strategy, and deliver clarity and meaning where cross-border merchants needed it most.