International & Customs

Do I need an EU warehouse to sell on Shopify in Europe, or can I keep shipping from the US with IOSS?

When you can keep shipping to the EU from the US under IOSS, and when you need EU stock.

Last updated September 16, 2026

You do not need an EU warehouse to take a euro checkout. You need one the moment stock sits inside the Union, or the moment a customer return has nowhere to land. IOSS and an EU 3PL are different systems decisions. Do not treat warehouse location as a shipping-method toggle. This is operating mechanics, not tax advice.

IOSS for shipments from outside the EU

IOSS is for goods at or under €150 shipped from outside the EU. Checkout collects VAT. The carrier declaration has to carry the IOSS number so the parcel is not taxed again at the border. Over €150, or any shipment that is not leaving a non-EU node, is a different VAT path (formal entry, not IOSS). Get the IOSS registration, an EORI, HS and origin on the product, and a storefront DDP disclaimer in place before you collect. DDP is still three jobs: checkout collects, customs declares a value that matches what the customer paid, the carrier knows who pays. Those three do not travel together. Do not invent a rate.

EU stock means Union OSS

Stock inside the EU is local VAT. Union OSS is the filing scheme for that stock, not a second IOSS. The tax trigger is where the goods sit when they ship, not the language on the product page. Shopify will not let one shop combine Union OSS and IOSS when you have both EU and non-EU fulfillment locations. If you open an EU node and keep shipping some orders from the US, you have to split that tax setup. One shop cannot wear both hats. Shopify will push the shop toward OSS and can mishandle the US-shipped IOSS parcels. Operators who need both paths usually split shops or take the tax engine off Shopify.

US node or an EU 3PL

Keep the US node and ship DDP while one carrier stack, one IOSS number, and one US returns address still work. Stand up an EU 3PL when you need EU carriers, in-Union delivery times, a marketplace that will not replenish from the US, or a returns address customers will actually use. The moment the node exists you need an EU warehouse record, a filing country (an EU HS is tied to a country, not "the EU"), and a receiving location that can put a return back on the books. A Shopify refund with no receipt in the Union is invisible inventory. After Brexit, UK and EU stock are two divisions even at the same 3PL: different packing slips, different returns addresses. Set the owning entity's base currency before the first EU receipt. Rate updates do not revalue stock already received.

Run this with AI

Connect Claude or ChatGPT to your Fulfil data with the Fulfil MCP, then run this prompt on your own numbers.

You are the ops lead for a US Shopify Plus brand selling into the EU.
Here is: sku, hs_us, hs_eu, filing_country, origin, fob_usd, ship_from (US / EU / both), order_value_eur, ioss (yes/no), union_oss (yes/no), eori, warehouse, return_address, last_90d_eu_orders, last_90d_eu_returns.
[paste]

Produce:
1. Per order path: IOSS from the US (goods at or under €150, shipped from outside the EU) vs local VAT / Union OSS (stock inside the EU).
2. Whether the shop is trying to combine Union OSS and IOSS with both EU and non-EU fulfillment locations (Shopify will not).
3. Missing first-class data (HS-EU + filing country, IOSS/EORI, DDP disclaimer, returns node).
4. Keep US node + DDP vs open an EU 3PL, with a one-line why.
This is not tax advice. Flag marketplace replenishment that cannot land from the US.

See it run on
your data.

Fulfil runs inventory, fulfillment, purchasing, and accounting for scaling DTC brands in one system.