Project Name
Odoo 16 to 19 Migration for a B2B Wholesale eCommerce Business
![]()
Our client is a wholesale B2B eCommerce business operating on Odoo as both its ERP and customer-facing storefront. Over time, the Odoo 16 installation had accumulated complex customisations, including the third-party Theme Prime layout and a range of overrides, that had progressively reduced page load speeds, increased maintenance overhead, and made version upgrades structurally difficult.
The business needed a clean migration to Odoo 19. It wanted to remove its dependency on a third-party theme and restore native eCommerce functionality. B2B pricing privacy also needed to be enforced for unregistered visitors. Post-delivery invoicing had to be automated. Real-time FedEx shipping label generation also needed to be integrated into the warehouse workflow. The goal was a cleaner, more maintainable architecture that would prevent similar technical debt during future upgrades.
The migration addressed critical technical, operational, and eCommerce challenges that were limiting performance, automation, and scalability.
- Theme Prime Dependency Blocking Upgrades: The Odoo 16 setup relied on Theme Prime and extensive template overrides, making upgrades complex and UI changes risky. The migration required removing the dependency and rebuilding the storefront with native Odoo 19 eCommerce blocks.
- No B2B Pricing Privacy for Public Visitors: Wholesale prices and cart actions were visible to unauthenticated visitors, exposing B2B pricing. Pricing and cart functionality needed to be restricted to registered users.
- Incorrect Static “From” Price: Product cards displayed the lowest bulk-tier price as the starting price. This created incorrect pricing expectations for B2B buyers before they selected a quantity.
- No Real-Time Stock Validation at Checkout: Products could go out of stock during checkout without the cart being updated or the order being blocked. This created an overselling risk during high-traffic periods.
- Manual Post-Delivery Invoicing: Invoice creation, validation, and dispatch were handled manually after delivery. This increased administrative effort and delayed invoice processing.
- Manual FedEx Label Generation and Printing: FedEx labels required manual generation and printing at the warehouse. The lack of an automated ZPL-to-printer workflow created fulfilment bottlenecks.
Ksolves, an AI-first Odoo development company, migrated the business from Odoo 16 to Odoo 19 across five key workstreams, modernizing the eCommerce experience and automating critical post-sale and logistics workflows.
- eCommerce Flow Alignment, Native Odoo 19 Implemented: Theme Prime was fully removed, and the storefront was rebuilt using native Odoo 19 eCommerce blocks. This improved maintainability, reduced third-party overhead, and created a cleaner foundation for future upgrades.
- B2B Pricing Privacy: Prices and add-to-cart actions were hidden from public visitors. They were replaced with login and registration prompts, ensuring wholesale pricing remains accessible only to authenticated B2B customers.
- Dynamic “From” Price for 1 Quantity: Product cards were updated to fetch contextual pricing for quantity 1 based on the active pricelist and currency. B2B buyers now see the correct starting price instead of the lowest bulk-tier price.
- Unified eCommerce Search Redirects: Search forms across the header, search blocks, and category pages were unified to redirect to the global shop page. This ensures consistent search results without restricting searches to individual categories.
- Live Stock-Check Checkout Middleware: Real-time stock validation was added to the checkout and payment routes. The system adjusts or removes unavailable items and alerts customers before order confirmation, reducing overselling risks.
- Automated Invoice Creation, Validation, and Dispatch: Invoice processing was automated upon delivery validation. The system creates, validates, and emails invoices based on configured settings, while background processing prevents database locking and workflow delays.
- FedEx ZPL Label Automation via IoT and TCP: FedEx ZPL labels are automatically routed to thermal printers through Odoo IoT or TCP port 9100. Custom thermal label reports were also created for 50×50mm and 80×40mm formats, eliminating manual printing steps.
Technology Stack
| Category | Technology |
|---|---|
| Platform | Odoo 19 |
| eCommerce | Odoo 19 Native eCommerce |
| Checkout | Live Stock Middleware /shop/checkout and /shop/payment |
| Logistics | FedEx ZPL via Odoo IoT Box HTTP API and TCP Port 9100 |
| Reporting | Custom QWeb Thermal Label Reports — 50x50mm and 80x40mm |
The business moved from a Theme Prime-dependent Odoo 16 setup with manual processes to a clean, native Odoo 19 platform with automated eCommerce, invoicing, and fulfilment workflows.
- Theme Prime Dependency Eliminated: Theme Prime was fully removed and the storefront rebuilt on native Odoo 19 blocks, improving maintainability and making future upgrades simpler and lower-risk.
- B2B Wholesale Pricing Now Fully Private: Wholesale prices and add-to-cart actions are hidden from unauthenticated visitors. Login and registration prompts now protect pricing confidentiality and encourage trade buyers to register.
- Correct Unit Pricing Now Displayed: Dynamic “From” pricing ensures B2B buyers see the correct starting unit price on product cards, replacing the previously displayed lowest bulk-tier price.
- Overselling Risk Eliminated at Checkout: Real-time stock validation prevents orders from being confirmed against depleted inventory. Carts are updated, and customers receive clear stock warnings before payment.
- Post-Delivery Invoicing Fully Automated: Delivery validation now triggers invoice creation, posting, and email dispatch in the background. Manual invoicing steps have been eliminated.
- FedEx Label Printing Fully Automated: FedEx ZPL labels are routed directly to thermal printers through IoT Box or TCP, eliminating manual label generation and printing while speeding up warehouse fulfilment.
Ksolves transformed a Theme Prime-dependent Odoo 16 setup into a cleaner, native Odoo 19 B2B eCommerce platform. The migration removed upgrade barriers while preserving essential B2B functionality and improving storefront performance and maintainability. With real-time stock validation, private pricing, automated invoicing, and FedEx label printing now built into the workflow, the business has reduced manual effort and created a more reliable foundation for future growth and upgrades.
Is Technical Debt From Old Odoo Customisations Slowing Down Your Platform and Your Team?