Every item in an international parcel needs an HS code on its customs declaration. The code tells customs what the goods are and decides the duty your customer pays. If your codes live in a spreadsheet or in one person’s head, your team ends up typing them at the packing bench, order by order.
That’s where mistakes creep in. A mistyped or outdated code can mean the wrong duty, a parcel held at the border, or a customer paying more than they expected on delivery. These problems usually only surface after the parcel has left.
Zenstores stores the HS code against the product, not the order. Set it once, and every international shipment carrying that product picks it up automatically. The steps below cover the three ways to get your codes in, and what happens to them at dispatch.
- Find the right HS code for each product
Before you add anything to Zenstores, look up each product on the UK Trade Tariff service on GOV.UK to check for the correct codes. An incorrect code can hold a parcel at customs or lead to the wrong duty being charged. For EU orders, the code also decides how many times the €3 low-value parcel duty is charged, since it applies once per type of product. Once every product has a code, you’re ready to get them into Zenstores.
- Zenstores imports HS codes from Shopify with your products
If your HS codes are already on your products in Shopify, you don’t need to enter them again. Zenstores imports customs data and product weights from Shopify automatically, along with the rest of your product data. The Product Sync Settings page lets you control how that product data syncs into Zenstores. If you sell on other channels, or keep your codes in a spreadsheet, a CSV upload covers the rest.
- Upload HS codes in bulk with a CSV matched on SKU
Use the Zenstores product CSV template to fill in or correct codes across your whole catalogue in one upload. SKU is the only required column, and Zenstores matches every row on it. A row with an existing SKU updates that product, and a row with a new SKU creates a new product. Keep your SKUs identical to those on your sales channels, because that’s how Zenstores links each product to incoming orders.
- Add codes to individual products and set a fallback
For a new product or a single correction, open the product in Zenstores. Enter its HS code there, alongside its customs description, country of origin and EU product identifiers. In your customs settings, you can also set a default tariff code, description and country of origin, which Zenstores uses only when it can’t fill a field from the order or product data. One default rarely suits a varied catalogue, so treat it as a safety net for the odd gap, not a replacement for product-level codes.
- Zenstores adds the stored code to every customs declaration at dispatch
When you book an international shipment, Zenstores pulls each item’s HS code, customs description and country of origin from the product onto the customs declaration. The item value comes from the item price. This applies to every international carrier assignment, including Royal Mail, Parcelforce, DHL Express and FedEx and customs forms are printed alongside the shipping label.
Populate M-PID, NS-PID and S-PID customs fields for EU orders
From 1 November 2026, orders to the EU require product identifiers in customs. Zenstores imports SKUs as well as codes like MPN, GTIN, ISBN, EAN from your store and adds them to the right customs fields so orders aren't held at the border.
Zenstores is an excellent platform, I use Royal Mail to ship, and Zenstores integrates seamlessly. The customer support is excellent, Michael sorted any queries I had straight away. I cannot recommend Zenstores highly enough.
I Want That Present
Frequently Asked Questions
What happens if a product has no HS code stored in Zenstores?
Zenstores falls back to the default tariff code in your customs settings. It does the same with a default description and country of origin, but only when those fields can’t be filled from the order or product data. One default code won’t be accurate for every product in a mixed catalogue. Add product-level codes for anything you ship internationally.
How do I add HS codes for products I sell on Amazon, eBay or Etsy?
Upload them with a CSV, or add them to each product in Zenstores. Zenstores matches products to orders by SKU, so a code stored once applies to orders from any connected channel. Make sure the SKU in Zenstores matches the SKU on each channel exactly, or the product data won’t attach to the order.
Who decides which HS code a product uses?
You do. Zenstores stores the code you choose and applies it to every international declaration for that product. The UK Trade Tariff service on GOV.UK is the place to look codes up, and it’s worth checking a code there if a product could fit more than one classification.
What other customs data should I store alongside the HS code?
Store a customs description and country of origin on each product, since Zenstores uses both on the declaration. Product identifiers such as GTIN, EAN and the manufacturer part number help fill in EU customs fields, and product-level identifiers become mandatory for EU customs from 1 November 2026. If you make goods in the UK that qualify under the UK-EU trade agreement’s rules of origin, you can flag them for preferential origin. Royal Mail and Parcelforce use that flag to apply reduced or zero import duty for your EU customers.
Do I need to re-enter HS codes if I add a new international carrier?
No. The code sits on the product, not the carrier, so every international carrier assignment draws on the same stored data. Zenstores generates the customs documentation from it for Royal Mail, Parcelforce, DHL Express and FedEx.