Mikata PID – EU Customs Check

Help

What this app does not do

Mikata PID checks and fills the three product identifiers (M-PID, NS-PID, S-PID) in your Shopify product data. It does not assign HS codes, calculate duties or VAT, create or lodge customs declarations, or talk to any customs authority or carrier on your behalf. It cannot tell you whether a specific parcel will clear customs, and it does not guarantee clearance: carriers and customs authorities apply their own checks. The manufacturer codes themselves must come from your manufacturer or supplier; the app shows you where they are missing and helps you enter them, but it cannot look them up or invent them. You remain responsible for the correctness of the codes in your store.

1. The three identifiers (EU definitions in one line each)

From 1 November 2026, EU customs requires these three product identifiers on B2C import declarations (voluntary since 1 July 2026; enforcement starts 1 November 2026):

These identifiers are required on the customs declaration for distance sales of goods with an intrinsic value of up to EUR 150 per consignment, in practice B2C e-commerce parcels; B2B shipments are in principle outside the scope (Commission guidance of 5 October 2026, section 8).

How strictly declarations are checked in the first months is up to each member state's customs authority. For example, Dutch Customs has said it will first monitor how declarants fill in the identifiers and discuss improvements with them, and expects full compliance from early 2027; German customs has said a transitional arrangement is being examined (both read on 1 November 2026). The obligation itself applies from 1 November 2026 under Commission Delegated Regulation (EU) 2026/1022, and label systems may already refuse parcels that lack the identifiers regardless of how customs enforces: Shopify Shipping does so from 1 November 2026 (see section 2).

The identifiers describe goods that physically cross the EU border. A variant that is not shipped — a digital product, a service, a gift card sent by e-mail — is never declared, so the App does not check it (see "Not shipped" below). The App reads Shopify's "This is a physical product" setting (requires shipping) on each variant to tell the two apart.

2. How the App maps them to Shopify fields

Identifier Shopify field the App reads and writes
M-PID the variant's SKU
NS-PID a barcode of type NS_PID (new in Shopify's 2026-10 API)
S-PID a barcode of type GTIN, EAN, UPC or ISBN
"No S-PID exists" an App-reserved metafield ($app:pid.spid_status = none), so that "not entered yet" and "confirmed none" are kept apart
Carrier-guide metafields custom.ns_manufacturer_pid, custom.std_manufacturer_pid and custom.std_manufacturer_pid_type (the convention some carriers' setup guides ask for) are read as a second source and shown as "carrier field only". The App never writes them.

Barcodes without a type (shown as Custom in Shopify) are not treated as an S-PID. If one looks like a valid GTIN or ISBN, the App suggests giving it a type. The barcode of type NS_PID and the typed GTIN/EAN/UPC/ISBN barcode are the fields that carriers and apps read from Shopify, so the App always writes there (check your carrier's own guide for what it reads).

Shopify's own handling (Shopify Shipping and Managed Markets labels). Since 24 October 2026 Shopify adds the three identifiers to customs documents itself when you buy labels in the Shopify admin (Shopify Help Center: "Adding product identifiers for shipments to the European Union"). There, M-PID is the variant's ID (nothing to enter), S-PID is the typed barcode (a Custom barcode that is a valid GTIN is also accepted), and NS-PID is the barcode of type NS-PID, falling back to the standardized barcode, any other barcode, the SKU and finally the variant's ID. Shopify's "Has no standardized identifier" declaration lives in the product's Shipping section (More details), and it is that declaration, not the App's "confirmed none" metafield, that Shopify's labels read; if you buy labels in Shopify, turn it on there as well. The App follows the EU guidance rather than Shopify's full fallback: a valid S-PID may stand in for a missing NS-PID (shown as Review, with "Use S-PID as NS-PID" to write it into the barcode), but a SKU or a variant ID is not a manufacturer code, so a variant with neither an NS-PID nor a valid S-PID is Needs fix. The App always asks for an explicit SKU and writes the codes into Shopify's barcode fields, so that carriers, apps and fulfilment partners outside Shopify Shipping, which read those fields directly, receive them too.

3. The Check screen

Click "Run check". The App reads every variant in your store (nothing is changed) and shows four tiles — Checked, OK, Needs fix, Review — and a table with the columns Product, SKU (M-PID), NS-PID, S-PID, Status and Findings. Click a tile or a filter button (Checked / Needs fix / Review / OK / Not shipped) to filter, and use the search box to find a product, variant or SKU. Checked = OK + Needs fix + Review; variants that are not shipped are counted separately.

Status:

Findings and what they mean:

4. The Fix screen (Pro)

Run the check first; the Fix screen works on its result and lists only the rows that need attention. Nothing is written until you preview and apply.

5. The Export screen (Pro)

Choose a format, then click "Download CSV". Rows that still need fixing are left out unless you tick "Include rows that still need fixing"; variants that are not shipped are always left out of the Carrier and Shipmondo formats (a carrier has nothing to declare for them). The file is UTF-8 with a byte-order mark so Excel opens it correctly.

6. FAQ

Q: Why does the App not calculate duties or HS codes? A: Because that is a different job with different data. Duties depend on the HS code, origin and value of each product; this App only checks the three identifiers that customs uses to recognise the product. Keeping it to one job keeps it reliable. Apps that specialise in HS codes exist in the Shopify App Store.

Q: Where is my data stored? A: In your Shopify store only. The App runs in your browser inside the Shopify admin and talks to Shopify directly. Our server only delivers the App's files, confirms that the page was opened by a signed-in user of your store (the sign-in token Shopify attaches is checked and discarded), and answers Shopify's compliance webhooks; it never receives your product data. See the Privacy Policy.

Q: Where do I get the manufacturer codes (NS-PID)? A: From your manufacturer or supplier: ask for their product list with their own item codes (model number, article number). If you make the products yourself, you are the manufacturer and can assign your own codes; the EU guidance sets no required format. If a GTIN exists, you may use it as the NS-PID too.

Q: My store has thousands of variants. How long does a check take? A: The App reads in batches within Shopify's API limits and shows progress. Roughly a minute per thousand variants on a standard plan; you can cancel and run again later. A check never changes anything.

Q: Does the App guarantee my parcels will clear EU customs? A: No. The App helps you get the identifiers complete and well-formed. Carriers and customs authorities apply their own checks, and other requirements (HS code, value, product safety rules) are outside this App.

Support

Email dun.der.head11@gmail.com. See also the Terms of Use and the Privacy Policy.