EU Product Identifiers for Shopify Merchants
Last updated: October 27, 2026
What's changing
Starting November 1, 2026, every item in a business-to-consumer (B2C) shipment into any of the 27 EU countries needs three product identifiers on its customs declaration, no matter the order value. These are the M-PID, NS-PID and S-PID.
After that date EU customs can reject declarations that are missing these identifiers or have incorrect ones. When that happens, carriers can hold or return the parcel and may charge fees. Shipping labels will still print without the data, so the problem usually shows up later at the EU border, after the order has already left our warehouse.
If you sell to customers in the EU, please get this data to us before November 1 for every product you ship there.
Who this affects
This applies to you if you ship direct-to-consumer orders from our warehouse to any EU country. A few things that are not covered by this change
Shipments to the UK, Switzerland or Norway, since they are not EU members
Domestic US orders
Orders to Canada, Australia and other non-EU destinations
If you don't sell into the EU today, you don't need to do anything right now. If you plan to open EU shipping later, send us this data before your first EU order goes out.
OpenBorder merchants
If your international orders ship on labels generated by OpenBorder, you're covered. OpenBorder pulls these identifiers directly from your Shopify store and sends them to the carrier, so you don't need to send us the template for those orders. Since the data comes straight from Shopify, just make sure your SKUs, barcodes and product details there are complete and up to date.
The rest of this guide applies to EU orders that ship on labels we create directly with the carrier. If you're not sure which setup you're on, reach out to your Account Manager.
The three identifiers, and where to find them in Shopify
Each identifier answers a different question, so please don't copy the same value into more than one field.
Identifier | What it is | Where to find it | If it's left blank |
|---|---|---|---|
Merchant Product ID (M-PID) | Your own product reference, usually your SKU | Shopify product variant SKU field | Your SKU is sent automatically, so most merchants are already covered |
Non-Standard Manufacturer Product ID (NS-PID) | The manufacturer's or supplier's own part number. This is not a barcode | Not a standard Shopify field. Check supplier purchase orders, commercial invoices or carton labels | Nothing is sent. Every EU-bound product needs a value here |
Standard Manufacturer Product ID (S-PID) | The product's standard barcode, a GTIN, EAN, UPC or ISBN that is 8, 12, 13 or 14 digits long | Shopify product variant Barcode field | The GTIN or UPC on the product record is used if one exists, otherwise nothing is sent |
The NS-PID is the one most merchants will need to track down, since Shopify has no built-in field for it. If you manufacture your own products or aren't sure what your supplier's part number is, reach out to your Account Manager and we'll help you figure out the right value.
Products with no barcode. If you've confirmed a product truly has no barcode, the S-PID should be Y081. This is the official EU code for "no standard identifier exists." Only use it once you've confirmed there's no barcode, because a blank field tells customs the code is unknown rather than that none exists.
Important note for Shopify stores
Where your SKU and barcode data already exists in ShipHero, the warehouse system we use to fulfill your orders, ShipHero, has prefilled the Merchant Product ID and Standard Manufacturer Product ID for you. That means most of the work is the manufacturer part number (NS-PID), which ShipHero can't fill in and which is not pulled from Shopify.
It's still worth checking your barcodes for EU-bound products, since whatever is on the product is exactly what gets sent to the carrier. A missing or outdated barcode means a missing or outdated S-PID on the customs declaration. The steps below use your Shopify export as a starting point so you don't have to retype everything.
Step by step
1. Download the template
Download the EU Product Identifier Template (CSV)
The template includes one example row (EXAMPLE-SKU-001) showing the expected format. Delete it before you send the file back, and please keep the column headers exactly as they are.
2. Export your products from Shopify
In Shopify admin, go to Products
Click Export
Choose All products and CSV for Excel, Numbers, or other spreadsheet programs
Click Export products. Shopify will email you the file
3. Fill in the template
Add one row for each product you ship to the EU. If you're not sure which ones those are, it's safest to include your full catalog.
Template column | What to enter |
|---|---|
SKU | Variant SKU from your Shopify export. Required for every row |
Warehouse | Leave blank. Our team fills this in |
Merchant Product ID | Optional. Leave blank to use your SKU |
Non-Standard Manufacturer Product ID | Your manufacturer's or supplier's part number from your supplier paperwork. Required for every row |
Standard Manufacturer Product ID | Variant Barcode from your Shopify export, or Y081 if no barcode exists |
A few things to watch for
Protect your barcodes from Excel. Excel likes to drop leading zeros and turn long barcodes into scientific notation (for example 8.5E+11). Before pasting or typing, select the Standard Manufacturer Product ID column and format it as Text, then spot check a few rows afterward
Check barcode length. Valid barcodes are 8, 12, 13 or 14 digits. Spaces and hyphens are fine since they get stripped out, but anything with the wrong number of digits will be rejected
No placeholders. Don't enter N/A, TBC, none or similar. Leave the cell blank if you don't have the value yet
Keep values simple. One value per cell, up to 70 characters, using letters, numbers and the symbols - . / _ only
Save as CSV. Keep the file in CSV format and don't add, remove or rename any columns
4. Send your sheet to us
Email the completed template to your Account Manager. Our team will upload it into ShipHero for you and let you know once it's done.
Keeping it up to date
Once your catalog is covered, a few habits will keep you from running into this again.
Add a barcode when you create a new product in Shopify whenever one exists
Keep a record of manufacturer part numbers. Many merchants store these in a Shopify product metafield or their own product sheet so the data is easy to find later
Tell us about new EU-bound products before they ship so the identifiers can be added before the first EU order goes out
Frequently asked questions
Does this apply to low-value orders? Yes. All three identifiers are required at any order value.
Do I need to change anything on my Shopify store? No changes to your storefront or checkout are required. Shopify is just the easiest place to pull your SKUs and barcodes from.
What if a product has no barcode? Use Y081 for the S-PID once you've confirmed no barcode exists. You still need a manufacturer part number for the NS-PID.
I use OpenBorder. Do I need to do anything? Not for orders shipped on OpenBorder labels, since they pull the identifiers from your Shopify store. Just keep your Shopify product data complete and accurate.
What happens if I miss the November 1 deadline? Orders will still ship, but EU-bound parcels missing identifiers can be held at customs, returned, or hit with carrier fees. We recommend getting this done as soon as possible.
Need help?
Reach out to your Account Manager with any questions, or if you'd like us to review your sheet before it's uploaded.
Sources ShipHero Help Center, How to Add EU Product Identifiers and ShipHero Changelog, Product Identifiers for Shipments Into the EU