Integrations · WooCommerce
Expand into Europe without replatforming your store.
You built on WooCommerce because you wanted to own the stack. Going international should not be the thing that takes that away from you. Expandly connects to your existing WooCommerce install and takes on the European side behind it: stock held in region, VAT and product compliance registered and filed, orders and inventory managed centrally across every channel you sell on. Your site stays your site, and your plugin list stops growing every time you add a market.
Where we stand with WooCommerce
A long-supported connection, not an afterthought
WooCommerce has been one of our core supported carts for years, alongside Shopify, Magento, BigCommerce, PrestaShop and others. Self-hosted stores are what our connection method was built for.
Your install, your rules
No migration, no forced hosting move, no theme rebuild, and nothing that takes admin control away from you or your developer. We connect to the store you already run.
Built for the awkward setups
Heavily customised installs, unusual product structures, a bespoke checkout, a separate store per market. Open-source stores rarely look like the documentation, and the connection is designed for that.
The real question
"Do we have to move to Shopify to sell in Europe?"
No. That question comes up because expanding a self-hosted store usually gets described as a development project, and on the face of it that is what it looks like. Multi-currency. A translation layer. European tax rules in the tax settings. Shipping rules per country. A payment gateway that offers iDEAL in the Netherlands and invoice payment in Germany. Each one is a plugin, a configuration, a compatibility question and a thing that can break at the next update.
The reason that framing is wrong is that almost none of it is really a website problem. Your VAT registration is not a plugin. Your packaging registration is not a plugin. Stock sitting in a European warehouse so a German customer gets a two-day delivery is definitively not a plugin. The website work is the visible tip of a job that is mostly tax, logistics and product compliance, and adding it all to your WordPress install puts your European operation inside the thing you least want to destabilise.
So the choice is not WooCommerce or Shopify. It is whether your European operation lives on your site or behind it. Everything below is about the second option.
The division of labour
What stays on WordPress, and what moves off it
This is the practical shape of the arrangement. The line is drawn at the point where a job stops being about presenting your brand and starts being about operating in a market.
Stays on your site
Everything your customer sees
Your theme, your design and your brand
Your checkout and your payment gateways
Content, blog, SEO and your URL structure
Customer accounts and your email flows
Whatever custom work makes your store yours
We do not take over the storefront, and nothing here changes when you connect.
Moves behind it
Everything about operating in a market
Product and listing management across every channel
Stock levels, locations, bundles and replenishment
Order routing, picking, packing and dispatch
VAT registration and ongoing filing per market
Producer responsibility, labels and Responsible Person
Returns, reworks and in-region customer logistics
Accounting posting and cross-market reporting
None of this needs to be a plugin, and none of it breaks when WordPress updates.
Making the connection
Three steps, and your developer will recognise all of them
WooCommerce connects by a bridge file rather than an app authorisation, which is the trade-off that comes with self-hosting. It is a one-off install, and we do it with you.
Step one
Install the bridge file
You download a bridge file that is unique to your account and place it on your web server alongside your main index file, normally in the public web root. Either give us FTP credentials and we do it, or your developer uploads it in a couple of minutes.
Step two
Verify and connect
The install is confirmed by loading the bridge URL on your own domain, so you can see for yourself that it is live before anything is connected. Then the store links to Expandly and we set your merge preference, so products match correctly across your channels.
Step three
Map statuses and pull categories
Your WooCommerce order statuses are mapped to ours one for one, and your store categories are synced in so products can be assigned to the structure you already use. Names do not have to match, and the mapping can be changed later.
For whoever maintains your site
The short technical answer
The bridge file goes in the same directory as your WooCommerce index.php, typically public_html. It is account-specific, so it cannot be copied between sites, and a file in the wrong directory is the usual reason a connection fails. Verification is a single GET on your own domain. There is no plugin to install, no database migration and no change to your theme or checkout.
One configuration detail worth setting correctly at the start: currency decimal places in WooCommerce need to be set to two, otherwise tax values round inconsistently when orders post to your accounts. We check it at onboarding rather than finding it in a reconciliation three months later.
How the sync works
Precisely what moves, so nobody is surprised later
Worth being exact about, because “everything syncs everywhere” is a claim that falls apart the first time somebody edits a product in the wrong place.
01
Stock propagates, sales do not
An order on any connected channel comes into Expandly, which adjusts your stock centrally and pushes the corrected figure out to every other channel. Ten in stock, one sells on your Woo store, every other channel now shows nine. The order itself stays where it was placed. This is what stops overselling.
02
Expandly is the listing master
You import your catalogue once. After that, product and listing changes are made in Expandly and pushed out to WooCommerce and to every marketplace you sell on. One edit, every channel, and one place your team knows to go.
03
The warehouse feeds in too
Stock movements from fulfilment reach the same central figure, so a goods-in, a return to stock or a stock take corrects your channels the same way a sale does. Your live quantities reflect what is actually in the building.
Selling direct in Europe
Eight requirements, and where each one lands on a self-hosted store
A European storefront has to satisfy things a US one does not. On a hosted platform some of these arrive built in. On WooCommerce every one of them lands somewhere specific in your stack, so the useful question is not what the requirements are, it is which of them are yours and which are ours.
Requirement
Where it lands on your store
Whose job
Local payment methods
Your gateway and checkout configuration. iDEAL in the Netherlands, PayPal and invoice payment in Germany, Bancontact in Belgium, BLIK in Poland. Invoice payment means the customer has the goods before you have the money, and in Germany that is a quarter of the market.
We tell you what each market needs and why it converts.
Local currency pricing
Currency handling in WooCommerce, plus a pricing decision. Poland and Sweden are in the EU and outside the euro, so those are real currencies rather than a display conversion.
We advise on the markets and the margin effect.
Storefront language
Your translation layer for pages, navigation and policies. Separate from your product content.
Site content is yours. Your product catalogue is translated by us and published out.
Discount display
How you configure promotions and sale prices. EU price indication rules measure a promotional price against the lowest price you charged in the previous 30 days, while a standard sale-price field anchors against a list price instead.
A promotions calendar rather than a plugin. We flag the mechanism, you set the calendar.
Product and trader information
Your product template. European product safety rules require certain trader and product details to appear with the listing rather than on a policy page.
Label review and the compliance content. Where it renders is a template question for your developer.
German accessibility
Your theme and your checkout. Since 28 June 2025 the BFSG has required online shops serving German consumers to meet EN 301 549 and WCAG 2.1 Level AA, with an accessibility statement in German. The micro-enterprise exemption stops at fewer than 10 staff and turnover of at most €2m.
We scope it with you and your developer so it is planned rather than discovered.
Returns
Your policy page carries the statutory 14 day right to withdraw. The harder half is the physical operation behind it, and German shoppers expect returns to be free on top of the legal right.
Returns come to a European address, assessed on arrival, restocked or reworked in region.
Delivery promise
Your shipping configuration, and whether the date it displays is true. A customs charge collected on the doorstep is worse than a high shipping price at checkout, because it arrives after the decision.
Stock held in region removes the customs event and makes next-day and two-day credible.
Five of these eight are settled by where your stock sits and who holds your registrations, which is the part we take on. The three that stay with your stack are configuration and design work, and they are considerably easier to scope when nobody is also trying to run a European tax operation out of the same WordPress install. Bring your developer to the review call and we will go through the split line by line.
What we handle
The European operation, run for you
The same work whether you enter one market or five. What changes is the volume, and none of it lands on your site.
Tax and product obligations, registered and filed
VAT registration in every market you sell or hold stock in, then ongoing filing. Producer responsibility registrations, label review before anything prints at volume, and Responsible Person appointment for the EU and separately for the UK.
Stock in region, orders shipping locally
Your inventory sits at our Netherlands warehouse for EU demand and our UK warehouses for UK demand, keeping the two customs regimes cleanly apart. Orders from your store are picked, packed and dispatched locally, and returns come back to a local address.
Catalogue translated and published
Titles, descriptions and bullet points translated for German and Dutch shoppers, then published to your store and your marketplaces from one catalogue. No second content system, and no translation plugin to maintain.
One set of numbers across everything
Your Woo store, your marketplaces and your trade orders reported side by side, with cost price in the report so you are reading contribution rather than revenue. Alerts on filing deadlines and stock events before they bite.
Inside the platform
Work your team stops doing in the WordPress admin
Orders
Rules that route on arrival
Conditions on channel, country, order value, weight or product, acted on as orders come in: sent to the right warehouse, added to the right pick list, labelled with the right carrier, and the status pushed back to your store so your customer gets the notification your site normally sends.
Inventory
Locations, bundles and ghost stock
Stock split across warehouses with a defined deduction order, bundles that recalculate from component stock, and per-channel display quantities where you want to hold real stock behind a lower published figure.
Finance
Into Xero on your own mapping
Orders, returns as credit notes and purchase orders post across split by currency, payment method and channel. CSV export covers other packages, and the WooCommerce decimal setting is handled so tax reconciles.
Automation
Scheduled file transfers where you need them
Order exports, stock imports and report exports over FTP or SFTP on an hourly to monthly schedule, for the third parties and internal systems that still want a file rather than an API.
Also connected
If your stack is not only WooCommerce
Plenty of brands run more than one storefront, or inherit one in an acquisition. These connect to the same catalogue, the same stock pool and the same order queue.
Marketplaces sit alongside them: Amazon across the UK and Europe, bol.com, eBay, TikTok Shop and others, all drawing on the same inventory. A brand running a Woo store in the US and a marketplace presence in Europe is a common shape, and it works from one system.
Global Expansion Pathway™
Platform first, and this is the platform
Channel strategy sits in the Omni-Channel stage of the Global Expansion Pathway™, delivered as the E-commerce Expansion Multiplier™, and the sequence inside that stage is platform first, marketplaces layered deliberately, social activated strategically. Your own store is the platform layer, which makes it the foundation the rest gets built on rather than the last thing you get to. The reason it comes first is that the catalogue, the stock position and the compliance file you build for it are the same ones every marketplace afterwards will draw on. Get the platform layer connected properly and each channel you add costs less than the one before it.
The bigger picture
Own your stack. Just don't run Europe inside it.
Self-hosting gives you control that a hosted platform will not, and for a brand with an unusual catalogue or a bespoke checkout that control is worth real money. The cost of it is that everything you add becomes yours to maintain. A tax plugin, a currency plugin, a translation layer and four shipping configurations are a build once and a maintenance surface forever. Each carries its own update cycle and its own compatibility risk. Put a European operation on top of that and a WordPress release becomes a commercial event.
• No migration, no hosting change and no theme rebuild to start selling in Europe
• VAT and producer responsibility registrations held and filed off your site entirely
• Stock in region, so delivery promises and returns are credible rather than optimistic
• One catalogue behind your store and every marketplace, edited in one place
• Your plugin list stays the same size as you add markets
• A WordPress update stops being something your finance team worries about
We have taken more than 2,000 brands into new markets, on hosted platforms and self-hosted ones both. The store is rarely what makes an expansion hard. What makes it hard is everything the store depends on.
What you install
One account-specific bridge file in your web root, verified by loading a URL on your own domain. No plugin, no database migration, no theme change.
One file
Then the connection is live
Base markets
The UK, Netherlands and Germany are included from the start, with further markets added as you want them.
3 markets
Included, not bolted on
Track record
Brands taken into new international markets by Expandly, across hosted and self-hosted storefronts.
2,000+
Brands expanded
Questions
What WooCommerce merchants ask
Do you need admin access to my WordPress site?
No. The connection needs a bridge file placed on your server, which you or your developer can do yourselves, and FTP access only if you would rather we did it. There is no WordPress plugin and no ongoing admin login required to keep the connection running.
Will this slow my site down or conflict with my plugins?
The operational work runs outside WordPress rather than inside it, which is the point of the arrangement. There is no plugin added to your stack, so there is nothing new in your update cycle and nothing new competing for resource on your host.
My store is heavily customised. Is that a problem?
It is a conversation rather than a problem. Unusual product structures, custom fields and a bespoke checkout are normal on self-hosted stores, and how your catalogue is organised affects how products match across channels. Show us the store on the review call and we will tell you what it means in practice.
Should I run one store or a separate one per market?
Both patterns work and the answer depends on your pricing strategy, how different your European range is and who maintains the site. It is worth deciding early, because it affects your catalogue structure and your tax reporting rather than just your domains.
Can returns from my store come back automatically?
Return handling varies by cart and by configuration, so it is one of the things we confirm for your specific setup during onboarding rather than promising in the abstract. What is constant is that your European returns come back to a European address and get assessed, restocked or reworked in region.
How long does the whole thing take?
The connection itself is quick. The timeline is set by the compliance work underneath it: Netherlands VAT runs three to four weeks, the UK around eleven, Germany 16 to 20 weeks after a complete submission. Catalogue, translation and listing work run in parallel while those are in flight.
Find out what your store needs to trade in Europe
Thirty minutes on your setup, your markets and your categories. Bring your developer if you want the technical detail covered properly, and you will leave knowing what connects, what has to be registered, and how long each piece takes.
This page is general guidance and not advice on your brand’s specific position. Connection detail reflects our current WooCommerce integration and may vary with your hosting, your WooCommerce version and your existing customisations. Tax, product and producer responsibility rules differ by market and change, so talk to our compliance team about how they apply to your products and markets before you make a filing, a registration or a launch decision.