Odoo-based Ecommerce Ecosystem for a Luxury Furniture Retailer
How a high-end furniture retailer grew online sales by 20% and improved CSAT by 25% by launching an Odoo-based ecommerce ecosystem.
Home Success stories Odoo-based Ecommerce Ecosystem
Business challenge
Hardly a surprise, purchasing habits are drifting online. By most metrics, luxury retail is already there. Online sales of premium furniture, for instance, have been climbing by roughly 30%* year over year.
At the same time, many high-end buyers remain charmingly old-school, insisting on touching fabrics and performing a slow lap around the showroom before committing to a five-figure sofa. But even when the final transaction happens offline, the decision rarely does. Nearly 80%** of luxury sales today are digitally influenced: shoppers engage with one or more digital touchpoints before they buy.
*McKinsey
This leaves established luxury brands in a constant balancing act: preserving their heritage and boutique experience while adapting to modern ecommerce expectations.
That omnichannel tension was at the core of our client’s concerns, a high-end furniture and housewares retailer. They sought a robust ecommerce solution that could complement their boutique sales and digitize operations across multiple premium manufacturers, including those offering made-to-order furniture.
Impressed by the portfolio of completed ecommerce implementations by Instinctools, the retailer secured a dedicated team for the end-to-end development of their own ecosystem.
Solution
We proposed an ecommerce solution built on ready-made, specialized components, while fully tailored to the client’s business specifics. As a foundation, we picked up the Odoo platform, which best met the client’s requirements in terms of cost and functionality. To accelerate delivery and keep costs under control, we assembled the system from proven, ready-made building blocks: ERP, CRM, CMS, etc, allowing us to move fast without compromising reliability.
- An online storefront with an exquisite, minimalist interface that highlights high-resolution, artistic product imagery, paired with a purchasing journey that feels exclusive, polished, and perfectly on-brand.
- A centralized ERP system uniting a CRM module, order management, quality control panel, and logistics module under its hood for synchronized, hitch-free back-office processes orchestration.
- A dedicated manufacturing portal for seamless communication and collaboration with external production partners.
- A mobile room scanning app powered with an intelligent size-matching algorithm for calculating optimal furniture dimensions and suggesting either in-stock or Made-to-Order options.
- A custom web-based holographic app for immersive in-store product showcase.
Core system components in detail
Below is a closer look at the key components of the solution and how they work together across commerce, operations, and fulfillment.
Equipping internal users with feature-rich functionality to deliver a premier shopping experience
Our team developed a Next.js-based ecommerce frontend that supports customer optional sign-up, appointment booking, and end-to-end purchasing in one consistent customer journey across both online and in-store touchpoints.
Operational capabilities covered in the storefront:
- Catalog management
- Creating and structuring product categories
- Configuring main-menu navigation
- Creating, updating, and assigning products to categories
- Building and publishing collections, including product videos
- Managing product attributes (e.g., size, color) to support complex configurations
- Pricing, regions, and promotions
- Creating and managing price lists
- Setting region-specific pricing and mapping it to country groups
- Configuring and maintaining discount and loyalty programs
- Order management
- Searching and reviewing online orders with full visibility into key sales-order data (customer, order lines, pricing, taxes, totals, statuses, delivery and invoicing details, payment terms, and shipping method)
- Updating order details when business rules allow
- Linking historical orders made by guest users to a newly created customer account
- Creating orders manually (for assisted sales), generating payment links, and triggering transactional emails when an order is posted
By bringing online and in-store shopping into a single system and keeping catalog, pricing, and customer data connected, the storefront simplifies day-to-day operations, improves the buying experience, and gives the business tighter control over regional pricing and promotions while remaining flexible for future growth.
Orchestrating back-office operations within a centralized ERP system
Before embarking on a full-scale retail digital transformation, the client’s online presence was limited to a basic Shopify storefront. Behind the scenes, almost everything that happened after checkout was handled manually, making fulfillment slow, error-prone, and largely opaque, with no real-time visibility into production. Within the Odoo-based ERP portal we designed, teams can now manage the full back-office cycle from customer data and order orchestration to production control, quality gates, and delivery coordination.
Customer relationship management
A CRM module consolidates all customer data in a centralized repository. Here, the team can view detailed customer profiles, including purchase history and preferences, create new customer entries, update contact information and account status in real time, and add private internal notes to track specific client requirements or conversations.
Orders processing and production handoff
Once the quotation is confirmed either by a customer completing payment online, or by a sales representative confirming it on behalf of a customer in-store, it becomes a Sales Order (SO). SO contains a series of attributes that provide comprehensive details about the order, including the item name, its manufacturer, optional product details, quantity, unit price, taxes, delivery option, etc.
Sales order workflow
The initial draft is created, sent for approval, or shared with the customer.
- generated automatically (when a customer places an order online)
- Created manually by the Admin for specific customer requests
Once confirmed, the order moves to Sales order status.
Invoices are generated and payments are recorded.
The furniture item is prepared, shipped, and marked as delivered.
Once the Sales Order is confirmed and payment is received, the workflow automatically shifts into production. If the item is out of stock or requires customization, the system generates a corresponding Purchase Order (PO). Before it’s sent to the manufacturer linked to the product, a sales manager validates that the PO meets production standards by:
- Checking that the Purchase Order contains all the necessary details about the piece of furniture to be manufactured, including product specifications, sizes.
- Checking that the purchase order contains all the necessary production files (e.g. CAD, renderings, assembly instructions, etc.)
If a sales manager thinks that files or notes for the manufacturer are needed, they can add a message to the purchase order.
After all the checks and PO confirmation, the status of the purchase order changes to “Awaiting Manufacturer” and becomes available to the manufacturer in a Manufacturer portal.
The order processing module gives sales and production managers a dedicated workspace to:
- View all pending orders in a prioritized queue
- Break down orders into manufacturing requirements (materials, dimensions, finishes).
- Assign jobs to specific manufacturers
- Track the progress of each order through the production lifecycle
The quality control
of the manufactured productsSince quality is central to the client’s brand, we embedded quality control (QC) directly into the production workflow. For each manufactured item, designated quality controllers can:
- Log inspection results against predefined quality checklists
- Capture and attach photos of finished items for visual verification and auditability
- Flag defects or non-conformities and automatically trigger rework, where needed
- Approve products for delivery only after they meet the required standards
Quality control workflow
Product delivery management
The delivery module ensures that approved products leave the manufacturing facility and arrive at the customer’s doorstep on-time. Logistics coordinators begin by confirming the shipping address and verifying key order details, such as order lines, delivery dates, or pricing, making manual adjustments if needed. This blend of automation and manual flexibility ensures timely, accurate deliveries while handling real-world logistics exceptions.
Empowering production partners through an easy-to-use and secure manufacturer portal
To close the loop between sales and production, we built a dedicated web interface for the client’s manufacturing partners. Just as registered customers have their own personal account with the history of purchases, each manufacturer is invited to the system via a secure login, gaining access to a tailored portal that connects them directly to the orders they need to fulfill.
Secure, role-based access
When a manufacturer is onboarded, they receive an invitation to create their account. Upon login, they see only the data relevant to them, namely, the purchase orders assigned to their workshop. This role-based access ensures that sensitive customer or business information remains protected while giving manufacturing partners exactly what they need to do their jobs.
Order management at their fingertips
Once inside, the manufacturer is presented with a clear, intuitive interface for managing their workload. Key capabilities include:
- Viewing purchase order lists. A comprehensive list of all assigned orders, providing a snapshot of current and upcoming work.
- Viewing purchase order details. Deep visibility into each order, including product specifications, materials, dimensions, and customer notes.
- Searching for purchase orders. A robust search function to quickly locate specific orders by ID, customer name, or date.
- Sorting purchase order lists. Flexible sorting options to prioritize orders by deadline, status, or value.
- Processing purchase orders. The ability to accept new orders and move them through production stages, updating the status in real time, from “Accepted” to “In Production” to “Completed.”
- Downloading furniture unique code. Access to unique identifiers for each piece of furniture, which can be printed or scanned to track items through production and delivery.
Profile management
Manufacturers can also manage their own profile settings within the portal, keeping their contact information, business details, and preferences up to date.
User story within the Manufacturer portal
Enriching the client’s ecommerce ecosystem with room scanning and holographic apps
Alongside ecommerce development, our engineers built a suite of complementary digital solutions to support the client’s non-standard ecommerce workflows:
- A mobile app that analyzes a room’s dimensions, recommends catalog items that fit perfectly, and suggests size customizations.
- A web app for Holobox displays, letting customers view products in 3D, rotate them, and change colors via a paired tablet.
-
The technical choices behind speed, savings, and long-term resilience
During a thorough discovery phase, led by our Business Analyst and supported by key team members, we investigated requirements, constraints, design, and technical architecture to shape the budget and development roadmap. With this foundation, we then assembled a cross-functional team of 8 specialists.
Deciding on the software linchpin
To define a scalable, delivery-ready architecture, we aligned on several core technology decisions early in the project:
- Choosing platforms capable of supporting both ecommerce and manufacturing workflows as a unified foundation. The solution needed to go beyond standard ecommerce flows and involve manufacturers, QA, and production logic, so we extended the architecture to include ERP- and CRM-like capabilities, rather than treating manufacturing as a bolt-on.
Non-standard ecommerce flows to support high-end customer experience:
to collections
The platform must dynamically manage access to some collections or limited-edition pieces available only to specific clients, without creating friction for other users.
final customizations
The system should secure payments for made-to-order products in advance, allowing for post-purchase adjustments without overcommitting manufacturing or violating accounting rules.
The ability to adjust selections, such as fabric or finish after purchase, while staying within production constraints and maintaining accurate invoicing and inventory management.
- Prioritizing existing platforms, services, and infrastructure to accelerate delivery. With strict deadlines, reusing proven components reduced engineering effort and compressed the time to market without sacrificing reliability.
- Building the solution on open-source software with a custom service layer to ensure long-term scalability. This approach keeps the system flexible for post-MVP scaling, letting us expand workflows and functionality without being constrained by rigid platform limits.
To meet the client’s ambitious quality objectives and accommodate the unique demands of non-standard ecommerce flows, we selected Odoo as the foundation for the solution.
Odoo is a Python-based open-source platform that supports multiple business domains, including ecommerce, ERP, CRM, accounting, and more. This makes it the perfect choice for a hybrid commerce-manufacturing system.
Migrating the commerce stack from Shopify to Odoo
At first, we considered retaining the client’s existing Shopify setup for ecommerce and integrating Odoo as a manufacturing portal. Shopify’s SaaS model offered straightforward, out-of-the-box ecommerce features and its POS offline capabilities seemed ideal too, minimizing the need for a custom POS layer.
However, it soon became clear that the project’s non-standard ecommerce flows would have required heavy customization around Shopify:
- Customer access control: Shopify POS lacks granular control over customer visibility, meaning sales assistants could view all customer profiles, which is an unacceptable limitation for privacy and security.
- Appointment booking: The existing Shopify plugins did not cover the required appointment booking logic, making custom development unavoidable.
- User limits: The client’s Shopify plan supported only 15 users, which would quickly become a bottleneck as new boutiques were onboarded.
- Payment and measurement flow: Shopify’s order model didn’t support the required process of ‘pay first, finalize measurements later’, preventing updates to paid orders with actual measurements.
With all those constraints, we determined that the benefits of maintaining Shopify for a limited set of functions, such as catalog, orders, and customer management, didn’t outweigh the potential complexity and risks of extensive customizations. Instead, together with the client, we made the strategic decision to migrate fully to Odoo, leveraging its flexibility to build a tailored, scalable solution that better aligned with the company’s long-term needs.
Handling integration quirks
Since the client was on Odoo Community (vs. Enterprise), we were working with a pretty limited feature set out of the box. To deliver a seamless experience, we had to extend, modify, and sometimes completely rebuild standard connectors.
Twilio: predictable messaging without platform constraints
Odoo’s native integration with Twilio required purchasing additional tokens just to send SMS messages, which added recurring costs and limited flexibility.
We eliminated this dependency by building a custom integration that communicates directly with Twilio’s API. This gave the client full control over messaging costs and functionality, from order confirmations to delivery alerts.
DHL Express: making shipping rates and validation resilient
The DHL integration presented the most challenges, requiring numerous adjustments to make it reliable.
- Rate calculation on holidays. DHL could return no live rates during non-business days. We adjusted the logic to automatically check the next available business day, so shipping costs are always available at checkout and in back-office flows.
- Address validation discrepancies. DHL’s location data sometimes differed from common sources like Google Maps or Wikipedia, causing validation failures. We implemented more tolerant matching to prevent unnecessary customer friction.
- Verification and compliance. We went through an extensive verification process because DHL requires strict data accuracy for international shipments. Even minor errors in customs declarations can result in fines, holds, or delivery delays. To address this, we implemented an API-driven declaration flow: customs declarations are generated via DHL’s API only after our system pre-validates all line items and required shipment data, ensuring everything passes DHL’s checks before submission.
Stripe: modern checkout with multiple payment methods
Odoo’s default Stripe component was outdated, exposing too few payment options in the UI. The business needed credit cards, digital wallets, and local payment methods to maximize conversion.
We developed a custom express checkout component from scratch, creating a modern, flexible interface that met the client’s requirements and improved the user experience.
Decoupling the storefront UI for enhanced performance and flexibility
Although Odoo offers an out-of-the-box storefront builder for easy customization, relying on it introduces potential performance risks. Since Odoo renders pages on the server, page load speed directly depends on its current resource utilization and processing capacity.
To avoid future performance constraints, we suggested implementing the ecommerce application as a standalone Next.js (React) application integrated with Odoo via REST API. While Next.js uses server-side rendering, hosting it as a separate storefront keeps site speed independent of Odoo’s workload and lets use prerendering and caching to deliver pages faster.
Besides, the client was not satisfied with the built-in builder’s limited customization options for style, fonts, colors, and layout. To ensure every page matched the client’s vision, our UX/UI designer reworked each of them, and, once approved, our frontend engineer turned the static mockups into functional, performant, and accessible user interfaces. Some elements, such as the booking calendar and the customer address section in the user account were built completely from scratch because they were not supported natively in Odoo.
Mitigating long-term architectural and delivery risks
A monolithic approach (combining ecommerce and manufacturing portal into a single service) accelerates development speed but increases long-term risks, such as architectural complexity, codebase entropy, and scalability constraints. To tackle these risks, the team followed best engineering and architectural practices:
- Source control (Git). All source code was hosted in a Git-based repository. While Instinctools could run a dedicated GitLab environment for the project, we recommended the client maintain its own repository on GitHub, GitLab, or another Git platform to retain long-term ownership and access control.
- Code review. All merges into the main branch were reviewed by at least one of our engineers. By keeping merge requests small and focused, we minimized review complexity and reduced the risk of overlooking important issues.
- Automated testing. Although there was no mandatory test coverage requirement, we recommended that automated testing be considered for critical features, provided the timeline and scope allowed, to ensure the highest level of functionality and stability.
- Coding standards. The solution was built on Odoo (Python) and React (JavaScript). Our team followed internal coding standards for both Python and JavaScript.
Deploying infrastructure on AWS
Leaning on native AWS services allowed us to obtain core infrastructure features, such as autoscaling, backups and recovery, observability, and security controls, out of the box, reducing operational complexity and long-term maintenance overhead.
- ECS Fargate runs application containers and enables seamless horizontal scaling without the burden of managing servers.
- Amazon Aurora PostgreSQL is used as a fully managed relational database, providing high availability and scaling capabilities.
- The solution is deployed within a Virtual Private Cloud (VPC) with isolated public and private subnets to enforce security boundaries and controlled exposure.
- Amazon EFS provides shared, multi-AZ file storage to ensure durable and scalable application workloads.
- Amazon ECR stores and distributes private container images securely and efficiently.
- Sensitive credentials are protected by AWS Secrets Manager. Administrative access is controlled via a bastion host deployed in a private subnet.
- All infrastructure is provisioned and managed using Terraform to ensure reproducibility and controlled change management.
Roles overview
Every function and workflow of the client’s business finds its place in the ecommerce ecosystem. Here’s the full picture:
Before
- A basic Shopify storefront handling standard catalog and checkout flows
- Disconnected ecommerce and production processes
- No structured quality control before shipment
- Manufacturers operating outside the client’s visibility, with fragmented and reactive communication
After
- A fully integrated Odoo ecommerce ecosystem, built to reflect the prestige of the brand online
- Automated purchasing flow linking sales orders to purchase orders, manufacturers, QA, and logistics in a single system
- Embedded quality control workflow with digital checklists, defect-triggered rework
- A dedicated manufacturer portal with secure role-based access and real-time production status updates
Business value
- +20% online sales growth
- +25% CSAT increase
- Operational unification across ecommerce, production, and logistics