One Odoo, the whole operation
Three brands. Two legal entities in two countries. Two storefront platforms. Seven ways to get paid, eight currencies, ten‑plus carriers — and customers across the whole of Europe. All of it runs inside a single Odoo. Here is exactly how we built it — problem by problem.
Acelero
June 2, 2026 · 11 min read
A growing e‑commerce group usually ends up with a familiar mess: the storefront on one platform, the books on another, payments scattered across a handful of providers, and customer chats in yet another inbox. Every hand‑off between those tools is where numbers drift, orders slip, and someone ends up reconciling by hand.
For one pan‑European e‑mobility retailer we run day to day, we put the entire operation inside a single Odoo. Below is the real setup — and the hard problems we solved to get there.
The setup we run
- 2 legal entities, two jurisdictions — a Spanish company and a Latvian one
- 3 brands, each with its own identity, documents and tone
- 3 storefronts — one on PrestaShop, two native Odoo
- 7+ ways to pay — Stripe, Klarna, PayPal, Revolut, bank transfer
- 8 currencies — EUR, USD, NOK, DKK, SEK, CHF, GBP…
- 10+ carriers across two countries — FedEx, DPD, SEUR, DHL, UPS…
Most groups this complex run five or more disconnected systems and reconcile them by hand. This one runs on a single Odoo — configured with intent, plus a handful of focused custom modules that pick up exactly where stock Odoo stops. Below: what each part of the business needed, where stock Odoo fell short, and what we built.
Act 1 — The backboneThree brands, two entities, one system
The group isn't one company — it's a Spanish retail entity and a Latvian distribution entity, running three distinct brands between them. Most setups handle that with a separate accounting system per company — and a separate month‑end headache to match.
Every brand must reach the customer with its own identity — branded emails, invoices and documents — issued by the correct legal entity, with the right taxes and bank details.
Odoo's multi‑company is real, but routing three brands across two entities so the customer‑facing branding, the legal issuer, the tax rules and the bank account always line up — automatically, on every order — is not something you get by ticking a box.
- A brand layer: every order is attributed to the right company and brand
- The customer gets correctly branded comms, documents and invoices — from the right entity
- Each company keeps its own books, tax rules, fiscal positions and bank journals
- One shared product catalog, inventory and contact list; one consolidated report set

Multi‑company, multi‑currency — down to the cent
The books are in euros, but the group sells in Norwegian kroner, US dollars, pounds, Danish and Swedish kronor, Swiss francs and more.
Generic currency conversion drifts on tax rounding: a tax‑included price on the storefront ends up a few cents off the posted invoice total, on every line.
Each transaction is recorded in its original currency and converted on the company's books at the right rate — with rounding tuned so the storefront total and the invoice total match exactly.

Act 2 — StorefrontsPrestaShop + Odoo: three shopfronts, one ledger
History left the group with a long‑running PrestaShop shop — years of catalog and search‑ranking equity — alongside two newer Odoo‑native websites. Instead of a risky big‑bang migration, we run all three and feed them into the same books.
Keep the PrestaShop shop that already ranks and sells, add the Odoo storefronts, and have every order — wherever it came from — land in one set of books, correctly.
PrestaShop and Odoo don't talk to each other. There's no native two‑way sync, and the fiddly parts — tax‑included prices, the right fiscal position per country, carrying the original order reference — all have to be handled.
- A real‑time, two‑way connector: every PrestaShop order syncs into Odoo; status and tracking sync back
- Converts tax‑included storefront prices to the correct ex‑tax line price
- Picks the right fiscal position from the customer's shipping country
- Carries the original order reference so support finds any order in seconds

Act 3 — Money inPayments that reconcile themselves
This is where most finance teams bleed hours every week: matching what landed in the bank against what was actually invoiced. The group takes money through seven‑plus methods — Stripe, Klarna, PayPal, Revolut, bank transfer — into four different bank accounts across two countries.
Match every euro that hits the bank to the exact invoice it paid — and book each provider's commission correctly — without an accountant doing it by hand.
Each provider collects payments, holds them, deducts its fee, then pays out one combined transfer covering dozens of orders at once. Odoo sees a single lump sum in the bank — it can't unbundle it back to the individual invoices, and it can't isolate the fee.
- An engine that pulls each provider's payouts and the bank feed via API
- Splits a single payout back across its individual invoices automatically
- Books the PSP commission to its own account, separately
- Clean cases — the overwhelming majority — reconcile themselves
- Only genuine ambiguities escalate as a one‑tap question in Telegram

Act 4 — Money outReal costs, and bills that book themselves
Landed cost on a multi‑currency import — three currencies, three rates
Know the real landed cost of an imported container, to the cent — so margin is actually correct.
One purchase is paid in legs, at different rates: you pay the factory in USD at one rate, then the freight forwarder in USD at another rate, then customs duties and overhead in EUR at the border. Stock Odoo can't fold multi‑leg, multi‑rate, multi‑currency costs into a single landed cost.
Each leg is booked at its own real exchange rate; customs, duty and overhead are added in EUR; everything rolls into the product's landed cost — so cost price and margin are finally right.
Vendor bills, captured and reconciled automatically
Turn any incoming supplier invoice into a posted, reconciled vendor bill — with zero manual typing.
Vendor bills are entered by hand, coded to an account by hand, and reconciled against the bank by hand. A single combined bank payment covering several bills has to be split manually.
- Drop an invoice into a Telegram bot, Google Drive, or Odoo Documents
- The bot creates the vendor bill on the right account and attaches the original PDF
- It reconciles the bill against the correct bank line automatically
- One combined payment is split into the right bills, each with the correct per‑line VAT

Once the setup is right, the books keep themselves: clean payments reconcile, captured invoices post and match, and your team is left with only the handful of cases that genuinely need a human.
Act 5 — ConversationsAn assistant that sells, an inbox that never forgets
An AI sales assistant for the storefront that actually sells
An assistant on the storefront that does more than answer FAQs — one that qualifies a buyer and sells the right product.
Generic chatbots don't know your live catalog, your stock, your prices — and certainly not your cost or margin. So they can't recommend, price, or discount without guessing.
- A Claude‑powered assistant that knows both the technical specs and the real‑world fit — which model suits which rider, which has wider tyres, which folds smaller
- Knows sale price, cost and margin — so it can offer a discount within the allowed margin, via promo code
- Recommends a real, in‑stock product at the right price; checks delivery to the customer's city
- Captures the contact, creates CRM leads and technical tickets, and pulls a human operator into the chat when needed

WhatsApp + Telegram in one Odoo inbox, forever
See and search every customer conversation, across channels, for all time — and be able to reopen old chats.
Stock WhatsApp + Discuss won't show chats older than a week, can't reopen a WhatsApp conversation after 24 hours, and offers no real search across history.
- One inbox merging WhatsApp and Telegram — full history, for all time
- Search by name, message text or phone number
- Reopen WhatsApp chats older than 24 hours using approved templates
- Contacts auto‑resolved to the customer record; spam folder; out‑of‑hours auto‑reply

Act 6 — The edgeCompetitor prices, watched and acted on
Know what every competitor charges — per product variation — and react before it costs a sale.
Odoo has no competitor price monitoring at all — and naive scrapers fire on noise: a parsing glitch, the wrong variation, or a price that's already stale.
- A monitor that tracks competitors down to the individual variation and its price
- Multi‑stage correctness checks, so you never react to a bad capture
- Adjust your own price right in the interface — or let it move automatically, within your rules

Should an SMB run everything on one Odoo?
None of this is a one‑off bespoke build only a large enterprise can afford. It's standard Odoo, set up properly, with a handful of focused custom modules that fill the gaps the off‑the‑shelf product leaves. The result for a growing business:
- One system instead of five — storefronts, books, payments and support in one place
- Correct branding, documents and taxes per brand and per legal entity
- Books that reconcile themselves; correct costs and margins even on multi‑currency imports
- A storefront assistant that sells while you sleep, and a support desk that never drops a message
If your shop, your accounting, your payments and your customer chats live in separate tools that don't talk to each other — that's exactly the gap we close. We're an Odoo partner; this is the kind of build we do.
Need help with this?
We build production Odoo and AI automation for EU businesses. Let's talk about your project.