Industry blueprint
Odoo ERP for FMCG Distributors in Iraq
Odoo can connect purchasing, warehouse stock, sales orders, deliveries and accounting for FMCG distributors in Iraq. Its lot tracking, expiration settings, pricelists and replenishment tools provide a practical foundation. The implementation must still define how your team receives batches, sells cartons or units, reserves stock and records collections. Ever Digital maps those decisions before configuring the system, and separately assesses van sales, retailer ordering apps and other specialist distribution requirements.
Official Odoo Partner · Ever Digital

- Purchase
- Inventory
- Sales
- Accounting
One carton can create several different records.
A supplier sells you cartons. A warehouse counts cartons and loose units. A sales representative promises stock to a retailer, while accounting records the amount still to collect. If those teams use different item names or update their files at different times, the problem is larger than an inaccurate stock balance: the business cannot reliably explain what was ordered, picked, returned or paid.
FMCG distribution adds short shelf lives, frequent deliveries, changing promotions and customer-specific prices. A useful ERP rollout therefore begins with one representative delivery cycle, including the exceptions. Bring an actual purchase document, a sample retailer order, a return and a collection record. They reveal where the system needs a standard rule, a responsible person or a separately scoped extension.
Ever Digital · Odoo
Your Odoo industry blueprint
Follow the work from the first request to the operational result. Each stage shows the Odoo app and the configuration decision behind it.
- 01
Plan the supplier order
- Odoo app
- Purchase + Inventory
- Configuration decision
- Supplier references, order quantities and replenishment responsibility.
- Operational outcome
- Purchasing and the warehouse share an expected receipt.
- 02
Receive and identify stock
- Odoo app
- Inventory
- Configuration decision
- Units, locations, lots and relevant shelf-life dates.
- Operational outcome
- The batch entering stock can be traced later.
- 03
Confirm the retailer order
- Odoo app
- Sales
- Configuration decision
- Customer pricelist, quantity rules and agreed payment terms.
- Operational outcome
- The confirmed price and order are recorded together.
- 04
Reserve, pick and deliver
- Odoo app
- Inventory
- Configuration decision
- Reservation, removal strategy and partial-delivery process.
- Operational outcome
- Delivered quantities remain connected to stock movements.
- 05
Invoice the transaction
- Odoo app
- Sales + Accounting
- Configuration decision
- Invoice policy, finance review and document currency.
- Operational outcome
- The receivable reflects the agreed transaction.
- 06
Record and reconcile collection
- Odoo app
- Accounting
- Configuration decision
- Cash/bank responsibility and payment matching.
- Operational outcome
- Outstanding amounts can be explained and followed up.
Receive the batch you will later need to trace.
For products that require traceability, Odoo Inventory records lots or serial numbers and can hold expiration information. FEFO selects stock according to the configured removal dates. That is useful only when the receiving team enters reliable batch data and the product/category/location rules reflect your handling policy. A date field alone is not a food-safety programme or a guarantee that expired goods cannot be sold.
| Operational decision | Configuration and test |
|---|---|
| Cartons versus individual units | Define compatible purchase and sales units, packaging quantities and barcode conventions. Receive two cartons, sell part of one and reconcile the remaining stock. |
| Batch identification | Decide which supplier lot identifier becomes the traceable lot in Odoo. Test receiving the same product in two different batches. |
| Shelf-life handling | Set the relevant expiration, best-before, removal and alert dates. Check how FEFO allocates a delivery when one batch cannot cover the requested quantity. |
| Returns and quarantine | Define the return location and who decides whether goods can re-enter saleable stock. A returned quantity must not become available for picking before that decision. |

Odoo documentation · CC BY-SA 4.0 · CC BY-SA 4.0
Original documentation image, shown without altering the interface. The screenshot illustrates standard Odoo, not a customer implementation.
Keep retailer prices separate from stock decisions.
A supermarket account, a neighbourhood shop and a sub-distributor may buy the same product at different prices. Odoo Sales pricelists can express customer pricing, quantities and date-based rules. The relevant question is which rule should win for a particular order. Test customer assignment, minimum quantities, promotion dates and the currency of the quotation before transferring a full price file.
Do not treat a pricelist as an approval system. Standard sales prices can be overridden, so discount permissions, exception handling and any required approval workflow need explicit design. If a manager must approve sales below a margin threshold or release an order above a customer credit limit, demonstrate the exact behavior in the selected Odoo setup. An Approvals request is not automatically an enforced block on every sales document.
Recommended Odoo apps
| Odoo app | Why this app | Example in your business | Scope |
|---|---|---|---|
| Purchase | Connect supplier orders to expected receipts and vendor documents. | Order mixed FMCG lines and receive the quantities that actually arrived. | Standard Odoo |
| Inventory | Control stock locations, lot traceability and configured removal rules. | Pick from the appropriate batch and retain a traceable return movement. | Standard Odoo |
| Sales | Quote and confirm retailer orders with the agreed customer pricing. | Use the assigned pricelist and review a promotional quantity break. | Standard Odoo |
| Accounting | Connect customer invoices, supplier bills and payment reconciliation. | Track an outstanding retailer balance after a partial collection. | Standard Odoo |
| CRM | Organise prospective retail accounts and commercial follow-up when needed. | Track a new supermarket account before its first confirmed order. | Custom or optional |
| Approvals | Collect defined internal requests where an additional approval process is useful. | Review a proposed commercial exception; enforced sales blocking needs its own assessment. | Custom or optional |
Availability depends on the Odoo edition, hosting and subscription. Configuration, data migration and training are implementation work. Specialist connectors and extensions require a separate scope.
Make the warehouse handoff visible.
The warehouse needs to distinguish stock on hand, reserved quantities and expected receipts. Odoo can support multiple warehouses and internal transfers, but the layout should reflect actual operations. A receiving area, a picking location, a return area and a separate branch are not interchangeable concepts. Start with the smallest structure that gives your team reliable control.
A distributor may pick centrally and send goods to a branch, or deliver directly from a supplier for selected orders. Configure the agreed routes and responsible users, then test partial receipts, backorders and short picks. A driver route, a vehicle load, a salesperson territory and a warehouse transfer are different operational objects. Do not assume that creating a warehouse automatically creates a van-sales or route-accounting solution.
Close the loop with the finance team.
For Iraqi distributors working with IQD and foreign-currency purchases, agree the company currency, document currencies, rate source and responsibility for updating rates. Odoo supports transactions in currencies other than the company currency. The finance team must still approve how supplier bills, customer invoices, payments and exchange differences are recorded and reconciled.
Decide whether a collection is recorded by accounting after a bank deposit, by an authorised cashier, or through a separately designed field collection process. Test a partial payment, a returned sale and an unpaid balance. A successful delivery is not the same event as a fully reconciled invoice. Customer statements and management reports should tell the same story as the underlying records.
What Ever Digital would configure first.
The initial configuration follows the operating model agreed with your team. These decisions are practical work items, not a claim that every feature belongs in a fixed-price package.
- Product references, categories, compatible units, packaging quantities, barcodes and batch-tracking requirements.
- Warehouse locations, receipts, deliveries, returns, replenishment rules and transfers between stocking locations.
- Customer groups, assigned pricelists, payment terms and the agreed process for price and credit exceptions.
- User permissions for sales, purchasing, warehouse operations, cash handling and accounting review.
- Reports that answer operational questions: unavailable lines, expiring batches, outstanding orders and unpaid invoices.
- Role-based practice in English, Arabic or Sorani Kurdish, with the terminology and document layouts agreed during implementation.
Where a separate scope may be needed.
Assess offline van sales, GPS tracking, advanced route optimisation, mobile retailer ordering, promotion accruals, manufacturer rebate settlement and specialist proof-of-delivery requirements individually. Some may use additional Odoo applications; others need a connector or custom development. An API being available does not prove that a working integration exists for your accounting package, payment provider or delivery system.
If your representatives already use a dedicated sales application, define which system owns customers, prices, stock availability, orders and payment status. Specify retry behavior and how duplicate orders are prevented. Ever Digital can assess the integration, but the website does not announce an out-of-the-box connector to every local business service. Regulatory, tax and food-handling requirements also need separate confirmation by the responsible specialists.
Prepare data that can survive a real stock count.
Importing a spreadsheet is not the same as migrating an operating business. Before a trial import, remove duplicate item references, identify inactive customers and settle the meaning of each unit of measure. Agree a cutover date so old and new stock transactions are not mixed.
- Product file: unique reference, name, category, unit, barcode, tracking policy and the correct packaging relationship.
- Opening inventory: quantity by product, warehouse/location and lot, with expiration information where required.
- Commercial data: supplier references, purchase prices, customer pricelists, payment terms and open orders.
- Finance data: opening balances, unpaid customer invoices and supplier bills, reviewed and signed off by the finance owner.
- Reconciliation evidence: compare quantities, valuation and receivables after a test import before approving the production migration.
Prove one delivery cycle before expanding.
A useful acceptance test starts with a purchase order and ends with a reconciled customer payment. Receive two lots with different dates, quote the intended retailer price, reserve and pick stock, process a partial delivery, return damaged goods and record the collection. The sales team, warehouse and finance team should each confirm that their documents and balances are correct.
Expand to more warehouses or product groups after that core cycle is stable. Training should cover the exceptions people meet daily, not just a perfect demonstration order. At handover, assign responsibility for new products, price changes, stock corrections and support requests. Scope, data readiness and integration needs determine the delivery plan; a public page cannot promise a go-live date for an unseen operation.
Questions businesses ask
Can Odoo manage FMCG expiry dates and FEFO?
Yes, Odoo documents expiration tracking for products managed by lots or serial numbers and FEFO removal based on configured removal dates. Ever Digital would test your receiving data, date rules and picking behavior. This does not replace food-safety procedures or automatically establish every sale-blocking rule.
Can we purchase cartons and sell individual pieces?
Odoo supports units of measure and packaging concepts. The conversion must be compatible with the product and agreed units. We test purchases, partial sales, returns and stock counts so a carton is not accidentally treated as one individual piece.
Is offline van sales included in standard Odoo?
We do not present offline van sales, route accounting or GPS tracking as included in the standard workflow described here. Those requirements need a demonstration and separate assessment of the selected app, devices, connectivity and integration design.
Can different retailers receive different prices?
Odoo Sales supports pricelists with configurable rules. Customer assignment, quantity breaks, validity dates and currency need configuration. A price override or commercial approval policy should be assessed separately from the pricelist itself.
How would IQD sales and foreign-currency purchases work?
Odoo supports multi-currency transactions. Your finance team must approve the company currency, active currencies, exchange-rate ownership, journals and reconciliation scenarios. We do not claim an automatically compliant Iraq statutory setup from enabling currencies.
What should we bring to an FMCG assessment?
Bring representative product and customer files, a purchase order, a retailer invoice, warehouse/location details, a batch or expiry example, a return and a collection scenario. Include your existing sales or accounting systems and explain any field or offline work.
Does a Starter package include the complete distributor solution?
Starter packages define their own standard configuration scope and implementation-hour limits. The authoritative package pages show the current terms. Advanced migration, custom van sales, integrations and specialist reporting must be assessed separately.
Sources and factual scope
Capabilities checked against official Odoo documentation. These are planning examples, not promises that every feature is included in a Starter package.
- Odoo: expiration dates
- Odoo: FEFO removal
- Odoo: units of measure
- Odoo: pricelists
- Odoo: multi-currency accounting
- Odoo: warehouses
Reviewed:
Ever Digital
Bring your real workflow to the conversation.
Tell us how you sell, stock, deliver or service. We will identify the standard apps, decisions and any extensions your implementation needs.
View Starter packages Current implementation fees and included scope are maintained on the Starter package pages. Odoo licences, hosting and custom work are separate.