Before you start
Put the right records and roles in place.
The customer exists in Customers, the products are in the catalogue, and the store you ship from exists in Stores. Put colleagues in the Approver group — any of them, or an administrator, can complete the Confirm and Post tasks.
Documented sequence
From the customer's order to the delivery note.
Each stage identifies the action, handoff, or record change that moves the work forward.
- 01
Take the order — Salesperson
Pick the customer, the date and the fulfilling store, then add product lines whose price, unit and tax rate are copied in and stay editable. The SO number is stamped on save and the order starts as DRAFT.
- 02
Confirm — Approver
The approver sees the order's number, dates, customer, store and total and confirms or rejects it. Confirm makes it CONFIRMED — the hand-off to the warehouse; reject cancels it.
- 03
Issue the goods — Storekeeper
Create a goods issue for the fulfilling store, linked to the customer and the sales order, with the lines being shipped. It gets a GI number and stays DRAFT, holding no stock.
- 04
Post — Approver
Posting writes an OUT movement per line to the stock ledger at the product's moving-average cost, never the sales price. The issue becomes POSTED and final; reject cancels it and stock never moves.
- 05
Create the delivery note — Storekeeper
One click on the posted issue copies the customer, store, sales order and lines into a DN-numbered delivery note. It carries quantities only; add the dispatching employee and a tracking number if needed.
Connected work
Carry the record into the next decision.
Related features and workflows reuse the same business records instead of asking teams to rebuild the context.
Posting the goods issue does not move the sales order on: it stays CONFIRMED, because the FULFILLED and INVOICED statuses are not set automatically yet.
A starting point, not a fixed package
Fit fulfilment to how your stores work.
Stores, products and payment methods are records you maintain, sales order status names are editable in Settings, and your operator can switch the deployment to block negative stock. Extra approval steps, other fields or further documents in the chain can be scoped as a Custom adaptation.
Try BusinessIntentsDecision-stage answers
Fulfil a sales order FAQs
When does stock actually leave the store?
Only when the goods issue is posted. A draft issue holds no stock, a rejected one never moves it, and posting is idempotent — a repeated post cannot write the movements twice.
What if there is not enough stock?
By default a store may go below zero. If your deployment blocks negative stock, posting an issue that would over-issue a product is refused with the product and the shortage, and the issue stays DRAFT until stock suffices.
At what value do issued goods leave the books?
At the product's current moving-average cost, never the sales price. The ledger rows carry that cost and feed the Monthly Cost Of Sales report.
Do we retype the lines for the delivery note?
No. Create Delivery Note on the posted issue copies the customer, store, sales order and all lines, sets today's date and links back to the issue. The note has no prices, status or approval.
Review the real workflow
Fulfil one real sales order in BusinessIntents.
Use a real record or transaction to compare the documented flow with the way your team works today.