EU Product Identifiers: The Deadline Is 4 Days Away

EU product identifiers become mandatory on 1 November 2026 for parcels sent to EU customers from outside the EU. Enforceable since then, a parcel missing them can be held or rejected at customs, and you may pay return-to-origin fees on top.
The short answer: most Shopify stores already meet two of the three identifiers without doing anything. The gap is almost always the barcode, and it takes minutes per variant to fix.
What are the three EU product identifiers?
The EU asks for three codes per item. Each comes from a different place:
| What it is | Who assigns it | Required | Shopify source | |
|---|---|---|---|---|
| M-PID | Merchant product identifier | You | Always | Variant ID, automatic |
| NS-PID | Non-standardised manufacturer identifier | Manufacturer | Always | NS-PID barcode |
| S-PID | Standardised identifier (GTIN, EAN, UPC, ISBN) | Manufacturer | Where one exists | Barcode with matching type |
According to Shopify's help documentation, M-PID uses the product variant's ID automatically, so you add nothing.
A variant that already has a GTIN or a SKU also meets NS-PID, because Shopify falls back through the standardised barcode, any other barcode, the SKU and finally the variant ID. That is why most stores are closer to compliant than they think.
The one thing most stores are missing
S-PID is the real gap, because it only exists if you sell products that carry a barcode.
If your products genuinely have no GTIN, EAN, UPC or ISBN, such as handmade or one-of-a-kind items, you declare that instead. Customs calls the declaration Y081, and you switch it on in the Shipping section's More details card on the product or variant page.
Make that declaration only when it is true. Once it is on, no standardised identifier reaches customs for that item even if one is saved on the variant.
What happens at the label desk on 1 November
This is the part with a hard consequence. From 1 November, if an item in a parcel worth €150 or less is missing a standardised identifier and the Y081 declaration is off, the shipping label cannot be bought until the item is updated.
Shopify lets you fix it from the label page through Edit customs declaration, and identifiers entered there are saved back to the product.
If you buy labels outside the Shopify admin, Shopifys states plainly that you need to get the identifiers to your carrier through whatever method you use today. That route is on you.
What else lands on the same date
Product identifiers are not the only 1 November change, and treating them in isolation will cost you.
A €2 Union handling fee applies to distance sales from 1 November, whatever the value. Separately, a €3 customs duty per item has applied since 1 July 2026 to consignments up to €150, running until 1 July 2028 unless extended.
That combination changes the economics of low-value cross-border orders, which matters most for stores selling cheap items into Europe.
Who is exempt
The EU exempts some goods from the identifier requirement: unprocessed agricultural and perishable goods in HS chapters 01 to 15, certain handmade and artisanal goods, and antiques, collectibles, works of art, stamps and coins.
The exemption is applied from the variant's HS code, so an inaccurate HS code can silently cost you an exemption you were entitled to. You cannot mark a product as exempt yourself.
HS codes are required for EU shipments anyway, so reviewing both at once is the efficient move. If you are also cutting app subscriptions before the deadline, our app cost breakdown covers the money side of that cleanup.
Do it in bulk, not one by one
Two ways to avoid a weekend of manual editing.
Use the bulk editor for a value that repeats across a collection, or a CSV import when you have a supplier file with barcodes. Identifiers save on the variant, so you enter them once and they are reused on every label and declaration for that variant.
Start with your highest-volume EU SKUs. If you cannot finish the catalogue, finishing the top sellers removes almost all of the held-parcel risk. When we audited a run of Shopify catalogues for this piece, the pattern was consistent: the barcode field is either fully populated from a supplier feed or almost entirely empty, and the empty ones are the ones shipping blind.
Where the details get genuinely murky
Two things are worth knowing before you assume the rule is settled.
First, the €150 threshold is not stated consistently. Shopify and the European Commission's own guidance frame identifiers around consignments up to €150, while some carrier guides describe the requirement as applying regardless of value. If you ship above €150 into the EU, confirm with your carrier rather than trusting a summary.
Second, the C127, C128 and C129 codes quoted across the internet do not appear in the regulation itself, which defines the identifiers by what they are and assigns no code numbers. Those come from declaration code lists, and they do not fully agree with each other.
The limitation that matters most: none of this is our area of expertise. We audit storefronts, not customs declarations. We build storefronts, and we are reading the same customs guidance you are. For anything with duty exposure, ask your customs broker.
Ready to build a faster, higher-converting store?
Every Shoptimity theme ships with conversion widgets built in — so you get speed and features without stacking apps.
7-day free trial · all themes included · cancel anytime
Continue Reading

Shopify B2B Company Locations: Give Buyers the Right Access
Configure Shopify B2B company locations, verify buyer permissions and test pricing, addresses and pa...

Shopify Checkout Contact Settings: Separate Email From Shipping Phone
Configure Shopify checkout contact settings and test email, phone and shipping address requirements ...

Shopify POS Recent Carts: Share a Sale Without Reserving Stock
Learn how Shopify POS recent carts work across devices, what they do not reserve, and how to hand of...