FMCG distribution in Pakistan operates on a layered model that most ERP systems were not designed for. A typical mid-size FMCG brand sells to master distributors, who sell to area distributors, who sell to wholesale markets and retail outlets. The brand owner can see their own primary sales clearly what leaves the factory gate. But secondary sales (what moves from distributor to retailer) are often invisible until the distributor places a replenishment order, and tertiary sales (what moves from retailer to consumer) are entirely unknown.
This visibility gap creates a cascade of problems: overloading distributors with stock during schemes, being blind to geographic stockouts until retailers switch to a competitor, and resolving returns with no documentation of what was originally shipped to which location.
This post covers how Odoo structures the distribution chain for FMCG companies managing distributor relationships, pricing, credit, secondary sales reporting, van sales, and returns in a single system rather than across spreadsheets and WhatsApp groups.
Modelling the FMCG Distribution Chain in Odoo
Customer Hierarchy:
Company to Distributor then Sub-Distributor
Odoo's customer master supports a parent child hierarchy. A master distributor is a company record. Sub distributors under that master are child contacts within the same company. This structure allows you to:
Apply pricing and credit terms at the master distributor level, inherited by sub-distributors
Report on sales at the master distributor level (total group revenue)
Invoice and manage credit limits at the individual sub-distributor level
Track outstanding balances across the entire distribution group
For FMCG brands with large distributor networks, this eliminates the problem of treating each sub-distributor as an isolated customer with no relationship to their master which is what happens in generic accounting software.
Territory and Route Assignment
Sales territories (cities, zones, areas) are defined as segments in Odoo's CRM module. Each distributor is assigned to a territory, and each territory has a responsible sales representative. When a sales rep logs secondary sales data or creates a visit report, it is automatically associated with the correct territory and distributor.
This creates a geographic sales picture that head office can review without waiting for sales rep WhatsApp summaries.
Distributor Pricing — Multiple Price Lists Without Chaos
FMCG distribution typically involves several pricing layers:
Factory gate / primary price (brand owner to master distributor)
Distributor trade price (distributor to retailer notional, for RSP calculation)
Trade scheme pricing (volume discounts, off-invoice discounts, free goods)
Modern trade pricing (separate prices for hypermarkets and chain stores)
Export pricing (if applicable)
Odoo manages all of these through pricelists named price configurations that can be assigned to specific customers or customer groups. A customer tagged as Modern Trade automatically receives the modern trade pricelist when their order is created. A distributor enrolled in a scheme gets the scheme pricing applied automatically to qualifying products and quantities no manual calculation required at the time of order entry.
Free Goods and Buy X Get Y Schemes
Trade schemes in FMCG often include free goods buy 12 cases, get 1 free or buy PKR 100,000 of product, get a value equivalent free item. Odoo's pricelist and promotion engine supports these configurations directly:
Minimum quantity or value thresholds to trigger the offer
Free product SKU and quantity per qualifying purchase
Date ranges for scheme validity
Specific customer or customer group eligibility
When a qualifying order is confirmed, the free goods line is added automatically. The scheme is tracked, and the cost is reportable separately allowing trade marketing to measure the actual cost of each promotion against incremental volume generated.
Credit Management Across the Distributor Network
Credit control in FMCG distribution is a constant operational tension. Distributors with strong sell-through deserve higher limits; distributors sitting on slow-moving stock should not be extended further. Without a system, credit decisions are made on instinct and relationship history.
In Odoo, each distributor is assigned a credit limit. When a new sales order is confirmed:
Odoo checks the distributor's outstanding balance plus the new order value
If the total exceeds the credit limit, the order is blocked from delivery confirmation
A notification is sent to the credit controller or sales manager for manual override
The override is recorded with the approver's name and timestamp
This removes the scenario where a distribution team ships 200 cases to a distributor who already has 90 days of unpaid invoices a situation that is common precisely because no system is enforcing the credit limit at the point of dispatch.
Secondary Sales Data — Making the Invisible Visible
The biggest visibility gap in FMCG distribution is secondary sales what distributors sell to retailers. Without this data, the brand owner is flying blind. They know what the factory shipped they do not know what is actually moving through the channel.
Distributor Sales Reporting in Odoo
There are two common approaches for capturing secondary sales data in Odoo, depending on the sophistication of the distributor:
Option A Distributor data upload: Distributors provide a weekly or monthly sales file (Excel, CSV). This is imported into Odoo using a configured import template, creating secondary sales records linked to the distributor and their customer data. Odoo aggregates this across all distributors into a single secondary sales view by SKU, territory, and period.
Option B Shared Odoo access for distributors: Larger distributors or company-owned distribution entities can be given limited Odoo portal access. They enter their sales and return data directly, eliminating the import step. This is more accurate but requires distributor engagement and training.
Why secondary sales data matters: A brand sees strong primary sales in April 2,000 cases of a flavoured snack shipped to distributors. But without secondary sales data, they do not know that only 800 cases have moved to retailers. The remaining 1,200 cases are sitting in distributor warehouses approaching their three-month sell by date. The brand has unknowingly pushed the problem downstream and now faces returns or write-off requests.
Van Sales and Field Sales Force Management
For FMCG companies with their own van sales operations company owned vans serving retail outlets directly Odoo supports van sales workflows through its mobile sales application.
Van Load-Out and Return
Each morning, the van is loaded with stock. Odoo records this as an internal stock transfer: warehouse: van (a virtual warehouse location in Odoo). The van driver has a mobile device running Odoo's sales app in offline mode.
During the day, the driver:
Creates a sales order for each retail stop
Records partial deliveries (a retailer orders 10 cases, only accepts 7)
Records cash collected per stop
Notes any returns picked up from the retailer
At end of day, the device syncs. Odoo records: stock sold out of the van, cash collected per driver, returns received, and remaining van stock. The evening van audit matches the physical count against the system discrepancies are flagged immediately.
Retail Outlet Listing and Visit Scheduling
Each retail outlet is a customer record in Odoo, tagged by type (general trade, modern trade, institution, wholesale) and geography. Sales routes which outlets a van visits on which day of the week are configured as route plans. Odoo's scheduling shows whether each outlet on today's route was visited and whether an order was captured.
This replaces the sales manager trying to verify via WhatsApp whether Salesman X actually visited 35 outlets or just 20 the system has a visit record with timestamp and GPS location if the mobile app's location features are enabled.
Trade Returns and Damaged Goods
Returns in FMCG distribution are a consistent operational headache expired product brought back from retailers, damaged cases from transit, incorrect deliveries. Without a system, returns are recorded informally and often result in credit notes being issued without verification of the return quantity or condition.
In Odoo, returns are processed as reverse transfers:
- A return is created against the original delivery order preserving the link to the original sale
- Returned items are received into a quality check location, not directly back into sellable stock
- The quality team inspects and decides: return to sellable stock, quarantine, or write off
- A credit note is generated against the original invoice only after the return is confirmed
This prevents the scenario where a distributor claims a credit for 50 cases returned but only 30 physically arrive at the warehouse the return quantity in the system must match the physical receipt before the credit note is issued.
Multi Warehouse Distribution Across Cities
FMCG companies with city level distribution typically operate multiple warehouses a main production warehouse plus regional distribution centres. Odoo supports multi-warehouse configurations natively:
| Warehouse | Function | Stock Visibility |
|---|---|---|
| Main Production Warehouse | Finished goods storage, primary dispatch | Full all lot and expiry data |
| Regional Distribution Centre A | City level stock holding for local distributors | Full receives from main, ships to distributors |
| Regional Distribution Centre B | Secondary city coverage | Full same as RDC A |
| Van (Virtual Warehouse) | Field sales stock loaded and returned daily | Full loaded out and reconciled each evening |
Each warehouse has its own stock, its own incoming and outgoing operations, and its own replenishment rules but head office sees consolidated inventory across all locations in a single dashboard. Stock transfer between warehouses generates an inter warehouse transit record, so stock in transit is never double counted.
Reporting That Distribution Managers Actually Use
Generic accounting software produces financial reports. What distribution managers actually need are operational reports that Odoo generates natively:
Stock age report: Which lots are approaching their removal date, by warehouse
Distributor performance: Primary sales, secondary sales, and outstanding balances per distributor
SKU velocity: Which products are selling fast in which territories used to adjust production planning
Scheme uptake: Which distributors are participating in the current scheme and at what volume
Return rate by SKU: Which products are generating the most returns and from which distributors
Sales rep coverage: Which territories are being visited and converting to orders
Operational visibility in practice: Monthly distributor review used to take half a day of data compilation from Excel files and WhatsApp messages. With Odoo, the distribution manager opens a single dashboard: distributor by distributor primary sales vs target, outstanding balance vs credit limit, expiring stock in each distributor's holding. The review meeting can focus on decisions, not data collection.
FBR Integration for Distributor Invoicing
For FMCG companies selling to registered distributors in Pakistan, FBR compliant invoicing is a requirement. Odoo can be configured to connect to the FBR PRAL system for real-time invoice reporting. Sales invoices issued to distributors are submitted to FBR at the point of posting no separate entry into the FBR portal.
This is particularly relevant for Tier-1 FMCGs supplying modern trade, where the retailer is a registered taxpayer and the supply chain needs to be fully documented for input tax credit purposes.
When Is the Right Time to Implement a Distribution ERP?
Most FMCG companies move to an ERP when one or more of the following becomes unmanageable:
More than 5 active distributors credit and pricing management outgrows Excel
More than 3 SKUs or product lines secondary sales tracking becomes a manual job in itself
First return dispute no documentation makes resolution impossible
First audit or compliance inquiry reconstructing who received which lot requires days of work
More than 2 salespeople route coverage and order capture can no longer be managed by phone calls
If your distribution operation has crossed any of these thresholds, the operational cost of manual systems is already measurable in time spent on reconciliation, errors in credit notes, stock that expires in distributor warehouses, and distributor relationships damaged by disputes over returns.