Back to Blogs
eu product identifiersShopifyEUCustomsCompliance
Oct 28, 2026
By Shoptimity Team
1 min read

EU Product Identifiers: The Deadline Is 4 Days Away

Glossy 3D cream parcel with a gold barcode tag on a floating platform in a warm peach studio setting

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 isWho assigns itRequiredShopify source
M-PIDMerchant product identifierYouAlwaysVariant ID, automatic
NS-PIDNon-standardised manufacturer identifierManufacturerAlwaysNS-PID barcode
S-PIDStandardised identifier (GTIN, EAN, UPC, ISBN)ManufacturerWhere one existsBarcode with matching type
M-PID
What it isMerchant product identifier
Who assigns itYou
RequiredAlways
Shopify sourceVariant ID, automatic
NS-PID
What it isNon-standardised manufacturer identifier
Who assigns itManufacturer
RequiredAlways
Shopify sourceNS-PID barcode
S-PID
What it isStandardised identifier (GTIN, EAN, UPC, ISBN)
Who assigns itManufacturer
RequiredWhere one exists
Shopify sourceBarcode 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.

Do I need to add product identifiers if I only ship within the EU?
No. The requirement covers goods sent to a customer in the EU from outside the EU. Domestic EU-to-EU sales are not affected by this rule.
What if my product has no barcode at all?
Declare Y081 on the product or variant, which tells customs there is no standardised identifier. The NS-PID requirement still applies, so you need a manufacturer model or part number, or a SKU.
Will Shopify add the identifiers automatically?
Partially. M-PID is automatic from the variant ID, and a SKU or GTIN satisfies NS-PID. S-PID needs a real barcode saved with the matching type, or a Y081 declaration.
What happens if I miss the deadline?
Parcels can be held or rejected at customs and you may be charged return-to-origin fees. Inside Shopify, labels for affected items cannot be bought until the product is updated.
Does a barcode saved as Custom count?
Yes, when it is a valid GTIN of 8, 12, 13 or 14 digits. Otherwise save it under the matching standard type, or as an NS-PID barcode.
The verdict
If you ship into the EU, open your top twenty variants tonight and check for a barcode. For most stores that single pass is the whole job, and doing it before Friday beats doing it while a parcel sits at a border.

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