Wholesale order management: how do you connect ERP, finance, fulfilment and customers?
A practical guide to the connections behind wholesale orders, stock, dispatch, invoices and customer updates.
- 01Map
- 02Connect
- 03Confirm
- 04Reconcile
- 05Improve
Wholesale order management works when the systems a distributor already uses share one version of each order. Let one system own each business fact, then connect the handoffs: sales channels send orders to ERP, ERP releases approved work to the warehouse, confirmed dispatch returns to ERP, finance receives the right invoice data, and customers and reps see the actual status. Give every transfer a shared order or line ID, an acknowledgement and a way to recover when it fails.
A buyer sends a purchase order by email. Sales keys it into the ERP. The warehouse receives a spreadsheet. Finance invoices from the original PO, while customer service asks the warehouse what shipped. Each team has software; the same order still gets entered and interpreted several times. This guide shows how to connect those tools so the next team works from the last confirmed fact.
What does wholesale order management automation actually connect?
Wholesale order management covers every step a B2B order passes through after the buyer sends it: capture, credit and stock checks, picking, dispatch, invoicing, payment and customer updates. Most distributors already have the main tools: an enterprise resource planning system (ERP), warehouse or inventory software, accounting, a customer relationship management system (CRM), and perhaps electronic data interchange (EDI) or a buyer portal. The work is to connect them. A sales rep should not enter an order that already arrived in an inbox. Finance should not guess what shipped. A buyer should not be told an order is complete while cartons remain open.
An integration moves a defined record or change from one system to another. The useful design question is concrete: when an order is accepted in the ERP, what does the warehouse receive, what confirms it accepted the work, and what happens if it rejects a line? Answer that for each handoff before choosing a connector. The same approach applies to wholesalers using a large ERP suite or a smaller mix of applications, and to any B2B order management process where orders arrive through several channels.
What changes when the same distributor order flows between systems?
Consider an illustrative electrical parts distributor. Northline sends purchase order NL-614 for 18 cartons of connector CN-42 at an agreed $96 per carton. Each carton holds 12 units. The order is 216 stock units and $1,728 before tax or freight. The available warehouse stock covers 15 cartons now; three cartons remain on backorder after Northline accepts a split. The first shipment is 180 units and, under this distributor’s shipment-based billing policy, the first invoice is $1,440. The remaining $288 is billed when the final three cartons ship.
- 01Capture and validate the POEmail, rep or EDI intake → ERP
Northline account, NL-614, CN-42, 18 cartons, price and delivery address
- 02Approve and allocateERP and credit/stock owners
Accepted order ID; 15 cartons available, three open; credit release and promise
- 03Pick and confirm dispatchERP → warehouse → ERP
Pick work for 180 units; actual 180 units shipped, shipment ID and tracking
- 04Bill and settleERP → accounting; accounting → ERP/CRM
First invoice for $1,440, payment allocation and remaining balance
- 05Keep people informedERP → buyer portal, CRM and messages
15 cartons shipped, three open, next agreed update and account-owner task
The three open cartons are a backorder: they were never released to pick. A short pick is different: the warehouse was instructed to pick a quantity but found less. Both need a customer decision, but they start from different records. ERPNext’s sales-order documentation shows that an order can remain partly delivered or billed across linked documents; the principle applies to any connected stack.
For this order, keep five references together: Northline’s PO, the ERP order and line IDs, warehouse work and shipment IDs, invoice ID, and receipt reference. If finance or customer service has to search by customer name and amount to find a shipment, the connection is incomplete.
How do you decide which existing system sends each fact?
Start with the actual applications and exports in use. List where orders originate, where they are accepted, where stock is reserved, where picking happens, where invoices are posted and where customer messages are sent. Ask the team to trace five normal orders and five troublesome ones. The troublesome set should include a price difference, credit hold, partial shipment, return and unmatched receipt.
| Fact | Likely owner | Who needs a copy or update |
|---|---|---|
| Item code, selling pack and approved price | ERP or approved product/pricing master | Rep tool, EDI translator and buyer portal |
| Customer account, terms and credit decision | ERP or finance | Order intake, sales rep and portal |
| Accepted sales order and open quantity | ERP or designated order system | Warehouse, CRM, finance and buyer view |
| Physical stock, pick and shipment | Warehouse system or ERP warehouse module | ERP, finance, customer service and portal |
| Invoice, credit, receipt and outstanding balance | Accounting or ERP finance | ERP order view, CRM and secure customer account view |
| Sales tasks and promotional preferences | CRM and marketing tools | Account owner and approved campaign tools |
If a product information management system (PIM) supplies descriptions and images, let it enrich the catalogue while the transactional SKU, unit and price still have clear owners. Akeneo describes the distributor product-content role. Whatever the tools, record who may correct a bad value. An integration should pass an error back to that owner, not let each destination invent a different correction.
| Write down | Example for the Northline order |
|---|---|
| Source → destination | Email/rep intake → ERP; ERP → warehouse; warehouse → ERP; ERP → accounting; ERP → CRM |
| Trigger and timing | On approved order; on credit release; on confirmed dispatch; on posted invoice |
| Fields and IDs | Customer, PO, order/line IDs, SKU, carton quantity, stock units, price, ship-to and dates |
| Successful response | ERP order ID, warehouse work ID, shipment ID, invoice ID or explicit rejection |
| Failure owner | Product data, credit, warehouse, finance or integration support |
| Business proof | Source and destination show the same quantity, status and value at the agreed time |
How do SKU and customer-price changes reach sales channels?
Before orders can flow inward, approved product and price data must flow outward. Publish the active SKU, customer item code, selling unit, pack conversion, price, currency and validity date from the master to the rep tool, EDI mapping and portal. Some systems can send changes as they happen; others use a scheduled export. A nightly file can be enough for descriptions. A customer contract price changing at noon may need a faster update or a final ERP price check when the order arrives.
| From the master | To the receiving channel | Check |
|---|---|---|
| CN-42; active; customer alias NLC-118 | Searchable or mapped item for Northline | Unknown and retired codes do not become sellable. |
| Carton = 12 stock units | Order form or EDI unit mapping | 18 cartons returns 216 units at order acceptance. |
| $96 per carton for Northline, with currency and effective dates | Quote, rep screen or buyer portal | The accepted order keeps the agreed price even if the list changes later. |
| Available quantity and last-updated time | Rep/portal availability view | The channel displays a promise from the inventory owner, not an independent stock guess. |
This is usually configuration and mapping work: clean item and account identifiers, set the ERP’s existing unit and price rules, then connect their published values. ERPNext’s unit-of-measure documentation shows why a carton and a stock unit can coexist. GS1’s trade-item hierarchy is useful when the each, case and pallet have different identifiers. The integration must preserve the correct unit at each destination.
How does a PO become one accepted ERP order?
A rep order, emailed PDF, EDI message and portal checkout should land in the same ERP order process. A connector or small intake workflow reads the source fields, matches the customer and item codes, converts cartons to the ERP stock unit, checks the approved price and creates or stages the order. An emailed PDF may need someone to confirm fields the extraction cannot read reliably. EDI is structured, but its customer and item codes still need a mapping. The EDI document and ERP record map explains how purchase orders, seller responses, shipment notices and invoices keep their references through that process. The ERP returns an order ID and an accepted, held or rejected result to the originating channel.
| Source PO or rep entry | ERP order field | What comes back |
|---|---|---|
| Northline / buyer account code | Approved ERP customer and bill-to/ship-to IDs | Matched account or a review reason |
| NL-614 and source document ID | Customer PO reference plus a separate ERP order ID | Accepted order ID linked to the original PO |
| NLC-118; 18 cartons | Internal CN-42; 18 selling cartons; 216 stock units | Accepted line ID or an unknown-item error |
| $96 per carton; requested date | Approved price snapshot, currency, requested and confirmed dates | Price/date accepted or held for review |
The connector must distinguish a repeated message from a changed order. A repeated delivery of the same source document and version should return the existing ERP order ID. A new version should be compared with the order already reserved, picked or billed before it changes anything. Buyer PO numbers alone are unreliable as unique technical IDs because some customers reuse them.
For US X12 partners, the 850 purchase order, 855 acknowledgement, 856 ship notice, 810 invoice and 820 remittance are examples of documents a distributor may exchange. GS1 US documents that sequence. The trading partner’s guide determines the exact layout. For European, Middle Eastern and Australian partners, confirm their required message format, legal entity, currency, tax and invoice fields with the relevant teams. The underlying ERP order should still carry the same commercial facts.
How do inventory and fulfilment updates move between ERP and the warehouse?
The ERP or designated inventory service should answer whether stock is available and whether an order is released. A warehouse management system (WMS) should report what staff actually picked and dispatched. If the warehouse works inside the ERP, these may be modules of one product; the same questions about stock, release and actual dispatch still apply. Microsoft’s inventory definitions distinguish physical, reserved and expected stock, which is why a sales screen must show the agreed availability number.
| Direction and trigger | Data that moves | What becomes easier |
|---|---|---|
| ERP → warehouse when approved and released | Order/line IDs, SKU, 180 stock units to pick, location, ship-to, service date and packing instructions | Warehouse work starts without rekeying a PO or choosing the wrong pack. |
| Warehouse → ERP when work is accepted or rejected | Work ID and accepted/rejected lines with reason | Sales can see that an ERP release reached the floor. |
| Warehouse → ERP on pick/dispatch | Actual picked and shipped units, shipment ID, cartons, carrier and tracking | Open quantity, invoice trigger and customer update follow what shipped. |
| ERP → purchasing when three cartons remain open | Open sales line, required quantity and date | Buyer can connect a supply decision to the customer commitment. |
| Receiving → ERP after supplier delivery | Accepted quantity, SKU, warehouse and quality state | New stock can be allocated to the original backorder. |
For Northline, the ERP releases 180 units and keeps 36 units open. The warehouse confirms a shipment of 180. A replenishment plan may cover the remaining 36, but an expected supplier delivery should not be shown as stock already picked. If the warehouse was instructed to pick 180 and finds only 168, that is a short pick. Send the actual 168 and a reason back; let the ERP revise the open balance and ask the account owner to agree the next step. Microsoft’s short-pick documentation illustrates the distinction between released work and physical findings.
The integration should use the WMS’s real dispatch or shipment event for the customer update. A pick list or label being created does not prove the goods left. If an order splits across sites, preserve one ERP order with multiple linked shipments. The fulfilment workflow guide goes deeper on split parcels and tracking.
How does dispatch become the right invoice and payment status?
If accounting is a separate product, send it the event your finance team uses to bill: a confirmed shipment, an approved monthly group of deliveries or another contracted milestone. Include customer and legal-entity IDs, PO and ERP order references, shipped line quantities, approved prices, tax context, currency and the shipment ID. Accounting returns its invoice ID and posting result. The ERP and CRM then display the posted invoice, not an assumed one.
| Transfer | Record and amount | Response that proves it worked |
|---|---|---|
| ERP/warehouse → accounting | Shipment of 15 cartons / 180 units at $96 per carton | One posted $1,440 invoice linked to NL-614 and the shipment |
| Accounting → ERP/CRM | Invoice ID, due date, posted amount and current balance | Sales and service can answer the buyer without opening a finance export |
| Bank or remittance → accounting | Northline payment reference and amount | Receipt recorded, then allocated to the correct invoice |
| Accounting → customer account view | Allocated amount and remaining balance | Buyer sees the current invoice state; three open cartons remain a separate order fact |
The invoice, payment allocation and bank statement match are separate steps. A customer may pay several invoices in one remittance or pay only part of one. Accounting should own that allocation and return the settled or outstanding balance to the operational view. ERPNext’s payment reconciliation guide distinguishes linking an existing receipt to invoices from creating another bank movement; matching the bank statement is a separate check. The connection should make an unmatched amount visible to finance, never force it onto an invoice by amount alone.
A return is another linked flow: the warehouse confirms what came back and its condition; finance approves a credit note against the original invoice; the ERP and customer view receive the approved result. Keeping those IDs connected avoids a customer service promise of credit before inspection or finance approval.
What should the CRM, buyer portal, sales reps and marketing receive?
The buyer portal and CRM need a readable summary of the operational record. Push accepted, held, partly shipped, backordered and invoiced changes from their owners. Tell the buyer which cartons shipped, the tracking for that shipment and what remains open. Give the account owner the exception and next action. The CRM and ERP integration guide sets out which of these facts the CRM should own, how a rep’s quote becomes the ERP order and which events should create a task. Send a message only after the source system confirms the event. If the buyer portal itself is still being chosen, the B2B ecommerce platform comparison covers when a portal is enough and when a full platform is needed. The B2B customer portal and ERP integration guide maps which portal records the ERP should own and how a held or rejected order reaches the buyer.
| Source event | Buyer or rep update | Why it helps |
|---|---|---|
| ERP accepts NL-614 | Accepted lines, price and agreed delivery plan | Buyer and rep see the same promise. |
| Credit or item issue holds the order | Order under review; account owner gets the reason | Warehouse does not act on an unapproved order. |
| Warehouse confirms first dispatch | 15 cartons shipped with tracking; three remain open | Customer service can answer without calling the warehouse. |
| Finance posts invoice | Invoice number, amount and secure access route | Buyer accounts payable can match it to the PO. |
| Supplier receipt changes backorder date | Rep task to confirm a new date; buyer update after approval | The next promise is tied to confirmed supply. |
A CRM can also use completed purchase history to remind a rep when an account usually reorders. Send the account, product family, last order date and assigned rep, then check stock and current terms before outreach. Marketing can use approved product categories and customer segments for relevant campaigns, while respecting contact preferences. Keep an accounts-payable contact’s invoice notifications separate from a purchasing contact’s promotional messages. Measure qualified reorders and fewer status calls, not the number of automated messages.
Should these systems use a connector, API, EDI or scheduled file?
Choose the simplest dependable route each pair of systems supports. A packaged connector can be appropriate when it covers the fields and exceptions you need. A workflow or integration service can map fields and coordinate several products. An application programming interface (API) lets software read or write a record; a webhook tells a receiver that something changed. EDI exchanges agreed business documents with trading partners. A scheduled file can be appropriate for a legacy system or a report that does not need minute-by-minute updates. Microsoft’s integration guidance distinguishes real-time requests, messages and batches; Frappe’s API documentation shows an existing ERP platform exposing records for integration.
| Route | Good fit | Check before choosing |
|---|---|---|
| Built-in or partner connector | Common ERP-to-accounting, warehouse or CRM pair with supported fields | Can it carry customer prices, pack units, partial shipments, credits and error reasons? |
| API plus webhook or scheduled check | Order acceptance, shipment, invoice or balance changes needing prompt feedback | Which side can send or receive changes? How is a failed or duplicate update recovered? |
| EDI with partner mapping | Retailer or supplier purchase orders, acknowledgements, ship notices and invoices | What message versions, identifiers, test cases and deadlines does that partner require? |
| Scheduled file exchange | Legacy application, nightly catalogue or finance export | How old can the data be? Is the file secure, complete, acknowledged and reconciled? |
Ask for a demonstration using NL-614 before committing to a connector. Show the carton conversion, customer price, credit hold, partial dispatch and invoice return. A connector that says “orders sync” but loses line IDs or only sends a final order status will leave manual work in place. Check who maintains mappings, credentials, schema changes and monitoring after launch. The right choice can be a mix: a packaged connector for accounting, EDI for one major buyer and a small API workflow for a warehouse.
How do you know data arrived and what happens when it does not?
A successful send is not the same as a successful business action. For each transfer, record the source ID, destination ID, time, result and person responsible for a rejection. If the warehouse rejects CN-42 or accounting rejects a tax code, the order should appear in a queue the right team sees. Correct the source or mapping, then replay the same transaction. A repeated message must not create a second order, invoice or customer notice. Microsoft’s messaging guidance explains why duplicates and failed deliveries need this treatment.
| Compare | Mismatch to investigate | Owner |
|---|---|---|
| Source POs ↔ accepted ERP orders | PO missing, rejected without an owner or entered twice | Sales operations |
| ERP release ↔ warehouse work | Released line not acknowledged or wrong pick quantity | Warehouse and integration support |
| Warehouse dispatch ↔ ERP open quantity | Shipment missing, tracking absent or order prematurely complete | Operations |
| Shipped lines ↔ posted invoices | Unbilled dispatch, overbilled quantity or duplicate invoice | Finance |
| Posted invoices ↔ allocated receipts | Unmatched cash or incorrect outstanding amount | Accounts receivable |
| Source order state ↔ buyer/CRM state | Buyer told “complete” while a backorder remains | Customer service |
Decide the tolerable delay for each link. Stock and credit may need a prompt check before a promise; rich product descriptions may refresh nightly. Put the last successful update time where staff can see it. Retry temporary outages, but escalate a bad SKU, disputed price or credit decision to its business owner. Keep the original message and its correction together so a later dispute can be explained.
Where do the savings and accuracy improvements come from?
Measure the work a connection removes. Count how many orders staff re-enter, minutes per order, corrections, invoice reissues, unmatched receipts and “where is my order?” contacts before changing the process. Then measure the same things for the pilot group. Savings come from fewer repeated entries and fewer investigations; accuracy comes from using one approved SKU, price, shipment and invoice record at each step.
| Manual activity | Illustrative monthly input | Time or cost |
|---|---|---|
| Re-enter 500 buyer orders | 7 minutes per order | 3,500 minutes, or about 58 hours |
| Investigate 40 order or invoice mismatches | 15 minutes per case | 600 minutes, or 10 hours |
| Total manual handling in this example | About 68 hours at an illustrative $30 loaded hourly cost | About $2,050 per month before implementation and running costs |
This is a way to test a business case, not a promise of savings. Subtract connector fees, integration work, data cleanup, support and exception handling. Some work stays with people: credit approval, price disputes, short picks and unclear remittances. If automation removes five minutes from a clean order but creates twenty minutes of repair for each bad one, the mapping or approval route needs work before you expand it.
Also track outcomes beyond labour: orders accepted without correction, time from PO to warehouse release, promised lines shipped as agreed, dispatches awaiting invoice, unallocated cash and customer status queries. Use the pilot baseline and an agreed observation period. A reported percentage without those counts tells the reader little.
How would you connect the stack without disrupting daily orders?
- 01Trace and baseline
Follow real orders across the current applications. Name owners, collect IDs and time manual handoffs.
- 02Clean shared references
Approve customer and SKU mappings, carton units, account terms, warehouse IDs and existing open balances.
- 03Connect one intake route
Send a limited group of rep or email orders into ERP. Return accepted, held and rejected results.
- 04Connect warehouse and finance
Send approved work out, receive actual dispatch, create the correct invoice and return its ID and balance.
- 05Add buyer and rep updates
Publish confirmed status and tracking; create account-owner tasks for exceptions and relevant reorders.
- 06Expand with evidence
Reconcile daily, resolve failures, then add EDI partners, sites or a portal one route at a time.
Before the pilot, decide what happens to orders already in progress. Keep each open order on its current route or migrate it with its source PO, open quantity, reservations, shipments and invoice references accounted for. A rollback can stop new orders entering the integration, but it cannot erase a real shipment or posted invoice. Train the people who will clear rejected records before sending live traffic.
| Do this | Pass when |
|---|---|
| Send NL-614 twice from the same source and version. | One ERP order exists; the second delivery returns the same result. |
| Send an unknown customer item code or a carton with a bad conversion. | The order is held with a visible reason; no warehouse work is released. |
| Apply a credit hold, then approve it. | The warehouse receives work only after the approved release. |
| Allocate 15 of 18 cartons and dispatch 15. | ERP shows 180 units shipped and 36 units on backorder; tracking names the right shipment. |
| Short-pick a separate released test line. | Only the actual picked quantity ships; the missing amount and owner remain visible. |
| Post the first invoice under the agreed shipment rule. | Accounting posts $1,440 before tax/freight once and returns its invoice ID. |
| Record and allocate a payment, then simulate a connection outage. | Finance shows the correct outstanding amount; retry makes no duplicate invoice or buyer message. |
| Ask the buyer and account owner what happened. | Both can see 15 cartons shipped, three open, the invoice and the next agreed action. |
Document the pilot’s pass criteria and exception owner before go-live. The owner of each source application should confirm its data; operations and finance should sign off the same sample orders. Keep a daily reconciliation during the first release, then adjust its frequency after the failure pattern is understood.
What should a distributor do with this map?
Take one real PO, its ERP order, warehouse work, shipment, invoice and payment reference. Fill the connection worksheet above. Mark every point where a person copied data or asked another team for a status. That list is the first integration scope. Choose the smallest route that moves an accepted order through dispatch and finance with visible exceptions; then add other channels.
If your current ERP cannot represent the business process, the distribution ERP guide helps with product evaluation. If the systems are capable but their records drift apart, Harmatiq’s integration and automation work can map the handoffs, implement the connections and set up the operating checks with your team.
Bring one real order, the systems it crosses and the exceptions your team handles manually. We can turn that journey into an implementation scope.