← All insights

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.

  1. 01Map
  2. 02Connect
  3. 03Confirm
  4. 04Reconcile
  5. 05Improve
Short answer

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.

18 cartons ordered
  1. 01
    Capture and validate the POEmail, rep or EDI intake → ERP

    Northline account, NL-614, CN-42, 18 cartons, price and delivery address

  2. 02
    Approve and allocateERP and credit/stock owners

    Accepted order ID; 15 cartons available, three open; credit release and promise

  3. 03
    Pick and confirm dispatchERP → warehouse → ERP

    Pick work for 180 units; actual 180 units shipped, shipment ID and tracking

  4. 04
    Bill and settleERP → accounting; accounting → ERP/CRM

    First invoice for $1,440, payment allocation and remaining balance

  5. 05
    Keep people informedERP → buyer portal, CRM and messages

    15 cartons shipped, three open, next agreed update and account-owner task

Each handoff carries the same order and line references. The systems can have their own IDs, but those IDs must be linked.

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.

A starting source-of-truth map; one product can fill several roles
FactLikely ownerWho needs a copy or update
Item code, selling pack and approved priceERP or approved product/pricing masterRep tool, EDI translator and buyer portal
Customer account, terms and credit decisionERP or financeOrder intake, sales rep and portal
Accepted sales order and open quantityERP or designated order systemWarehouse, CRM, finance and buyer view
Physical stock, pick and shipmentWarehouse system or ERP warehouse moduleERP, finance, customer service and portal
Invoice, credit, receipt and outstanding balanceAccounting or ERP financeERP order view, CRM and secure customer account view
Sales tasks and promotional preferencesCRM and marketing toolsAccount 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.

The one-page worksheet for each connection
Write downExample for the Northline order
Source → destinationEmail/rep intake → ERP; ERP → warehouse; warehouse → ERP; ERP → accounting; ERP → CRM
Trigger and timingOn approved order; on credit release; on confirmed dispatch; on posted invoice
Fields and IDsCustomer, PO, order/line IDs, SKU, carton quantity, stock units, price, ship-to and dates
Successful responseERP order ID, warehouse work ID, shipment ID, invoice ID or explicit rejection
Failure ownerProduct data, credit, warehouse, finance or integration support
Business proofSource 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.

What one product update should carry
From the masterTo the receiving channelCheck
CN-42; active; customer alias NLC-118Searchable or mapped item for NorthlineUnknown and retired codes do not become sellable.
Carton = 12 stock unitsOrder form or EDI unit mapping18 cartons returns 216 units at order acceptance.
$96 per carton for Northline, with currency and effective datesQuote, rep screen or buyer portalThe accepted order keeps the agreed price even if the list changes later.
Available quantity and last-updated timeRep/portal availability viewThe 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.

A practical field mapping for NL-614
Source PO or rep entryERP order fieldWhat comes back
Northline / buyer account codeApproved ERP customer and bill-to/ship-to IDsMatched account or a review reason
NL-614 and source document IDCustomer PO reference plus a separate ERP order IDAccepted order ID linked to the original PO
NLC-118; 18 cartonsInternal CN-42; 18 selling cartons; 216 stock unitsAccepted line ID or an unknown-item error
$96 per carton; requested dateApproved price snapshot, currency, requested and confirmed datesPrice/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.

Two-way ERP and warehouse connection
Direction and triggerData that movesWhat becomes easier
ERP → warehouse when approved and releasedOrder/line IDs, SKU, 180 stock units to pick, location, ship-to, service date and packing instructionsWarehouse work starts without rekeying a PO or choosing the wrong pack.
Warehouse → ERP when work is accepted or rejectedWork ID and accepted/rejected lines with reasonSales can see that an ERP release reached the floor.
Warehouse → ERP on pick/dispatchActual picked and shipped units, shipment ID, cartons, carrier and trackingOpen quantity, invoice trigger and customer update follow what shipped.
ERP → purchasing when three cartons remain openOpen sales line, required quantity and dateBuyer can connect a supply decision to the customer commitment.
Receiving → ERP after supplier deliveryAccepted quantity, SKU, warehouse and quality stateNew 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.

Finance handoff for the first 15 cartons, before tax and freight
TransferRecord and amountResponse that proves it worked
ERP/warehouse → accountingShipment of 15 cartons / 180 units at $96 per cartonOne posted $1,440 invoice linked to NL-614 and the shipment
Accounting → ERP/CRMInvoice ID, due date, posted amount and current balanceSales and service can answer the buyer without opening a finance export
Bank or remittance → accountingNorthline payment reference and amountReceipt recorded, then allocated to the correct invoice
Accounting → customer account viewAllocated amount and remaining balanceBuyer 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.

Useful updates from connected records
Source eventBuyer or rep updateWhy it helps
ERP accepts NL-614Accepted lines, price and agreed delivery planBuyer and rep see the same promise.
Credit or item issue holds the orderOrder under review; account owner gets the reasonWarehouse does not act on an unapproved order.
Warehouse confirms first dispatch15 cartons shipped with tracking; three remain openCustomer service can answer without calling the warehouse.
Finance posts invoiceInvoice number, amount and secure access routeBuyer accounts payable can match it to the PO.
Supplier receipt changes backorder dateRep task to confirm a new date; buyer update after approvalThe 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.

Choose the mechanism by business need
RouteGood fitCheck before choosing
Built-in or partner connectorCommon ERP-to-accounting, warehouse or CRM pair with supported fieldsCan it carry customer prices, pack units, partial shipments, credits and error reasons?
API plus webhook or scheduled checkOrder acceptance, shipment, invoice or balance changes needing prompt feedbackWhich side can send or receive changes? How is a failed or duplicate update recovered?
EDI with partner mappingRetailer or supplier purchase orders, acknowledgements, ship notices and invoicesWhat message versions, identifiers, test cases and deadlines does that partner require?
Scheduled file exchangeLegacy application, nightly catalogue or finance exportHow 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.

A daily reconciliation the operating team can run
CompareMismatch to investigateOwner
Source POs ↔ accepted ERP ordersPO missing, rejected without an owner or entered twiceSales operations
ERP release ↔ warehouse workReleased line not acknowledged or wrong pick quantityWarehouse and integration support
Warehouse dispatch ↔ ERP open quantityShipment missing, tracking absent or order prematurely completeOperations
Shipped lines ↔ posted invoicesUnbilled dispatch, overbilled quantity or duplicate invoiceFinance
Posted invoices ↔ allocated receiptsUnmatched cash or incorrect outstanding amountAccounts receivable
Source order state ↔ buyer/CRM stateBuyer told “complete” while a backorder remainsCustomer 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.

Illustrative labour calculation; use your own baseline and loaded cost
Manual activityIllustrative monthly inputTime or cost
Re-enter 500 buyer orders7 minutes per order3,500 minutes, or about 58 hours
Investigate 40 order or invoice mismatches15 minutes per case600 minutes, or 10 hours
Total manual handling in this exampleAbout 68 hours at an illustrative $30 loaded hourly costAbout $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?

Prove one complete path before adding every channel
  1. 01
    Trace and baseline

    Follow real orders across the current applications. Name owners, collect IDs and time manual handoffs.

  2. 02
    Clean shared references

    Approve customer and SKU mappings, carton units, account terms, warehouse IDs and existing open balances.

  3. 03
    Connect one intake route

    Send a limited group of rep or email orders into ERP. Return accepted, held and rejected results.

  4. 04
    Connect warehouse and finance

    Send approved work out, receive actual dispatch, create the correct invoice and return its ID and balance.

  5. 05
    Add buyer and rep updates

    Publish confirmed status and tracking; create account-owner tasks for exceptions and relevant reorders.

  6. 06
    Expand 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.

Acceptance test using the Northline order
Do thisPass 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.

Find the handoff that needs fixing.

Bring one real order, the systems it crosses and the exceptions your team handles manually. We can turn that journey into an implementation scope.

Discuss your workflow