EU Customs Changes on 1 November 2026: The 4-Week Checklist for Shopify Merchants

EU Customs Changes on 1 November 2026: The 4-Week Checklist for Shopify Merchants

One-line definition: on 1 November 2026, the EU adds a €2 customs handling fee to every item in a B2C parcel imported from outside the EU, whatever its value, and makes three product identifiers (your SKU, a manufacturer code and, where one exists, a barcode such as a GTIN or EAN) mandatory on those customs declarations.

If you sell into the EU from outside it, the "it's under €150, we're fine" way of thinking is finished. The duty-free threshold already went on 1 July. What changes now is that the fees stack up per item, and parcels with incomplete product data can be held or rejected at the border. That's less than four weeks away, so this post is built around one week at a time.

Who this actually affects

This is easy to get wrong, so start here. The new rules apply to distance sales of goods imported into the EU: a consumer in the EU buys from you, and the parcel crosses the EU's external border on its way to them.

You're affected if:

  • You ship from Norway to EU customers. Norway is outside the EU customs union, so a Norwegian Shopify store selling to Finland, Sweden, Denmark or the Baltics is exactly who these rules are written for. (See our shipping from Norway guide for the wider picture.)
  • You ship from the UK, Switzerland or anywhere else outside the EU to EU consumers.
  • You dropship from suppliers outside the EU straight to EU customers. The parcel is an import even if your store is Finnish.
  • You use a warehouse or 3PL outside the EU for some of your stock.

You're not affected for orders that stay inside the EU. A Finnish store shipping from Tampere to Stockholm or Riga files no customs declaration, so there's no handling fee and no product identifier requirement on that parcel. Shipping the other way, from the EU into Norway, follows Norwegian rules (VOEC), not these.

B2B imports to VAT-registered businesses are also outside the product identifier rules.

The full fee stack, with dates

Here's how the charges on an imported B2C parcel have built up over 2026:

Date Change Amount Charged per
1 July 2026 €150 duty exemption removed n/a n/a
1 July 2026 Temporary flat customs duty on goods up to €150 (IOSS shipments), until 1 July 2028 €3 Item
1 November 2026 EU customs handling fee, any value €2 Item
Already live in some countries National small-parcel fees (Romania, France, Italy) Around €2 to €5 Varies by country

An "item" here isn't a single unit. It's a group of goods in the parcel that share the same tariff classification, description and origin. Five identical T-shirts are one item. A T-shirt and a mug are two.

So a low-value parcel with a T-shirt and a mug, sold through IOSS, now carries €6 in duty plus €4 in handling fees before VAT, and possibly a national fee on top. A €40 order can pick up €10 of charges. Above €150 the €3 flat duty doesn't apply (normal duty rates do), but the €2 handling fee still does.

Two notes on status. The handling fee is set by a Commission delegated act under the new Union Customs Code, Regulation (EU) 2026/2108, which entered into force on 20 September 2026. It's scheduled to apply from 1 November unless the Parliament or Council objects, which nobody expects. The national fees are messier: the amounts and whether they apply per parcel or per item have shifted during the year, so check the current rules for the countries you sell to most.

Why this is really a product data problem

The fees get the headlines. The product identifiers are what will actually hold parcels up.

From 1 November, every line on a B2C import declaration needs three identifiers:

  1. Merchant product identifier (M-PID): your own product code. For most Shopify stores, that's the SKU.
  2. Non-standardised manufacturer product identifier (NS-PID): the manufacturer's own part or model number. If you make the product yourself, you assign one.
  3. Standardised manufacturer product identifier (S-PID): a barcode such as a GTIN, EAN, UPC or ISBN. This one is only required where it exists, but if the product has one, it has to be declared.

These were voluntary from July. From November they're mandatory, and customs can hold or reject declarations that are missing them.

Here's the part that matters for Shopify merchants: this data has to start in your catalogue. Your carrier or customs broker can't invent a manufacturer part number. If the field is empty in Shopify, it'll be empty on the declaration. The stores that get through Q4 cleanly won't be the ones that absorb the fees best. They'll be the ones whose product data is clean enough to clear without anyone touching it.

The 4-week checklist

Week 1 (5-11 October): find out how exposed you are

  • Pull your last 90 days of orders and count how many shipped into the EU from outside it (from Norway, the UK, a non-EU supplier or warehouse). If the answer is zero, you can stop here.
  • Export your products and check the SKU and Barcode (ISBN, UPC, GTIN, etc.) fields on every variant. In Shopify, both sit in the inventory section of each variant. Sort by empty fields first.
  • Make a list of products with no barcode at all, and find out whether that's because one doesn't exist or because nobody entered it.

Week 2 (12-18 October): fill the gaps

  • Add the missing SKUs and barcodes. Ask suppliers for GTINs where they exist.
  • Decide where the manufacturer part number lives. Shopify has no built-in field for it, so most stores add a product or variant metafield.
  • Check the HS code and country/region of origin on every product you ship into the EU. Both are in the customs information section of the product's shipping settings. A wrong tariff code splits items differently and changes how many €3 and €2 charges you pay. Origin matters too: rules of origin decide whether preferential rates apply.
  • Replace vague customs descriptions. "Accessories" or "gift" won't get through. "Women's cotton T-shirt" will.

Week 3 (19-25 October): decide who pays, and say so at checkout

  • Choose between DDP and DDU for your EU orders (more on this below).
  • Update your prices or shipping rates if you're absorbing the new charges.
  • Ask your carrier or customs broker how they receive the product identifiers. Does the data come from your label integration, a commercial invoice, an upload? Find out now, not on 2 November.

Week 4 (26 October - 1 November): test and brief

  • Ship a few real test orders into the EU and check that the SKU, barcode and HS code all reach the customs declaration.
  • Update your shipping policy and FAQ so customers know what's included in the price.
  • Brief customer service on the new fees, so the first "why did I pay extra?" email gets a clear answer.

DDP or DDU: the checkout decision

DDP (delivered duty paid) means you collect duties and fees at checkout, or absorb them, and the customer pays nothing at the door. DDU (delivered duty unpaid) means the carrier collects from the customer on delivery, usually with its own clearance charge added.

For parcels up to €150, you're probably already on DDP in practice if you use IOSS: VAT is collected at checkout and the duty is owed by the declarant, not the shopper. The question is whether your prices now cover the extra €3 and €2 per item, or whether that's quietly coming out of your margin.

For parcels above €150, DDU is still common. It's also how you end up with refused deliveries and return shipping you pay for. A simple rule: if your average EU order is low-value and your customers are consumers, go DDP and build the fees into your prices. If you stay on DDU, say it clearly at checkout, in plain words, before the customer pays. The rest of the duties, taxes and VAT breakdown applies as before.

Clean data in, clean customs out

None of this is hard on its own. The risk is that the data lives in three places (Shopify, a supplier spreadsheet, a carrier portal) and nobody checks that it all ends up on the declaration. The simplest fix is to keep product data in Shopify and let your shipping tool build the customs paperwork from it. Packrooster Shipping generates customs documents and electronic customs data from the product information stored in your store when you create the label, so once the catalogue is right, every parcel picks it up automatically.

Do the catalogue work this month. On 1 November, merchants with clean data won't notice much. Everyone else will be fielding calls about held parcels in the busiest shipping weeks of the year.

Packrooster logo icon

Packrooster Shipping

Advanced shipping rates, carrier integrations
and order processing for your Shopify store

Read more →

Printrooster logo icon

Printrooster Order Printing

Pre-filter your Shopify orders for printing,
customize order and picking list templates and much more

Read more →