The rules are shifting. The United States removed the $800 de minimis exemption for commercial shipments in 2025, and the European Union is set to remove its €150 equivalent in July 2026. Both changes mean parcels that used to pass through customs without a declaration now need one, and an incomplete declaration means the parcel gets held.
The check is deterministic. We paginate every product and variant with read-only access, look at the customs information on the variant record, and flag anything missing or clearly wrong (a bracelet listed as 0.00 kg, an HS code that is not a real classification). No guessing.
What we check
HS codes present
Every variant carries a customs HS code, checked against the standard format.
Country of origin
Every variant has a country of origin set on the customs record.
Weights plausible
Zero-weight variants flagged, so carriers can calculate real shipping.
Consistency across siblings
Sibling variants of the same product agree on origin and classification.
Example finding
One real check, rendered the way it appears in a report.
87 variants missing HS codes
These variants have no customs classification. They can still be sold, but any international parcel is likely to be held or delayed at the border.
Products.customsInformation.harmonizedSystemCode: null on 87 of 326 variants.
Fix
Assign an HS code to each affected variant. In a Collective or dropship catalog, request the classification from the supplier for anything a sibling variant does not already cover.
The full picture
What an HS code actually is
A Harmonized System code is a numeric classification every customs authority uses to decide what a parcel contains, what duty applies, and whether the goods need a licence. The first six digits are international. Countries then add their own digits: the United States uses ten (HTS), the European Union uses eight to ten (TARIC or CN). Shopify stores the code on the variant, not the product, so two sizes of the same item can carry different classifications when the material differs.
Getting the first six digits right is the part that matters for shipping. Carriers and brokers can extend a valid six-digit heading to the destination format. They cannot invent one from a product title.
Why the gap is expensive now
The United States ended the $800 de minimis exemption for commercial shipments in 2025, and the European Union removes its 150 euro equivalent in July 2026. Parcels that used to cross with a description and a value now need a real declaration. When the code is missing, one of three things happens: the broker classifies it for you and charges a fee, the parcel is held pending information, or the shipment is returned.
Each of those lands on the customer, not on the border. A held parcel becomes a support ticket, then a refund request, then a chargeback. The cost of an incomplete customs field is almost never the duty itself.
How to find the right code without guessing
Work supplier first. Manufacturers classify their own goods for export and can usually hand you a six-digit heading per product line. For anything unclassified, search the official tariff database for your shipping origin: the USITC HTS search for the United States, TARIC for the European Union, or the UK Trade Tariff. Search by material and function, not by brand name.
Classify by product family rather than by SKU. A catalog of 300 variants usually collapses into 15 or 20 families, and siblings within a family almost always share a heading. When you are genuinely unsure between two headings, the customs authority can issue a binding ruling; until then, use the closest heading and record the reasoning.
The four mistakes we see most
First, a code set on the product but not on every variant, which passes a quick eyeball and fails at the border. Second, a code copied from a similar item in a different material, which is the most common cause of a reclassification fee. Third, a country of origin set to the warehouse country rather than where the goods were made or substantially transformed. Fourth, a zero weight, which quotes a rate no carrier will honour and makes duty calculation impossible.
Storecheck flags all four with counts, so you can work through them as a handful of tasks instead of a product by product hunt.
A workable fix order
Start with the products you actually ship internationally, ranked by order volume. Assign a family level code, apply it to every variant in the family, then set country of origin on the same pass since you have the supplier information in front of you. Fix zero weights last, because they are quick and mechanical once the classification work is done.
Re-run the check after each batch. The count is the progress bar: when it reaches zero, every parcel leaving your store has a complete declaration.
Common questions
What happens if my Shopify store ships without HS codes?
Since the US removed its $800 de minimis exemption and the EU removed the €150 equivalent in July 2026, most international parcels need a complete customs declaration. A missing HS code means the carrier or broker guesses, or the parcel is held until someone supplies one. Either way the delivery slows and the buyer may get a surprise duties bill.
Where do I find the right HS code for a product?
Start with your supplier: most manufacturers classify their own goods. For anything unclassified, use your national tariff lookup (the US HTS search or the EU TARIC database) and pick the closest six-digit heading. Storecheck flags which variants are missing codes so you can work through them in batches instead of product by product.
Does Shopify require HS codes on every variant?
Shopify does not block a sale without one, which is exactly why the gap is silent. The checkout works, the order is placed, and the problem only surfaces when the parcel reaches a border. Variant-level codes matter because sibling variants can fall under different classifications.
Related checks
Related guide: How to add HS codes to your Shopify products