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.
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 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
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.