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.

A

Acelero

June 2, 2026 · 11 min read

Odoo implementation — a real case study by acelero.ai

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.

The need

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.

Out of the box

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.

What we built
  • 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
Companies list in one Odoo: two legal entities with brands as branches
Two legal entities — with the brands they carry sitting as branches — in one database. Company‑level separation, no separate system per company.
Why it mattersYou get the legal cleanliness of separate entities and the operational simplicity of running one system.

Multi‑company, multi‑currency — down to the cent

The need

The books are in euros, but the group sells in Norwegian kroner, US dollars, pounds, Danish and Swedish kronor, Swiss francs and more.

Out of the box

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.

What we built

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.

A bank journal in Odoo fed by multiple payment providers
One bank journal per account, fed by every rail — Stripe, PayPal, Klarna, bank transfer — each line ready to match to its invoice in the right entity's books.

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.

The need

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.

Out of the box

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.

What we built
  • 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
PrestaShop and Odoo storefronts feeding one ledger
Two platforms, three brands, one connector — with the right tax and currency already applied.
Concrete example (illustrative)A €71 order ships to the UK. Done naively, it picks up 21% Spanish VAT and the totals disagree with the storefront. The connector reads the ship‑to country, applies the "outside the EU" fiscal position, zero‑rates the VAT, and the Odoo total matches the storefront to the cent.
Why it mattersYou can modernise your stack without throwing away the storefront that already ranks and sells.

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.

The need

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.

Out of the box

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.

What we built
  • 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
Bank reconciliation in Odoo splitting a Stripe payout across invoices
One Stripe payout, unbundled across the invoices it actually paid — the fee booked separately, automatically. Only the genuine ambiguities become a one‑tap question in Telegram.
Why it mattersReconciliation stops being a weekly chore and becomes a short list of real decisions.

Act 4 — Money outReal costs, and bills that book themselves

Landed cost on a multi‑currency import — three currencies, three rates

The need

Know the real landed cost of an imported container, to the cent — so margin is actually correct.

Out of the box — not without custom work

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.

What we built

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

The need

Turn any incoming supplier invoice into a posted, reconciled vendor bill — with zero manual typing.

Out of the box

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.

What we built
  • 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
Vendor bill with attached PDF in Odoo
An invoice dropped into a chat becomes a posted vendor bill — right account, original PDF attached, reconciled.
Why it mattersMonth‑end stops being data entry and becomes a quick review of decisions that were already made.

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

The need

An assistant on the storefront that does more than answer FAQs — one that qualifies a buyer and sells the right product.

Out of the box

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.

What we built
  • 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
AI sales assistant quoting prices and capturing a lead in one Odoo live chat
The AI assistant answers in the customer's own language, quotes live per‑variant prices, totals the order — then captures the lead (name, email, phone) straight into the CRM.

WhatsApp + Telegram in one Odoo inbox, forever

The need

See and search every customer conversation, across channels, for all time — and be able to reopen old chats.

Out of the box

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.

What we built
  • 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
Unified WhatsApp and Telegram inbox inside Odoo
WhatsApp and Telegram side by side in one Odoo inbox — with the customer and their order one click away.
Why it mattersThe person answering customers sees the whole picture — order, history and channel — without alt‑tabbing between apps.

Act 6 — The edgeCompetitor prices, watched and acted on

The need

Know what every competitor charges — per product variation — and react before it costs a sale.

Out of the box

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.

What we built
  • 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
Competitor price monitoring module in Odoo
Competitor prices, validated per variation — adapt yours in one click, or automatically within set 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.

Let's talk →
RELATED READING

More from the Journal