Trading and Commerce Case Study

Odoo Enterprise for Trading Companies: Landed Costs, Price Lists and Margin per Line

An importer and distributor now adds freight, duty and clearing charges to the receipts they belong to as soon as the bills arrive, instead of estimating them at month-end. In Odoo Enterprise, its customer price lists and margin per order line work from real landed costs.

Trading and CommerceOdooStarClient name withheld
Freight, duty and clearing charges flowing from a shipping container into a stock receipt and on to a sales order whose lines show their margin
Scroll
Project at a Glance

Who We Worked with and What We Delivered

Client

An importer and wholesale distributor of household and kitchenware products in the UAE

Solutions

Services

Client confidentiality: we are not allowed to disclose the name or address of this client. The project details below are shared with that in mind.

Apps and modules in this project

  • Accounting
  • Purchase
  • Inventory
  • Landed costs
  • Sales
  • Spreadsheet dashboards

The Challenge

The client imports household and kitchenware products from overseas suppliers and sells them to supermarkets, independent retailers and hospitality buyers across the UAE. Its books ran on a standalone accounting package, while stock, costing and pricing lived in spreadsheets kept up to date by a few experienced people.

The biggest blind spot was cost. Freight, insurance, customs duty and clearing charges arrived on separate bills from forwarders and agents, often after the goods had been received and in many cases after they had been sold. Finance spread these charges with an estimated uplift at month-end, so the cost behind each quotation was a guess and the real margin on a shipment was only known long after the sales team had moved on.

Pricing had grown the same way. Key accounts had their own spreadsheets of agreed prices, discounts were negotiated by phone, and nobody could say with confidence which customers or product lines were profitable. These were the pain points we agreed to remove, and they match the typical challenges we see in Trading and Commerce:

  • Landed costs estimated after the goods had sold, instead of recorded when they arrived
  • Customer prices scattered across spreadsheets, with no approved price list
  • No margin per order line, so thin or negative margins went unnoticed
  • Credit extended on trust, with overdue balances checked by hand
  • An accounting system with no view of purchases, stock or sales orders

Our Approach

We began with a free consultation, then ran workshops with purchasing, the warehouse, sales and finance. Together we mapped the full import cycle: the purchase order to the supplier, shipment, customs clearance, receipt at the warehouse, the supplier, forwarder and agent bills, and finally the sale. Seeing the cycle end to end showed exactly where each cost appeared and who knew about it first.

The fit-gap review was reassuring. Standard Odoo Enterprise covers this cycle well: landed costs, multi-currency purchasing, price lists, sales margins, credit limits and UAE VAT are all built in. The design therefore relied on configuration rather than custom code, which keeps each future upgrade through Odoo's own upgrade service predictable.

We agreed a phased plan with a sign-off at the end of each phase:

  1. Accounting, the chart of accounts and UAE VAT, tested on the client's own transactions
  2. Purchase, Inventory and landed costs, rehearsed on real past shipments
  3. Sales, price lists, margins and credit limits, followed by a supported go-live

Data migration ran alongside the build. Customers, vendors and products were cleaned and de-duplicated, and product weights and volumes were completed so that charges could be split fairly. Opening stock values, receivables and payables were test-loaded on a copy and reconciled with finance before the final import. Each team had role-based training on a test database built from its own data, and finance ran a parallel month-end close before the old accounting package was retired.

The Solution

Landed Costs Posted against Every Receipt

Freight, insurance, customs duty and clearing charges became landed cost products, each with a default split method: freight by volume, duty by current cost and clearing charges equally across the products on a receipt. When a forwarder or customs bill is entered as a vendor bill, the accountant creates the landed cost from it and selects the validated receipts it belongs to.

The client chose average costing with perpetual inventory valuation, so validating a landed cost raises the average cost of the products concerned and adds the charge to their stock value at once. Customs duty and clearing charges are billed at clearance, so they are posted as the goods arrive, and freight is added as soon as the forwarder's bill comes in. The cost behind the next quotation already includes what it took to bring the goods into the warehouse.

Customer Price Lists and Margin on Every Line

The spreadsheets of agreed prices became price lists in Odoo Sales: one for each customer segment, such as supermarkets, independent retailers and hospitality buyers, plus account-specific lists for key customers, with rules by product category, minimum quantity and validity dates for promotions. Some rules are formulas based on cost plus a markup, so when a landed cost raises a product's average cost, the price follows.

The Margins setting is switched on in Sales and the margin columns are shown on order lines, so every quotation shows the margin and margin percentage on each line and for the order as a whole. Sales managers review thin margins before an order is confirmed, and once the goods are delivered, the cost on each line reflects the value of the stock actually shipped.

Credit Limits and Payment Follow-up

Every trade customer has a credit limit on its contact record. When a quotation or invoice would take a customer past that limit, Odoo shows a warning on the document. The warning does not block the order, so the agreed rule is that the salesperson refers it to the sales manager before confirming. Overdue balances are chased with follow-up levels in Odoo Accounting, which send reminders and schedule activities for the credit controller instead of relying on a manual list.

One Ledger and One Set of Numbers

Purchasing, stock, sales and VAT now run in one database with one ledger, and a spreadsheet dashboard on live Odoo data shows margin by customer and by product category alongside receivables. The owners review profitability while there is still time to act on it, and our OdooStar team supports the system as new suppliers, product lines and customers are added.

Facing the same challenge? Tell us about your project.

The Results

  • Freight, duty and clearing charges are posted against the receipts they belong to as the bills arrive, instead of being estimated at month-end.
  • Every quotation shows margin per line, so thin or negative margins are caught before an order is confirmed.
  • Agreed customer prices live in approved price lists rather than in personal spreadsheets.
  • Credit limit warnings appear on quotations and invoices, and overdue customers are followed up from the system.
  • Month-end close has become a check of figures already posted, not a reconstruction of costs.
  • The owners compare profitability by customer and product category from live data.

Lessons for Similar Projects

  1. Map the whole import cycle, from purchase order to sale, before configuring anything. Costs hide in the handovers between departments.
  2. Complete product weights and volumes before go-live, because fair landed cost splits depend on master data that is often missing.
  3. Choose average or FIFO costing from the start. Landed costs only reach product cost, and therefore margins, with one of these methods.
  4. Enter forwarder and customs bills as soon as they arrive. A landed cost validated after part of a shipment has been delivered only revalues the stock still on hand, so goods already sold never carry it in their margin.
OdooStar by Star Bit Solutions

Planning a Similar Project?

Tell us how your imports, pricing and costing work today. We will show you how landed costs and margin per line would work in Odoo Enterprise on your own data.

Not Sure Which Solution Fits?

Tell us about your business and we will recommend the right starting point, free of charge.