Getting Started
Help Center/Getting Started/Wholesaler Onboarding: From Purchase Receiving to Distribution

Wholesaler Onboarding: From Purchase Receiving to Distribution

Last updated 2026-10-13

The minimum closed loop for a wholesaler or distributor: master data, procure-to-receive, and order-to-ship.

Wholesale warehouse with palletized cartons ready for distribution

This guide is for wholesalers and distributors who buy from suppliers and sell onward. The minimum closed loop has three parts: get master data right once, run procure-to-receive, and run order-to-ship.

Get master data right first#

  1. Products (SKUs): create each SKU with multi-UOM and pallet configuration. ABC analysis can be enabled per merchant — it runs daily and classifies items by the last 90 days of outbound volume (top 80% → A, next 15% → B, rest → C).
  2. Vendors and customers: vendors are shared between Purchase and WMS. When importing orders from Excel, customers that do not exist are auto-created by name.
  3. Locations: maintain locations under master data, with bulk import/export. Set a minimum stock level (pick_location_min) on pick faces so replenishment tasks are generated automatically when stock runs low.

Procure-to-receive loop#

  1. Create a PO (vendor + warehouse + lines) → submit for approval → approve. In Purchase settings you can turn on auto-create ASN on approve and auto-push ASN to WMS.
  2. Send the ASN or release the PO to push it down to WMS, which creates the inbound receipt (idempotent — no duplicates).
  3. Receive: on desktop use the Receive dropdown (Palletized or Direct), or create a receive task and assign it to a worker on mobile. Over- and short-receipts are allowed but every variance must be confirmed line by line.
  4. When receiving completes, actual received quantities and variances are written back to the PO lines automatically (full recalculation); variance lines can be reviewed on the Purchase variances page.

Order-to-ship loop#

  1. Create sales orders in OMS: manually, by Excel/CSV import, by channel pull, or converted from a CRM deal. Drafts are editable; submit to start approval.
  2. Approve (ATP availability check) → allocate a warehouse → release. In wms_sync mode, push-to-WMS creates the WMS outbound shipment (idempotent).
  3. Release waves (manual page or scheduled) → create pick tasks per order → workers pick in location sequence on mobile, into totes (to-LPN).
  4. Pack confirm, then ship: tracking numbers are written back to the OMS order lines; partial fulfillment across split shipments is supported.
  5. Returns: create an RMA from the OMS order; return receiving goes through normal receiving (source_type=return).
From purchase receiving to distribution shipping in one warehouse
For expiry-sensitive goods, set the merchant allocation strategy to FEFO (first-expiry-first-out) and check the expiry alerts report regularly for batches expiring within 90 days.
Inventory adjustments require the explicit wms.inventory_adjust permission. Locations covered by an unfinished count task are locked — adjustments, moves and replenishment are blocked until the count is completed or cancelled.