EU Customs & Shopify: Your Essential Guide to Product Identifiers for 2026
Hey fellow store owners! Let's talk about something really important for anyone shipping physical goods from outside the EU to customers within it. There's a big change coming down the pipeline from EU customs, and it's set to kick in officially on November 1, 2026 (though you can start voluntarily complying from July 1, 2026, with no penalties during that period). We're talking about new requirements for product identifiers, and if your product data isn't ready, you could run into some serious customs headaches. This topic actually sparked a really valuable discussion in the Shopify community recently, and I want to break down what we learned and how you can prepare.
Understanding the "Big Three" Product Identifiers
The core of this new regulation requires three specific product identifiers for every item in your customs declarations, mandatory from November 1, 2026. Jamelight, who kicked off the community discussion, outlined them clearly from the Commission's guidance:
- M-PID (Merchant Product Identifier): This is your own product code, typically your SKU (Stock Keeping Unit). Crucially, each variant needs a unique SKU. No blanks or repeats!
- NS-PID (National/Standardized Product Identifier - Manufacturer/Supplier): This is the manufacturer's or supplier's own code for the item (model/part number). This is required for every item, and it's a key challenge with Shopify's standard export.
- S-PID (Standardized Product Identifier): This refers to widely recognized identifiers like GTIN, EAN, UPC, or ISBN. If your product truly doesn't have one, you'll use an exception code (Y081). Remember, 'blank in my export' doesn't mean 'doesn't exist'.
Shopify's CSV Export & The NS-PID Challenge
So, how does Shopify stack up against these requirements? When Jamelight dug into Shopify's product CSV export, here's what was found:
What Shopify Does Well (Mostly)
- M-PID (SKU): As mentioned, your SKU column works great here, assuming each variant has a unique SKU.
- S-PID (Barcodes): Shopify's export column is called 'Barcodes' (plural). It can hold up to 20 typed values per variant, like
gtin:00012345678905; upc:012345678905; INTERNAL-123. You'll need to decide which single standardized value customs should use. Internal or ASIN codes usually don't count as standardized.
The NS-PID Gap & The Community's Solution
The real head-scratcher is the NS-PID. There's no dedicated manufacturer-code column in Shopify's standard product CSV export. This means you have to collect these codes from your suppliers and find a place to store them.
This is where One-Sun1995 jumped in with a super helpful insight from the community thread. They suggested a clever workaround: defining a product metafield. If you go into Settings > Custom data > Products and define a metafield for your manufacturer code (e.g., mfr_code), Shopify will automatically pull that into your product CSV export! It'll show up as a header like Manufacturer code (product.metafields.custom.mfr_code). This is fantastic because it means you can fill in this crucial information directly in the same CSV you're already using.
A Crucial Nuance: Product vs. Variant Metafields
Now, here's a really important distinction that Jamelight highlighted, echoing Shopify's own documentation: while product metafields show up in your CSV export, variant metafields do not. This is a potential 'trap' as One-Sun1995 warned. If your manufacturer's part number (NS-PID) differs per variant (e.g., different sizes of the same shirt have different manufacturer codes), using a product-level metafield won't cut it. In such cases, you'd be 'stuck with the variant bulk editor' to manage these variant-specific codes. It's vital to know if your NS-PIDs are product-level or variant-level.
Jamelight's advice here is spot-on: "For products sold in different sizes or colours, I wouldn’t assume one product-level manufacturer code covers every variant without checking the maker’s or supplier’s actual references." Always verify!
Actionable Steps to Get Ready Now
So, what should you be doing right now to get ready? It boils down to a few key steps:
- Audit Your Current Data:
- Export your products (Products → CSV).
- Ensure unique SKUs for every variant (M-PID).
- Verify your 'Barcodes' column has valid S-PIDs. Avoid placeholders like 'N/A' or '0'.
- Implement for NS-PID (Manufacturer Code): This is the main challenge, and the community offered a clear path.
- Determine NS-PID Level: First, confirm if manufacturer codes are consistent across product variants, or if they differ per variant. This is critical.
- If Product-Level NS-PID:
- Go to Shopify Admin → Settings → Custom data → Products.
- Add a definition: e.g., 'Manufacturer Part Number' (
custom.manufacturer_code), 'Single line text'. - This new column will appear in your product CSV export, or you can fill it directly on product pages.
- If Variant-Level NS-PID:
- You'll need to use the variant bulk editor (Products → select product → 'Edit variants').
- You'll first need to add a variant metafield definition (Settings → Custom data → Variants). Remember, these won't appear in standard CSV exports.
- Reach Out to Suppliers: Start compiling a list of products missing NS-PIDs and request those codes now.
- Third-Party Providers: Services like Global-e or Zonos can help with declarations, but they emphasize that your accurate product data is essential. Their own docs state that merchants must find and fix catalogue gaps well in advance.
It might feel like a lot, but preparing now will save you significant headaches, delays, and potential fines down the line. November 2026 will be here before you know it. Start with that CSV export, identify your gaps, and begin filling them in. Tools like Jamelight's TITANTH Catalog Check (with a free 25-row checker at Free EU product identifier checker for Shopify CSV (25 rows) | TITANTH) can offer a quick snapshot of your readiness. Stay informed by checking with your carriers and customs representatives. Happy and compliant selling!