Disclosure: I build Citebeam, the Shopify app mentioned in this post. Written with AI assistance.
From 1 November 2026, EU customs declarations for online sales of imported goods to consumers have to carry product identifiers for each item, and customs can hold parcels that lack required data. On 26 October that is 6 days away.
Whether your parcels are in scope, and the exact format, is for your carrier or customs broker to confirm. This is a readiness check, not legal advice.
What good looks like
- Unique SKUs. Every variant has its own real SKU, your own product code (M-PID).
- Valid barcodes. A GTIN, EAN, UPC or ISBN (S-PID) wherever the product has one: digits only, with a correct check digit.
- No placeholders. No N/A, none, 0 or - in the SKU or barcode field. A mistyped barcode is worse than none.
The manual way, free
- Export your products as a CSV.
- In the Variant SKU column, filter the blanks, then flag duplicates (Google Sheets, SKUs in column A:
=COUNTIF(A:A, A2)>1). Replace placeholders with real codes. - Check the barcodes. To test the check digit, drop the last digit, multiply the rest from the right alternately by 3 and 1, and add them up. The check digit brings the total to the next multiple of 10: 123456789012 totals 92, so the barcode is 1234567890128. A product with no barcode should declare "Has no standardized identifier" on the variant, not a typed placeholder.
- Set the vendor to the brand or maker. For the manufacturer's code (NS-PID), ask your supplier for the model or part number and enter it as a barcode of type NS-PID. Never invent one. If it is empty, Shopify has said it fills one in from another barcode, the SKU or the variant ID; a real supplier code is better.
- HS code and country of origin live on the variant, in the Shipping section. Your carrier or customs broker may ask for them. Origin is where the item was made, not where you ship from.
That works and is free, but it is a lot of cells to read.
The quicker way: Citebeam's EU customs IDs page
Citebeam: AI Visibility, my app, has an EU customs IDs page in its menu. Press Check my catalog. It reads your active products live, read-only, and changes nothing in your store.
You see the share of variants with a real, unique SKU, a valid barcode and, where Shopify returns it, a manufacturer code, then a What to fix table (for example no SKU, duplicate SKU, barcode that fails the check digit), each row marked Fix, Review or Good to have.
Then Download carrier handover CSV: one line per variant with handle, variant title, SKU, barcode, vendor, manufacturer code and, where Shopify returns them, HS code and country of origin. Only valid barcodes go in the barcode column, and a last column of notes says what to fix (delete it before you send the file). The file is built in your browser, and nothing from the check is stored on our servers.
Plainly: apps cannot read Shopify's "Has no standardized identifier" setting yet, so variants that declared it still show up under "No barcode". Free ($0) checks the first 250 products, Starter ($19) 2,000, Growth ($49) 5,000; paid plans have a 7-day trial.
Install Citebeam from the Shopify App Store and run the check today.
Six days: where to start
SKUs first, then barcodes, then maker codes and HS codes. Short on time? Citebeam finds the gaps and hands you the file: open the Citebeam listing and start on the Free plan.
This is a readiness check, not legal advice: confirm with your carrier or customs broker.
Top comments (0)