Central Florida

Two systems, one truth

A Central Florida hemp brand went from one online store to four retail locations, with a storefront and an ERP that disagreed about how much stock existed.

140,000+

orders supported

The volume the integration carried, not a lift we claim to have caused.

4

retail locations on one stock system

From online-only when the engagement started.

Measured over two and a half years.

An isometric illustration of three warehouses joined by glowing lines to a single central node, each warehouse tagged with an incoming stock quantity.
An illustration of the reconciliation, not a screenshot of the system. The quantities on it are indicative.

The situation

An online-only store selling into a single warehouse, growing over the engagement into four retail locations that all sold from the same inventory.

The storefront ran on WooCommerce. The back office ran on Odoo 17. Both were correct about their own half of the business, and neither was correct about the whole of it.

What was actually wrong

Two systems each believed they owned stock
WooCommerce decremented on order. Odoo decremented on fulfilment. With one warehouse that difference is a rounding error you can live with. With four locations it compounds, and the number a customer sees on the product page stops being a number anyone should trust.
Overselling that spanned both systems
Items sold that were not there to ship. The cause was not in either system on its own — it only existed in how the two reconciled locations between them, which is why it survived being looked at from inside each of them separately. We root-caused it at the data layer.
Orders arriving in the ERP as retyping work
Every hour spent moving an order from the store into the back office by hand is an hour that scales linearly with growth, and introduces an error rate that does the same.

What we built

Stock sync across every location
One reconciliation path between the storefront and the ERP, aware of which location holds what, so the quantity on the product page is the quantity in a building.
An order pipeline instead of a person
Orders move from WooCommerce into Odoo without being retyped, which removes the hour and the error rate at the same time.
Custom Odoo module work
The multi-location behaviour the business actually had was not the behaviour the ERP shipped with. We built the difference rather than asking the business to change how it operated.

Client name withheld by request. Figures are the client's own, over the period stated. We are happy to provide references on a call.