You probably need this if…
- Your website and your stores hold separate stock numbers, so one of them is always wrong.
- Cash-up is a spreadsheet, and card settlements are reconciled days later, by hand.
- Marketplace orders arrive by email or CSV and someone re-keys them.
- You can see revenue by channel but not margin by channel, because fees and landed cost sit somewhere else.
- Nobody can say what a return actually cost you.
What's already built
Modules configured
Point of sale with offline-tolerant tills, e-commerce storefront, inventory with multi-warehouse and multi-location, purchasing with reorder rules, accounting with a retail chart of accounts, CRM, loyalty, and returns and exchanges.
Automations running
Channel-to-stock allocation with safety-stock reservation, automatic invoice and journal posting per order, payment-processor payout matching, per-till cash declaration and variance capture, reorder-point generation of draft purchase orders, and inter-store transfer suggestions.
AI agents
An Inventory Agent that watches cover by SKU and location, and proposes reorders, transfers and listing pulls with the reasoning shown; a demand signal that separates promotion lift from underlying trend.
Reports and documents
Receipts, invoices and credit notes in your layout, daily cash-up pack, margin by channel after fees and landed cost, ABC and dead-stock analysis, and a stock valuation that agrees with the general ledger.
The system, before we touch it
The trading board
Three channels, one stock pool, one set of journals. Orders and value per channel across the top; the flow from channel to posted COGS in the middle; availability by SKU underneath, with the Inventory Agent's open suggestions and the day's cash-up on the right. Everything on this screen is one click from the transaction behind it.
One order, followed all the way down
Order lines on the left with what the order actually earned after processing fees and delivery; the audit trail in the middle, every record with the document that created it; the balanced journal entry and the bank match on the right. This is the screen that answers “prove it” — for an auditor, or for you.
Illustrative data. Your instance is configured to your entities, currency and chart of accounts.
What we tailor
Your chart of accounts and tax setup, your pricing and promotion rules, your receipt and invoice layouts, your store and warehouse topology, your loyalty mechanics, and the channel connectors you actually sell through. Landed-cost model is configured against your real freight and duty structure, not a default.
Replicate a broken discount hierarchy because it's what the old system did. We'll map it, show you what it costs, and let you decide.
Weeks to live, in phases
Typical first store trading in 8–10 weeks. Multi-region groups run longer because we go live location by location.
Connects to
What it moves
- Oversell rate
- Stock accuracy by location
- Days of cover
- Cash-up variance
- Days to reconcile card settlement
- Margin per channel after fees
We baseline each of these in the fit review so the change is provable rather than asserted.
Yours at the end of the engagement
- The production system
- Configuration documentation
- Connector code in your repository
- The retail chart of accounts and its mapping
- Till and store runbooks
- Role-based user guides
- The reporting layer
Relevant experience
End-to-end operations for a multi-branch fast-food chain (Pakistan) — online orders and POS through kitchen, inventory and accounting in one system.
Multi-tenant Odoo on shared infrastructure with strict isolation between tenants.
Metabase and Power BI reporting layers over live Odoo accounting and operations data.
Common questions
What happens when the internet drops mid-service?
Tills keep selling against a local cache and sync when the connection returns. The reconciliation logic assumes this will happen and is built to resolve it, rather than treating it as an error state.
Can we keep our existing storefront?
Usually yes. Shopify, WooCommerce and custom storefronts connect through the integration layer; Odoo becomes the source of truth for stock, pricing and orders. We'll tell you honestly when replacing the storefront is cheaper than integrating it.
How is this different from the Restaurants solution?
Retail assumes you sell stock you bought. Restaurants assumes you sell something you made from stock you bought — which needs recipes, yields and kitchen routing. If you run both, we start from Retail and add the recipe layer.
Does the Inventory Agent order things by itself?
Not unless you turn that on, and not above a threshold you set. It drafts, it explains, you approve. Every action it takes is logged against the record.