Tori Solutions
May 27, 2026 · 5 min read

A Dhaka-based buying house with 8 staff was managing sourcing for 3 European fashion brands across 25 Bangladeshi garment factories. In their peak season, they handled 200–250 orders simultaneously.
Each type of document had its own Excel file:
The team was skilled and experienced. But the system required constant manual coordination. When a buyer changed a PO quantity, four files had to be updated. When a factory delayed shipment, the LC tracker, shipment schedule, and buyer update email all had to be handled separately. Data about the same order existed in multiple places, and keeping them synchronized was a full-time task in itself.
The implementation mapped the buying house's actual workflow directly into Odoo's Sales, Purchase, Inventory, and Accounting modules.
When a buyer sends a PO, it becomes an Odoo Sales Order under the buyer's customer profile. The SO captures style details, quantities, delivery dates, price terms, and buyer-specific requirements as notes. All buyer communication is attached to the SO record in the chatter.
Once the buyer SO is confirmed, a corresponding Purchase Order is created for the supplier factory. The PO references the SO number, so every factory order is traceable back to the buyer order that created it. Lead times, compliance requirements, and inspection clauses are captured in the PO notes.
The Proforma Invoice (PI) to the buyer is generated directly from the Odoo Sales Order — product descriptions, quantities, unit prices, and total values are already there. The Commercial Invoice (CI) follows the same template, generated at shipment confirmation. What previously took 2 hours per document (copy-pasting from the PO into a Word template) takes under 5 minutes.
A custom field set was added to the Sales Order for LC details: LC number, issuing bank, LC date, expiry date, and last date of shipment. A color-coded dashboard view shows all open LCs, their expiry status, and whether the corresponding shipment has been confirmed. The finance team monitors this view daily.
When goods are ready to ship, the factory confirms the shipment in Odoo by creating a Delivery Order. The Packing List is generated from this delivery record — carton count, gross/net weight, measurements, and HS codes. The template is configured once; every subsequent packing list is generated in minutes.
Before: Updating a PO quantity change from a buyer required manual edits across 3–4 spreadsheets. Risk of missing an update was high.
After: Editing the Sales Order quantity updates the linked purchase order prompt automatically. One change, one record, everything in sync.
Before: Preparing a buyer progress update took 30–45 minutes of pulling data from multiple files.
After: The buyer pipeline view shows every order, its production status, inspection status, and shipment ETA in one screen. Preparing a buyer update takes under 5 minutes.
Before: LC expiry monitoring required someone to manually scan the LC tracker spreadsheet every morning.
After: Orders with LCs expiring within 14 days are flagged automatically in the dashboard. No manual scanning required.
The 10 spreadsheets still exist in a shared drive. They haven't been opened in 4 months.
Reach out to discuss how Tori Solutions can help with your specific requirements.
Tell us what's slowing you down. We'll review your setup and map out what needs fixing.
Start a conversationarrow_forward