عربي
Sectors

Wholesale & Distribution

01

One cycle connects the customer, inventory, receivables, and collections

Wholesale doesn't end when the invoice goes out.

Before an order is confirmed, the system has to know the customer's price, the allowed discount, their credit limit, their current balance, the installments or checks they still owe, and which warehouse will fulfill the order.

And once the order is confirmed, a second cycle begins: reserving quantities, picking, loading, delivery, proof of delivery, then following up on collection until the balance is settled.

That's why inventory and receivables are managed together: no new order goes out to a defaulting customer without approval, and no balance shows as paid just because a check was received but hasn't cleared.

02

It starts with the customer account

In wholesale, a customer account is far more than a name and a phone number.

The system brings together in one place:

Company details and branches.
Key contacts and how to reach them.
Tax ID and registration.
Territory and delivery route.
The assigned sales rep.
Pricelist.
Payment terms.
Credit limit.
Current outstanding balance.
Invoices and overdue amounts.
Checks received and their status.
Orders, deliveries, and returns.
The log of calls, visits, and promises to pay.
Documents and contracts.

So before selling, the rep can see the last order, the last contact, the balance due, the overdue amounts, the customer's special prices, and whether a new order is even allowed.

03

Wholesale pricing is never a single price

The price can vary by customer type, quantity, territory, brand, payment method, or an annual agreement.

The system manages multiple pricelists, such as:

Distributor. Wholesaler. Semi-wholesale. Institutional customer. Quantity-based pricing. Contract or time-limited pricing. Pricing in another currency. A temporary promotion or discount.

The correct price appears automatically once you pick the customer, the item, and the quantity.

And the rep can't change prices at will. The system enforces their allowed discount margin; anything beyond it routes to the commercial manager for approval, recording the price before and after the change, and the reason for the exception.

Inside Odoo
Wholesale pricelist with quantity discounts in Odoo
The wholesale pricelist: an automatic 10% discount above 24 units and 18% above 100. The price is computed from the quantity, no manual input.
04

Products, units, and variants

Accurate sales and inventory both depend on defining the product properly.

The item card includes:

Internal code and barcode.
Category and brand.
Color, size, and model.
Purchase unit and sales unit.
Pieces per carton or pack.
Weight and volume.
Suppliers and their prices.
Cost and sales price.
Minimum margin.
Available and reserved stock.
Substitutes or related items.

If a product is bought by the carton and sold by the piece or the pack, the system stores the relationship between units, so balances and prices never drift because of manual conversions.

And in businesses with thousands of variants, the model is defined once and the colors and sizes are generated from it: each variant with its own barcode and its own stock balance.

05

Imports and the true cost

The import cycle starts with a purchase order in the supplier's currency, and the shipment may pass through the factory, the port, freight, and clearance before it reaches the warehouse.

The system tracks:

The supplier and the purchase currency.
Quantities and prices.
Delivery terms and dates.
Advance payments and the balance due.
The shipment and its containers.
Goods in transit.
The exchange rate at every event.
Actual receipt.
The vendor bill and related expenses.

Landed cost

An item's cost is never just the supplier's price.

The shipment picks up costs along the way:

Freight. Insurance. Customs duties. Clearance. Inland transport. Port and demurrage fees. Related bank charges. Any direct cost of getting the goods in.

These expenses are then spread across the items by weight, volume, quantity, or value, whatever fits the shipment.

So each item enters inventory at its actual cost, and the sales margin is calculated on a real number, not on the purchase price alone.

06

Purchase planning

A purchasing decision is never based on the current balance alone.

The system combines:

Past sales.
Confirmed orders.
Reserved quantities.
Available stock across all warehouses.
Goods in transit.
Supplier lead times.
Minimum and maximum stock levels.
Fast and slow movers.
Seasons and expected large orders.

When a shortfall appears, it can be covered first from another warehouse, or added to the purchasing and import plan.

So you never buy a new quantity while the same quantity sits idle in another warehouse, and never accept a large order without knowing when you can supply it.

07

Sales start on any channel and run through one pipeline

A wholesale order may start from a phone call, WhatsApp, a field rep, a showroom, an institutional customer, or an online channel.

But every order enters the same cycle:

Contact → Quote → Price & credit review → Sales order → Picking → Delivery → Invoice → Collection

Every contact is logged on the customer account, and the manager can see how customers are distributed across reps, how many follow-ups happened, which orders are open, and which opportunities stalled without an order.

Telesales

During the call, the rep sees the customer's balance, their latest orders, their special prices, and what's available.

The quote or sales order is created from the call itself, instead of jotting the order on paper or WhatsApp and entering it later.

The field rep

The rep uses their phone to show items, prices, and availability, and to record an order, a visit, or a collection.

Orders and prices stay bound to the same access rights: being out of the office is never a license to bypass company policy.

08

Credit checks before the order is confirmed

Having the quantity in stock doesn't mean the order is ready to go.

Before the sales order is confirmed, the system reviews:

The customer's credit limit.
How much of it is already used.
Overdue invoices.
Checks that have not cleared.
Bounced checks.
The agreed payment terms.
Open orders not yet invoiced.
The value of the new order.

If the order exceeds the limit, or the customer has a significant overdue balance, it can move to Credit Hold instead of going straight to the warehouse.

The order is released after payment, or by the authorized approver, with a record of who approved the exception and why.

So sales growth never turns into uncontrolled growth in receivables.

Inside Odoo
Credit limit warning on a customer's sales order in Odoo
The system stops you before the mistake: this customer has hit their credit limit. The warning shows on the sales order before confirmation, with the total outstanding balance.
09

Reserving the goods

Once the order is confirmed, the system reserves the quantity for that customer, so it can't be sold again by another channel or another rep.

The order can be fulfilled from:

A warehouse assigned to the customer or territory.
The nearest warehouse.
The warehouse holding the full quantity.
Multiple warehouses, where split fulfillment is allowed.
Incoming stock on a shipment that has not arrived yet.

The system distinguishes between:

Physically available. Reserved for confirmed orders. In transit. Expected to arrive. Unavailable.

So a rep never promises a customer stock that shows in the balance but is already reserved for someone else's order.

Inside Odoo
Wholesale sales order with deferred payment terms in Odoo
A wholesale order on 30-day payment terms: quantities in the hundreds, pricelist prices, tax, and the total, all in one document.
10

Picking in the warehouse

The moment the sales order is confirmed, the picking order reaches the warehouse.

The process typically moves through these stages:

Awaiting picking → In progress → Partially or fully picked → Packed → Ready to load

The picker scans barcodes to verify the item, quantity, and variant. And sales sees what has been picked and what remains, in real time.

If the full quantity isn't available, the order isn't marked as complete. The available part can be delivered while the remainder stays open with an expected date.

Weights and loads

In businesses that move large volumes, the system uses each item's weight and volume to compute the order's totals.

That helps with:

Choosing the right vehicle.
Preventing overloading.
Grouping compatible orders on one trip.
Sequencing the load by delivery route.
Estimating delivery cost.
Inside Odoo
Wholesale delivery order with quantities and availability in Odoo
The wholesale delivery order: every item with its quantity and availability. Goods only leave the warehouse with a verified document.
11

Field delivery

After picking, orders are assigned to a vehicle, a driver, or a carrier as part of a defined trip.

The driver sees on their phone:

Customers and addresses.
The delivery sequence.
Items and quantities.
Amounts to collect.
Customer-specific notes.
Documents to hand over or collect.

And at drop-off they can record:

Location.
Arrival time.
The recipient's name.
A signature or photo as proof of delivery.
The quantity received.
The amount collected.
Any rejection, shortage, or return.

An order doesn't count as delivered just because it left the warehouse, only once the customer's receipt is proven, or the reason for non-delivery is recorded.

And at the end of the trip, returned goods, collected amounts, and documents are settled with the driver or the rep.

12

Supply contracts and institutional customers

A wholesale deal isn't always a quick one-off order. It may be an ongoing supply arrangement tied to a contract or an institutional purchase order.

In that case, the system keeps:

The quotation and its revisions.
Price validity.
The customer's purchase order.
The agreed quantities and schedules.
Delivery dates or batches.
Documents required with each delivery.
What has been delivered and what remains.
Invoices and amounts due.
Acceptance or receipt terms.

The contract can run across multiple deliveries and invoices without ever losing the link back to the original agreement.

13

The invoice doesn't close the sale

The invoice may be issued before or after delivery, depending on company policy, but its status stays tied to what actually happened.

For each order, the system shows:

Order value.
Quantity picked.
Quantity delivered.
Quantity remaining.
What has been invoiced.
What has been collected.
The balance due.
The due date.
Any subsequent return or discount.

A sales order is never closed just because the invoice went out, not while goods remain undelivered or the balance remains uncollected.

Inside Odoo
Wholesale customer invoices with payment status in Odoo
Customer invoices, each with its status (posted or partially paid) and the due date right in front of the accountant.
14

Collections are independent of the invoice

In practice, a rep may collect money from a customer without immediately deciding which invoices it settles.

So the system lets you record the collection first as a standalone payment on the customer's account, then reconcile it later against one invoice or several.

A collection can be:

Cash. Bank transfer. Card or wallet. Check. Collected by a rep or driver. One payment settling several invoices.

The statement shows a running balance across invoices, payments, settlements, and returns, instead of a detached list that never explains where the balance came from.

15

The check cycle

Receiving a check doesn't mean the money is in the bank.

A check moves through clear stages:

Received → In the portfolio → Deposited → Under collection → Cleared

And it can take an exceptional path:

Postponed, replaced, or bounced

For every check, the system keeps:

The customer.
The bank.
The check number.
The amount.
The due date.
The linked invoices or account.
Where it is currently held.
The deposit date.
The clearing result.
The replacement, if swapped.
The bounce reason and next steps.

Large batches of checks can be recorded and tracked by due date, with alerts before maturity and an immediate notification on a bounce.

And a customer's outstanding balance is only cleared according to the approved accounting policy for the check's status, so no customer shows as paid up while the check hasn't cleared.

16

Receivables follow-up

The aged receivables report splits customer balances by how long they've been overdue, showing reps, collections, and management:

Due today.
30 days overdue.
60 days overdue.
90+ days overdue.
Open promises to pay.
Checks coming due.
Bounced checks.
Customers over their credit limits.

Every collection call is logged with its outcome and the next follow-up date.

So collection never depends on a rep's memory or a manual sheet, and no customer promise is lost when the account moves to someone else.

Inside Odoo
Aged receivables report for wholesale customers in Odoo
Aged receivables: each customer's balance spread across due-date buckets. Overdue balances surface here before they pile up.
17

Returns and settlements

A customer may return an item because of a picking error, damage, a spec mismatch, or a commercial agreement.

The return starts from the original sales order or invoice, recording the reason, the condition of the goods, and the quantities.

After inspection, the goods go back to:

Available stock. Damaged. Needs repair. Awaiting a supplier decision. Not fit for resale.

Then the correct financial effect follows: a credit note, an exchange, a deduction on the balance, or a refund, per policy.

A customer's balance is never adjusted by hand without a stock move and a financial document explaining the change.

18

Sales commissions

Basing commissions on sales order value alone isn't enough: an order may be cancelled, partially returned, or never collected.

Commission can be earned on whichever basis the company adopts:

Invoicing. Collection. Goods issued. Production. Profit margin. A product or brand. A new customer. Hitting a target. A mix of conditions.

And the effect of returns, credit notes, and uncollected balances is deducted per policy.

So commissions are computed from actual operational data, not from a report the rep writes about themselves.

19

Multiple warehouses, one view of stock

Each warehouse keeps its own balance and its own operations, while management sees a single unified view.

The system tracks:

The balance of every item and variant at every location.
Reserved quantities.
Inter-warehouse transfers.
Goods in transit.
Inventory counts and discrepancies.
Fast and slow movers.
Dead stock.
Inventory value.
Which source fulfilled each order.

When goods move, they first leave to an in-transit location and only enter the receiving warehouse after scanning, so nothing vanishes between the two.

20

Inventory counts and reconciling differences

Cycle counts run regularly on specific items or locations, alongside a full inventory count when needed.

The counted quantity is compared to the expected balance, and every difference needs a reason, an owner, and an approval.

A difference can be traced back to:

An incomplete receipt.
An issue that was never recorded.
An order picked but never delivered.
A transfer still open.
A return put away in the wrong location.
Actual damage or loss.

An inventory count here isn't a way to bury the cycle's mistakes. It's how you pinpoint exactly where inventory went off track.

Inside Odoo
Physical inventory count screen with lots in Odoo
The physical count: book quantity against counted, with the difference per item, location, and lot. And adjustments need approval, not a quiet edit.
21

More than one sales channel

Wholesale may run alongside retail branches, an online store, or marketplaces.

All channels share the same product card, inventory, and accounts, but each keeps:

Its own pricelist.
Its own customers.
Dedicated stock, where needed.
Its delivery and collection policy.
Its commissions and expenses.
Its revenue, cost, and profitability.

So you can see wholesale's net return on its own, without building a separate system or duplicating product and customer data.

22

The accounting behind the operation

Every operation creates its accounting effect at the source.

Purchasing and imports set the item's cost and the supplier's account; receiving raises inventory value; a sale records revenue and cost of goods; a return reverses its effect; a collection settles the customer's account; and checks post according to their status.

Profitability can be tracked by:

Customer. Sales rep. Item and variant. Brand. Warehouse. Territory. Sales channel. Supply order or contract.

And shown separately:

Cash and banks.
Checks under collection.
Customer balances.
Supplier balances.
Inventory value.
Cost of goods sold.
Discounts and returns.
Delivery expenses.
Commissions.
Profit margin.

So management knows the difference between high sales, real profit, and cash actually collected.

23

Who owns the decision?

One person may hold several roles depending on company size, but every decision must have a clear owner.

Commercial management
Decisions they own
Pricing policy, discount limits, targets, and commercial exceptions.
Sales manager
Decisions they own
Customer allocation, pipeline and order follow-up, and rep performance sign-off.
Telesales
Decisions they own
Contact, order entry, and quoting, within their access rights.
Field rep
Decisions they own
Visits, orders, follow-ups, and the collections assigned to them.
Credit & collections
Decisions they own
Credit limits, overdue balances, promises to pay, and releasing held orders.
Purchasing & imports
Decisions they own
Suppliers, purchase orders, shipments, and delivery schedules.
Product management
Decisions they own
Codes, variants, units, weights, and item data.
Warehouse
Decisions they own
Receiving, reservation, picking, loading, transfers, and inventory counts.
Transport & distribution
Decisions they own
Trips, vehicles, drivers, proof of delivery, and end-of-trip settlement.
Customer service
Decisions they own
Complaints, returns, exchanges, and root-cause follow-up.
Treasury
Decisions they own
Cash, banks, checks, check portfolios, and settlements.
Finance
Decisions they own
Invoices, journal entries, statements, valuation, profitability, and reporting.

Some processes pass through several departments, but pricing, credit, releasing goods, and settling balances can never be left without a responsible owner.

24

Controls over the wholesale cycle

Access rights define what each user can see or change, and the approvals matrix sets clear boundaries for:

Discounts and exceptions.
Exceeding the credit limit.
Releasing a defaulting customer's held order.
Changing quantities after confirmation.
Partial delivery.
Returns and credit notes.
Transferring or settling an outstanding balance.
Replacing or postponing a check.
Inventory adjustments.

And the system records who created each operation, who approved it, who modified it, with the date and reason for every change.

25

What does management track?

The key indicators include:

Sales and profitability by customer, rep, and item.
Actual collections against sales.
Aged receivables and the overdue ratio.
Credit limit utilization.
Checks coming due and checks bounced.
Orders on credit hold.
Orders in picking and orders running late.
Partial and failed deliveries.
Rep and driver performance.
Delivery cost per territory or per order.
Fast, slow, and dead stock.
Inventory value and accuracy.
Supplier performance and pending shipments.
Margin after landed cost, discounts, and returns.
26

What does Odoo actually run?

Odoo brings into one cycle:

Customers, their data, and the contact log.
Reps, territories, and visit plans.
Products, variants, barcodes, and sales units.
Wholesale pricelists and tiered discounts.
Credit limits and payment terms.
Quotations, sales orders, and supply contracts.
Imports, purchasing, and currencies.
Shipments and landed cost.
Warehouses: reservation, picking, transfers, and inventory counts.
Loads, trips, and field delivery.
Proof of delivery and driver settlement.
Invoices and customer account statements.
Collections, checks, and their due-date cycle.
Aged receivables and promises to pay.
Returns and credit notes.
Sales commissions.
Accounting, costing, and profitability.
Access rights, approvals, and the audit trail.

As for prices, discount and credit limits, check policies, commission rules, warehouse priorities, and delivery routes: those are defined during your company's analysis phase. The wholesale cycle has to run on your actual policies, not a one-size-fits-all template for every distributor.