What we built, and what changed afterwards.
Starting with the one we can show you in full detail, because we own it.
Built for how the business actually trades.
Real projects, told the same way every time: the situation, what we did, and what changed.
Rebuilding E Dental Mart's operations on Odoo, without closing the shop
E Dental Mart is an established dental-supply distributor selling to dentists and clinics, online and wholesale. Their operations were split across a legacy CRM, spreadsheets and disconnected accounting records. Inventory counts, purchasing and financials never quite agreed with each other, and the gap widened as order volume grew.
They needed to move onto a single system of record. As an active e-commerce operation, they could not simply pause sales to do it.
We implemented Odoo 19 Enterprise across inventory, purchasing, sales, POS and accounting as one connected system, modelled both warehouses down to bin level so stock location is tracked and not just stock quantity, and connected the live WooCommerce storefront directly into Odoo so online orders, stock and fulfilment share one source of truth. A bridge process reconciled day-to-day order activity between the outgoing CRM and Odoo for the length of the transition, so nothing was lost in the handover.
The online store never went dark and warehouse staff kept shipping orders throughout the migration. Real order volume on the new system then surfaced the next layer of problems, and the engagement continues.
Each of these began as a real problem raised after go-live, when live volume met the new system.
Migrating a live e-commerce distributor to Odoo 19
Inventory, purchasing, sales, POS and accounting implemented as one connected system across both warehouses, modelled down to bin level, with the chart of accounts and historical costing migrated from their existing records.
Closing a warehouse backlog caused by a silent sync bug
Warehouse staff were carrying a growing queue of picks that never cleared. Nearly two hundred of them belonged to orders that were on hold, unpaid or already cancelled on the storefront, so real stock was reserved for orders that would never ship. The connector was auto-confirming every incoming order regardless of its real status, and nothing released the stock when an order was cancelled. Rebuilding that logic cut the stuck queue roughly in half immediately and removed the cause.
A governed bulk purchasing workflow
Restocking decisions were being made informally, with no record of what had been requested or approved. We built a Bulk Purchase Demand workflow with a three-tier chain: staff raise a demand, a Head of Purchasing sets the recommended quantity, a Director approves and it locks. Every line pulls live on-hand stock, a configurable monthly threshold blocks approval once exceeded, and no purchase order can exceed what was approved, even across several separate orders.
Turning approvals into purchase orders automatically
Approving a demand now raises the request-for-quote orders behind it the same day, grouped one per vendor, with vendors and pricing pulled from the product's own records. Products with no vendor on file are raised against a clearly labelled placeholder rather than being silently skipped, and cannot be confirmed until a real vendor is set.
Automating order status from the warehouse floor
Completing a packing scan now advances the order to Ready and the dispatch scan advances it to Dispatched, for both warehouses' fulfilment flows. Anyone watching the pipeline sees warehouse reality in real time, with no extra effort from the people doing the scanning.
Protecting vendor confidentiality without breaking sales
Supplier pricing and identity had to be visible only to Purchasing, Accounts and management. Applying that restriction silently stopped everyone else from adding products to a sales order, with no error on screen. Reproducing it against the server rather than the browser found the cause: Odoo's product search also matches on the vendor's product code. The fix removes only that branch for users without vendor rights, leaving ordinary product search intact.
Eliminating guesswork around vendor bill quantities
Vendor bills showing zero quantities were being reported as a bug. They were correct: Odoo bills what has actually been received, and this business routinely takes large orders in several partial deliveries. Rather than explaining it every time, we built a banner into the bill screen that names the purchase order and products involved and tells staff to validate the receipt first.
Want to see the system, not the slides?
We will walk you through our own live Odoo, the real one with the real data, and you can judge the work for yourself.