Odoo 20 Upgrade and eCommerce Integrations: Order Flow Risk
Odoo 20 upgrade risks for eCommerce integrations: Shopify, Amazon and WooCommerce connectors, payments, shipping, SKU mapping, cutover and reconciliation.
An Odoo upgrade rarely breaks the shop page. It breaks the steps between a customer clicking Pay and the money reaching your bank. Our Odoo 20 upgrade services treat that order flow as the main test case.
This guide is for eCommerce managers, finance leads and IT owners who sell through Shopify, Amazon, WooCommerce or the Odoo website. If your risk sits mostly in custom code, read our guide to the Odoo 20 custom module upgrade first.
Why is the order flow the riskiest part of an Odoo 20 upgrade?
The order flow is the riskiest part of an Odoo 20 upgrade because it crosses several apps and outside systems, and a break at any step stops revenue or hides it. Each step hands data to the next.
A typical online order passes through eight steps:
- Order capture: the storefront or marketplace receives the order.
- Sale order: a connector creates it in Odoo with the right products and taxes.
- Payment capture: the provider confirms the payment and Odoo confirms the order.
- Stock reservation: Odoo reserves stock and pushes new levels to every channel.
- Shipping label: the carrier connector books the parcel and returns a label.
- Tracking: the tracking number goes back to the storefront and the customer.
- Invoice: Odoo invoices the order in the right journal.
- Payout reconciliation: finance matches the channel or provider payout to the invoices.
Odoo's upgrade guide asks you to test "integrations with external software" and "online sales with eCommerce". Most plans test apps one at a time, but orders fail in the gaps between them.
Can you upgrade an existing database to Odoo 20 yet?
Not through Odoo's standard service yet: when we checked on 22 October 2026, the target list on Odoo's upgrade platform stopped at 19.0. Odoo 20 itself was released in September 2026.
Use the gap to list every connector, check which ones have a 20.0 version and write the test plan. When 20.0 appears as a target, request a test database and start rehearsing.
Odoo's upgrade service does not cover third-party or in-house modules without a maintenance contract. Most Shopify and WooCommerce connectors fall into that group.
What can break at each step of the Odoo order flow?

Every step can break in its own way, so each one needs its own test before go-live. The table maps the common failure points.
| Order-flow step | What can break after the upgrade | Test before go-live |
|---|---|---|
| Order capture | Webhooks fail during downtime; connector not ready for 20.0 | Place a test order on every channel and confirm it lands once |
| Sale order | SKU no longer matches the product; variant or bundle mismatch | Match your top SKUs, variants and bundles |
| Taxes | Fiscal position or tax-included display differs | Compare totals with the channel to the cent |
| Payment capture | Provider left in test mode; custom code reads removed fields | One small live payment and refund per provider |
| Stock reservation | Stock pushed late or wrong; products unpublished | Check available quantity on each channel |
| Shipping label | Carrier still in test mode; removed carrier module | Print one real label per carrier and service |
| Tracking | Scheduled actions off; tracking not sent back | Confirm tracking reaches the storefront and email |
| Invoice and payout | Wrong journal; fees and cents not matched | Reconcile one full payout end to end |
Our Odoo 20 eCommerce release notes explain all 38 eCommerce changes and what each one means for your upgrade.
How do connectors and webhooks break during an Odoo upgrade?
Connectors break in two ways: they miss orders while Odoo is offline, or they fail after the upgrade because their code or API calls no longer match Odoo 20. Both can stay silent for days.
Your production database is unavailable during the upgrade, but storefronts keep selling and their webhooks hit a server that does not answer. Each platform reacts differently:
- Shopify: retries failed webhook deliveries up to eight times over four hours, and removes the subscription if failures persist.
- WooCommerce: disables a webhook after more than five consecutive delivery failures, so later orders stop arriving until someone turns it back on.
- Amazon: Odoo's native connector fetches orders on a schedule, so it catches up once its scheduled action runs again.
Then check the API calls. Odoo's external API documentation says XML-RPC and JSON-RPC are deprecated. The `db` service is gone in Odoo 20, and `common` and `object` are scheduled for removal in Odoo 22 (fall 2028).
Plan the move to the JSON-2 API now. The same page says manually created API keys cannot last more than three months, so plan key rotation too.
Our Odoo API integration guide covers the code side.
Why do payments and shipping carriers behave differently on a test database?
Odoo neutralizes upgraded test databases, so payment providers and delivery carriers are reset to test mode and scheduled actions are disabled. A test database cannot prove that live payments, labels or syncs work.
Odoo's upgrade documentation lists what neutralization does: scheduled actions off, outgoing mail replaced, providers and carriers in test mode, and bank sync off. That protects customers but hides real failures.
Plan for it:
- Use sandbox keys from each payment provider and carrier for the test database.
- Run marketplace and tracking scheduled actions by hand during testing.
- Keep a list of every live credential to re-check on go-live day.
- Book one small live payment and refund per provider right after the upgrade.
Odoo 20 also changes the providers. The old State field is replaced by Published, Live and Archive, so custom payment modules that read `provider.state` must be updated.
Authorize.net needs a signature key and webhook after upgrading, PayPal needs an OAuth reconnect for its new features, and SOFORT is removed. Our Odoo 20 Online Payments release notes cover all 16 changes.
Failures are easy to miss. An Odoo 18 user reported paid website orders staying as quotations while PayPal showed the payment confirmed. Check order states too.
How do product, SKU and tax mappings drift after an upgrade?
Mappings drift because the upgrade changes how Odoo stores prices, variants and taxes, while the channel keeps sending the same SKUs and totals. Nothing errors; the numbers just stop matching.
Odoo's Amazon connector guide matches each Amazon SKU to a product's Internal Reference. With no match, the line uses a default product called Amazon Sale, so stock and margins go wrong.
The same guide warns that Amazon totals can differ from Odoo by a few cents because of taxes, settled with a write-off. After an upgrade, check that these write-offs stay small.
Odoo 20 changes to watch in this step:
- Variant prices: a variant's sales price can now be edited directly and is stored on the variant.
- Pricelists: the old percentage rule type was dropped, so code or imports that create it must change.
- Tax display: each pricelist can show prices with or without tax, for B2B and B2C on one website.
- Order lines: sales order lines no longer need a product, so connectors that expect one must handle empty products.
What changes for shipping labels, tracking and returns in Odoo 20?
Shipping changes in Odoo 20 mostly affect relay points, parcel references and returns, so retest every carrier and return flow. Our Odoo 20 Inventory release notes list the details.
The Mondial Relay modules are removed. Its pickup points now come through Sendcloud, so Mondial Relay users need a Sendcloud account and new delivery methods before upgrading.
Sendcloud now sends the sales order name plus the package name as the parcel reference. If your warehouse or a tracking tool matches labels on the plain order number, update that match.
The return wizard is gone. Clicking Return now creates a draft return transfer directly. Custom modules or connectors that call the old `stock.return.picking` model break and must be rewritten.
How should you freeze orders and cut over to Odoo 20?
Freeze or queue orders for a short, planned window, upgrade, then reopen channels one at a time and check each one. Odoo recommends a full rehearsal the day before the production upgrade.
Use this cutover checklist:
- Rehearse: run the full cutover on a fresh upgraded test database the day before.
- Pick a quiet window: choose your lowest order hour and tell customer service.
- Record the last order: note the last order number and time on each channel.
- Hold the queue: pause connector jobs, or let channels queue orders if they can.
- Back up: keep a full backup; on Odoo Online a production upgrade cannot be reverted.
- Upgrade and switch live: set payment providers and carriers back to live and check credentials.
- Restart syncs: re-enable scheduled actions and check every webhook subscription.
- Run live tests: one real order, payment, label and refund per channel.
- Reopen channels: one at a time, watching for duplicates and missing orders.
On Odoo.sh, the platform reverts automatically if the upgrade fails. Odoo Online has no revert once it is done.
How do you re-sync and reconcile orders after go-live?
Count every order from the freeze window by channel, then match orders, payments and payouts until all three agree. This is where hidden losses show up.
For Amazon, Odoo's order management guide forces a re-sync when you move the Last Order Sync date back. Many Shopify and WooCommerce connectors offer an import by date.
Then match payment transactions to confirmed orders, and the first payouts to invoices. Odoo 20 also sends more GA4 events, so custom tracking code may double count.
Run the month-end checks in our Odoo upgrade verification guide after your first full month on Odoo 20.
Which industries carry the most order-flow risk in an Odoo 20 upgrade?
Multi-channel retailers and marketplace sellers carry the most risk, because they run the most connectors and orders in flight.
| Industry | Pain or cost driver | Odoo approach | How iVentureTeam helps |
|---|---|---|---|
| Multi-channel retail | Oversells when stock sync pauses | One stock figure pushed to each channel | Rehearse freeze and re-sync windows |
| Marketplace sellers | Unmatched SKUs land on a default product | Offers mapped to internal references | Audit SKU mapping before cutover |
| B2B wholesale portals | Tax-included and tax-excluded price errors | Price display per pricelist in Odoo 20 | Test B2B and B2C pricelists side by side |
| Subscription and D2C brands | Saved cards and recurring charges | Tokenized payments on supported providers | Verify tokens and renewals after upgrade |
| Cross-border sellers | Customs data, carriers and currencies | Variant-level HS codes in Odoo 20 | Map HS codes and test carrier labels |
| Specialty retail | Custom checkout and product filters | Odoo eCommerce with custom modules | Port and test checkout code |
See the wider setup on our Odoo ERP for retail page.
How iVentureTeam helps protect your Odoo eCommerce integration during an upgrade

We upgrade the database and the order flow around it as one project, so every channel, payment and carrier is tested before customers notice. We have delivered 150+ ERP projects across 35+ countries with 40+ Odoo specialists over 13+ years.
- Order-flow map: every channel, connector, provider and carrier listed with an owner.
- Connector porting: Shopify, WooCommerce, marketplace and payment modules moved to 20.0 through our Odoo integration services.
- Checkout and storefront: custom checkout, pricing and product pages ported by our Odoo eCommerce development team.
- Cutover rehearsal: a timed freeze, upgrade and reopen plan run on a test database first.
- Reconciliation: freeze-window orders, payments and payouts matched by channel.
For a first number, try our Odoo migration cost calculator.
Odoo eCommerce upgrade case study: WUNDERBAR Custom Radio Shop
A German classic-car radio specialist moved its online store to a newer Odoo version and rebuilt checkout in the same project. WUNDERBAR Custom Radio Shop GmbH is based in Stuttgart.
Its buyers shop by exact vehicle fitment, and the store ran on an aging Odoo 15 codebase with a multi-step checkout.
We migrated the code from Odoo 15 to Odoo 17 and built a one-page checkout with the PayPal payment gateway and multi-currency support. We also added fitment search by vehicle, year and model, and linked GA4 and Google Merchant Center.
The project took 10 weeks. The owner said: "Migration happened without losing a single order."
Read the WUNDERBAR Odoo eCommerce checkout and migration case study.
The bottom line on Odoo eCommerce integration during an Odoo 20 upgrade
Treat the order flow as the main test case: if one real order can travel from storefront to reconciled payout on the upgraded database, the upgrade is ready. If it cannot, wait.
Map every connector now, rehearse a short order freeze, and plan re-sync and payout reconciliation for the first week after go-live.
Ready to upgrade to Odoo 20 without losing orders?

Get an order-flow review before you book the upgrade. Plan an Odoo 20 upgrade that keeps your store selling, call +91-90235-15208, or email business@iventureteam.com.
Frequently Asked Questions
Will my Shopify or WooCommerce connector work after upgrading to Odoo 20?
+
Only if the connector has a 20.0 version or is ported. Most are third-party or custom modules that Odoo's upgrade service does not cover without a maintenance contract.
Can I upgrade my Odoo database to Odoo 20 now?
+
Not through Odoo's standard upgrade platform yet. On 22 October 2026, its highest target was 19.0.
Is XML-RPC removed in Odoo 20?
+
No. XML-RPC and JSON-RPC are deprecated in Odoo 20 and still work, but the db service was removed. The common and object services are scheduled for removal in Odoo 22, in fall 2028.
Why are payments in test mode after an Odoo upgrade test?
+
Odoo neutralizes upgraded test databases. Payment providers and carriers are reset to test mode, and scheduled actions, outgoing mail and bank sync are turned off.
How long will my store be offline during an Odoo upgrade?
+
Your Odoo database is unavailable while the production upgrade runs, so time it on a test database first. Your storefront can stay open, but connectors must queue or re-sync the orders placed during that window.
How do I recover orders missed during the upgrade?
+
Re-import orders by date from each channel. For Amazon, move the Last Order Sync date back in Odoo to force a re-sync. Then compare order counts per channel for the freeze window.
How much does an Odoo 20 upgrade cost?
+
Our own industry estimates are $1,500 to $3,000 from Odoo 19 and $3,000 to $6,000 from Odoo 18. Each connector to port or rebuild adds to that, so price the integrations separately.
What should I test first after upgrading an Odoo eCommerce store?
+
Run one real order per channel end to end, from import to payout. Then test refunds and returns, which Odoo 20 changed.
Ready to put this into action?
Talk to iVentureTeam about Odoo, AI automation, or custom development — get a free, no-obligation consultation.
Free Odoo tools
All tools- Odoo Health CheckVersion, modules, findings and upgrade cost
- Odoo App SelectorWhich apps you need, by industry
- Odoo Project EstimateIndicative cost and timeline in minutes
- Odoo Implementation Cost CalculatorImplementation cost and timeline, in minutes
- Odoo Migration Cost CalculatorVersion jump or legacy ERP, priced in minutes
Continue reading
Odoo Online Version Differences: Why Two Companies on Odoo 20 Run Different Systems
Why two companies on Odoo 20 run different systems: Odoo Online SaaS releases, mandatory upgrades, custom module limits, plans and how to check your version.
Odoo Per-User Licensing: Reducing Cost Without Losing Function
Odoo licensing audit for 2026: who needs a full User, Light User or portal access, Standard vs Custom, yearly billing, renewals and a worked cost example.
Odoo 20 vs Zoho One: Cost and Capability Comparison
Odoo 20 vs Zoho One compared on cost and features: Light Users, the all-employee rule, worked pricing for 15 to 100 staff, AI credits and manufacturing.
