Skip to Content
Skip to content
Case study ยท Distribution

Wholesale Trading & Distribution

Two warehouses, 4,500 SKUs: dealer pricelists, min/max replenishment, wave picking and AVCO costing to lift stock accuracy and cut month-end time.

Odoo SalesOdoo PurchaseOdoo InventoryOdoo BarcodeOdoo Accounting

Implementation blueprint based on the patterns of real Odoo projects. Company names are illustrative, so the configuration and the lessons apply directly to your business.

1. Company profile

"Shree Ganesh Industrial Supplies" (fictional, based on typical partner projects such as the Dallas parts distributor case where inventory accuracy went from 67 % to 96 % in 90 days).

  • Distributor of bearings, fasteners and power tools; 4,500 SKUs; 2 warehouses (Ahmedabad main, Surat branch).
  • 25 users: 8 sales, 6 warehouse, 4 purchase, 4 accounts, 3 management.
  • Currently on Tally + Excel; stock is checked by phone; dealers get prices from a PDF.

2. Pain points (as-is)

  1. Stock accuracy ~70 %; frequent stock-outs on fast movers, dead stock on others.
  2. Pricing errors (dealer, retail and project prices kept in Excel).
  3. No visibility of pending deliveries/backorders.
  4. Month-end takes 12 days; debtor follow-up is manual.
  5. Branch transfers recorded twice (two Tally companies).

3. Apps

Sales, CRM, Purchase, Inventory, Barcode, Accounting (India localisation), Documents, Spreadsheet (dashboards), optionally eCommerce B2B portal (Phase 2). Plan: Standard if single company with branches as warehouses; Custom if the branches are separate GSTINs/companies with inter-company flows.

4. Key design decisions

Topic Decision Why
Companies 1 company, 2 warehouses (or branches if separate GSTIN) Simple transfers; one stock view
Product categories By product family; AVCO, automated valuation Prices fluctuate; average cost is fair
Tracking Serial numbers only for power tools (warranty) Bearings/fasteners untracked
Receipts 1 step (small items) Speed
Deliveries 2 steps: Pick โ†’ Ship, picking by wave per zone Many small lines per order
Replenishment Min/max reordering rules, preferred vendor per product; v20 suggested min/max Fix stock-outs
Pricing Pricelists: Dealer, Retail, Project; quantity breaks; v20 price rules per packaging One source of truth
Credit control Customer credit limit (Accounting settings > Sales credit limit) Stop risky orders
UoM Box of 100 vs piece: same UoM category "Unit"; packagings for boxes Correct conversions

5. Step-by-step configuration

  1. Settings > General: company GSTIN, logo, document layout; activate Multi-currency only if imports.
  2. Accounting > Configuration: Indian CoA (auto-installed), GST taxes (CGST/SGST/IGST 5/12/18/28 %), fiscal position "Inter-State" (auto-detect by state), journals, bank.
  3. Inventory > Settings: Storage Locations โœ”, Multi-Step Routes โœ”, Packages โœ”, Lots & Serials โœ”, Barcode โœ”, Wave Transfers โœ”, Batch Transfers โœ”.
  4. Warehouses: AHD (Outgoing: Pick + Ship), SRT. Resupply SRT from AHD: on SRT warehouse tick Resupply From AHD โ†’ inter-warehouse route.
  5. Locations: AHD/Stock/Zone-A/Rack-01โ€ฆ (type Internal); barcodes on each location (print location labels).
  6. Product categories: Bearings, Fasteners, Power Tools โ†’ costing AVCO, valuation Automated, stock accounts.
  7. Import products (internal ref, barcode, category, UoM, cost, sales price, HSN code, GST tax, vendor, lead time).
  8. Reordering rules: import min/max per product per warehouse; trigger Auto. In Odoo 20, use the suggested min/max column (demand history, days of coverage).
  9. Sales > Settings: Pricelists โœ” (advanced rules), Discounts โœ”, Customer addresses โœ”, Quotation approval (Studio rule if discount > 10 %).
  10. Pricelists: Dealer = formula โˆ’12 % on Sales Price, round 1.00; Project = fixed prices imported; quantity breaks (min qty 100 โ†’ extra โˆ’3 %).
  11. Purchase > Settings: Purchase Agreements โœ” (blanket orders with key vendors), Vendor warnings โœ”, Bill control = received quantities, 3-way matching โœ”, PO approval above โ‚น2,00,000.
  12. Accounting: follow-up levels (7 days email, 15 days email + call activity, 30 days letter + block via warning), payment terms 30/45 days, bank sync, reconciliation models.
  13. Dashboards: Spreadsheet with stock value by category, slow movers, sales by dealer, AR ageing.

6. To-be daily process

  • Sales: salesperson quotes in Odoo (dealer pricelist auto), WhatsApp/email PDF โ†’ confirm โ†’ warehouse gets the pick.
  • Warehouse: morning wave per zone on mobile barcode โ†’ pack table โ†’ Ship step โ†’ delivery slip + e-way bill.
  • Purchase: daily review of Replenishment report; RFQs auto from rules; blanket-order release for contracted vendors.
  • Accounts: invoices from delivered SOs (batch), bank reconciliation daily, follow-ups twice a week.

7. Data migration specifics

  • Tally stock summary โ†’ opening inventory with AVCO cost per item per warehouse.
  • Dealer outstanding (bill-wise) โ†’ open invoices against opening clearing account.
  • Do a full physical count over the go-live weekend; import the counted quantities.

8. KPIs

Inventory accuracy (cycle count variance), fill rate / OTIF, stock turns per category, dead stock > 180 days (v20 stock aging report), DSO, gross margin by dealer.

9. Pitfalls

  • Don't mix "Box" and "Piece" as separate products; use packagings (v19+ merged into UoM).
  • Set the removal strategy only if needed; FIFO default is fine.
  • Turn on cycle counts per location (Inventory frequency) instead of yearly big-bang counts.
  • AVCO + negative stock = wrong costs. Enforce receipts before deliveries.

10. Version notes

v18 v19 v20
Perpetual valuation entries on moves Valuation closing entry at month-end; "suggested quantity to replenish" from sales history; multiple routes on SO lines Suggested min/max, stock aging, allocation from forecast, vendor quality rate, default Incoterm per vendor, bill-to-PO matching warnings, pay vendor bills via PISP

Planning an Odoo project like this one?

I have implemented these flows for real businesses. Let's map your process and see how Odoo fits, free discovery call.