Appearance
Sales lifecycle field guide
This is the operating reference for a complete OSERP sales process. The backbone has 14 stages. A company may use a shorter flow template, but it never changes the meaning of a stage. A quotation is not an invoice, a delivery is not a payment, and saving a draft is not posting.
The 14-stage map
| # | Stage | What the operator is deciding | Stock effect | Accounting effect |
|---|---|---|---|---|
| 1 | Lead | Is this enquiry real and owned? | None | None |
| 2 | Opportunity | Is it worth pursuing and at what value? | Optional ATP check | None |
| 3 | Quotation | What exactly are we offering and for how long? | Soft availability | None |
| 4 | Sales Order | Has the customer committed? | Reserve / promise | Commitment if configured |
| 5 | Approval | Can the exception be authorised? | Reservation held | Posting blocked |
| 6 | Fulfillment | Are goods or services ready? | Pick allocation | No final posting |
| 7 | Delivery | What quantity was actually handed over? | Goods out | Accrual if configured |
| 8 | Shipment | Which carrier and tracking event applies? | In transit | Freight accrual if configured |
| 9 | Invoice | What legal amount is due? | Final impact confirmation | AR, revenue, tax, COGS |
| 10 | Payment | What receipt clears which invoice? | None | Bank/cash and AR clearing |
| 11 | Returns | What came back and why? | Return receipt | Reverse COGS/revenue as configured |
| 12 | Credit Note | What commercial or tax adjustment is granted? | Optional | AR/revenue/tax reversal |
| 13 | Collections | What is overdue, disputed, or promised? | None | Provision/write-off if configured |
| 14 | Closure | Is the lifecycle complete and auditable? | No open movement | No open event |
Header fields: enter once, control everything
The header describes the transaction as a whole. Header values are inherited by new lines, printed documents, approval policies, numbering, tax, and reports. Change them before adding lines whenever possible.
| Header field | Purpose and example | Validation / operational rule |
|---|---|---|
| Process type | SALES; selects the sales backbone and permissions | Do not change process type after lines exist |
| Document type / stage | Quotation, order, delivery, invoice, etc. | Stage controls posting and available fields |
| Document number | Human-readable number such as SO-DXB-2026-00421 | Generated by numbering policy; never reuse |
| Company | Legal entity issuing the document | Must match the selected branch and books |
| Branch | Operating location responsible for sale | Controls local defaults, tax registration, and reporting |
| Customer | Legal customer / account | Select the customer record; do not type a name into remarks |
| Customer address | Bill-to and ship-to destination | Confirm tax jurisdiction and delivery destination |
| Customer PO no. / date | Customer’s reference at order stage | Optional for sales order; preserve exact reference for matching |
| Document date | Commercial date shown to customer | Used for validity, ageing context, and audit trail |
| Posting date | Accounting date | Must be in an open period; period locks can refuse posting |
| Expected delivery | Promise date used by fulfilment | It is not the invoice due date |
| Due date / payment terms | When the customer must pay, e.g. Net 30 | Drives ageing and collections; never substitute delivery date |
| Currency | Transaction currency, e.g. AED, USD, EUR | Customer and company currency must be compatible with an FX rate |
| Exchange rate | Rate to company base currency | Effective on posting/document date; stale or missing rates must be resolved |
| Price basis | Tax-inclusive or tax-exclusive entry | Determines how unit price is converted to net and tax |
| Tax regime / place of supply | Determines GST/VAT components | Confirm domestic, inter-state, export, or exempt treatment |
| Salesperson / owner | Accountability and commission attribution | Drives pipeline, target, and follow-up reports |
| Warehouse | Default fulfilment source | Every stock line must resolve to a warehouse |
| Shipping method / carrier | Delivery promise and freight ownership | Required by logistics policy when shipment is enabled |
| Project / cost centre / segment | Management dimensions | Use the dimension that owns the margin, not a generic default |
| Remarks | Human context not represented by a field | Never hide a required reference, tax fact, or approval reason here |
Detail-row fields: each item or service has its own truth
| Line field | Purpose and example | What OSERP does with it |
|---|---|---|
| Line no. | Stable sequence 1, 2, 3 | Preserves print, fulfilment, and audit order |
| Item / service | Select SKU-CHAIR-001 or a service | Supplies description, UOM, tax defaults, and price history |
| Description | Customer-facing wording | Printed on quote, delivery note, and invoice |
| Quantity | 12 chairs or 40 service hours | Drives stock, revenue quantity, and open quantity |
| Open quantity | Remaining quantity after partial delivery | Prevents delivery above the approved order |
| UOM | PCS, BOX, KG, HOUR, etc. | Must match the item’s conversion rules |
| Warehouse / bin | Exact stock source and bin | Controls availability, picking, and goods-out location |
| Batch / serial | Traceability identity where required | Required by item tracking policy at fulfilment/delivery |
| Manufacture / expiry date | Lot quality and shelf-life evidence | Travels with the batch and supports recalls/FEFO |
| MRP / selling price | Printed or regulated selling price | Supports retail pricing and label generation |
| Unit price | Net or tax-inclusive according to price basis | Never use floating-point assumptions; OSERP calculates decimal money |
| Discount % / amount | Line concession, e.g. 10% | Can trigger approval thresholds and changes taxable base |
| Tax code / rate | VAT/GST/exempt classification | Splits output tax components and tax reporting |
| Line total | Quantity × price − discount + tax as applicable | Must reconcile to the header totals |
| Project / cost centre | Line-level margin ownership | Allows one invoice to serve multiple projects |
| Line remarks | Installation note, colour, serial request | Operational note for pick/pack/service teams |
Stage-by-stage operating procedure
1. Lead
Create the customer/contact, enquiry source, owner, industry, need, estimated value, and next action. Do not add a fake SKU merely to record interest. Exit as qualified or rejected, with a reason and follow-up date. No stock or ledger entry is created.
2. Opportunity
Record expected value, probability, expected close date, competitors, products, decision-maker, and next step. Use availability as a question, not a reservation. A probability of 70% is a forecast input—not revenue.
3. Quotation
Set customer, validity dates, currency/rate, price basis, payment terms, delivery promise, tax regime, and salesperson in the header. Add one line per item/service with quantity, UOM, warehouse, unit price, discount, and tax. Review subtotal, discount, tax components, round-off, and total. Send the quotation; do not post it.
4. Sales Order
Convert the accepted quotation or create an order from an approved customer PO. Confirm delivery date, warehouse, quantities, payment terms, and credit exposure. OSERP can reserve / promise stock here, but the order is still not an AR invoice.
5. Approval
The approver sees the exception: discount above threshold, margin below policy, credit limit, unusual payment terms, export risk, or delivery override. Approve or reject with a note. The stage gate blocks the downstream posting until the required role acts.
6. Fulfillment
The warehouse or service lead turns open quantities into a pick/pack task. Select bins, batches, and serials; record substitutions or shortages. A partial pick leaves an open quantity. Never edit the customer’s ordered quantity to hide a shortage.
7. Delivery
Create the delivery note from the fulfilled lines. Enter delivered quantity, transporter, vehicle, e-way bill where applicable, and proof-of-delivery reference. OSERP prevents delivery above approved/open quantity. Goods-out or delivery accrual occurs only according to the configured posting rule.
8. Shipment
Record carrier, tracking number, freight terms, dispatch date, destination, package count, and in-transit status. This stage explains where goods are while they are between warehouses or with a carrier; it is not a second invoice.
9. Invoice
Invoice delivered quantities or completed services. Recheck legal company/address, tax registration, place of supply, currency, exchange rate, payment terms, due date, and period. Posting creates AR, revenue, output tax, and configured COGS effects. Print/export only after the posted number is assigned.
10. Payment
Select payment mode (bank transfer, cheque, cash, UPI, or card), receipt date, bank/cash account, instrument/reference number, and allocation to one or more invoices. A cheque requires its number; an unallocated receipt is not the same as a cleared invoice.
11. Returns
Create a return against the delivered quantity. Capture return note number/date, reason, condition, batch/serial, inspection result, and receiving warehouse. Returned quantity cannot exceed delivered quantity. Quarantine damaged stock instead of returning it to saleable inventory.
12. Credit Note
Select the source invoice, reason, affected lines/amount, tax treatment, and allocation. A credit note reverses AR/revenue/tax as configured; it is not a deletion of the original invoice. Manual credits should pass the configured approval policy.
13. Collections
Use ageing, promise-to-pay date, dispute reason, contact log, collector, escalation, and next action. A collection activity does not reduce AR until a payment is posted. Provision or write-off is a controlled accounting action, not a note on the customer.
14. Closure
Confirm delivered or cancelled quantities, posted invoice or documented non-billable outcome, allocated receipts, completed returns/credits, and resolved disputes. Close only when no open stage, stock movement, approval, or accounting event remains. The audit timeline remains read-only evidence.
Worked example: Lulu-style multi-country sale
Lulu’s UAE company sells 100 units from the Dubai warehouse to a Saudi customer in SAR. The quotation keeps the customer’s SAR price; the invoice stores the SAR amount and the dated SAR→AED rate. The order reserves Dubai stock, fulfilment allocates batches, delivery records the carrier and e-way/transport reference, and invoice posting books AR in the company books with the configured export tax treatment. The Saudi receipt is recorded in SAR and cleared against the invoice; any rate difference is recognised by the FX policy. A return receives stock into the nominated warehouse and the credit note reverses only the returned taxable lines.
Troubleshooting checklist
- Cannot submit: open Stage details; required party document, payment mode, or cheque reference is missing.
- Wrong tax: check company registration, branch, place of supply, customer country, and price basis before changing the rate manually.
- No stock: check item, warehouse, bin, batch, open quantity, and reservations—not just the item name.
- Invoice will not post: check period lock, numbering, posting template, missing ledger account, FX rate, and approval state.
- Ageing is wrong: correct due date and payment terms; never use delivery date as due date.
For exact screen controls and verified field limits, use OSERP Atlas, field limits, and coverage notes. Where a field is configurable, this guide describes its business meaning; the tenant’s policy is the final validation authority.
Sales implementation worksheet
Use one repeatable transaction while configuring and training. For Demo Retail Group LLC, the consultant should complete the following evidence for each stage.
| Stage | Minimum evidence | Example value | Why it matters |
|---|---|---|---|
| Lead | Contact, source, owner, next action | Saudi wholesale enquiry | Ownership and forecast |
| Opportunity | Value, probability, close date | SAR 85,000 / 70% | Pipeline only, no revenue |
| Quotation | Currency, validity, tax, lines | SAR, 14 days, export | Commercial offer |
| Order | Customer PO, warehouse, reservation | PO-SA-8842 / Dubai | Commitment and ATP |
| Approval | Exception, approver, decision | 12% discount / Sales Director | Segregation of duties |
| Fulfillment | Pick list, bin, batch, shortage | DXB-A-04 / lot A | Physical readiness |
| Delivery | Actual quantity, carrier, proof | 96 units / POD-901 | Goods-out evidence |
| Shipment | Tracking, packages, in-transit state | DHL / 4 cartons | Custody location |
| Invoice | Legal party, tax, rate, due date | SAR / dated rate | AR and tax posting |
| Payment | Bank, reference, allocation | SAR transfer / bank ref | AR clearing |
| Return | Quantity, condition, inspection | 4 damaged units | Stock and claim |
| Credit | Source invoice, reason, tax | 4-unit credit | Controlled reversal |
| Collection | Promise, dispute, next action | 15-day promise | Receivable ownership |
| Closure | No open quantity or event | Closed with audit | Complete lifecycle |
Fourteen-stage test script
Run a happy path and a refusal path for every stage. The happy path should create one quotation for 100 chairs, convert it to an order, reserve stock, pick 100, deliver 96, invoice 96, receive a partial payment, return four damaged units, issue a credit, and close. The refusal path should attempt delivery above open quantity, invoice before approval, post in a locked period, allocate an expired batch, create a duplicate receipt, and issue a credit without a source. Capture the response, message, user, timestamp, and absence of an unwanted journal.
At each stage ask five questions: what is the business decision, what field proves it, what quantity or value changes, which permission allows it, and which audit event records it? If any answer is “remarks only,” the process is under-modelled and should be reviewed with the product owner.
Amount and date reconciliation
For a 100-unit order at SAR 125 each with a 5% discount, net is SAR 11,875 before tax. If tax is 15%, tax is SAR 1,781.25 and total is SAR 13,656.25. Delivery of 96 units leaves four open units; invoice only 96 unless the policy allows advance billing. The payment allocation must show whether it clears total, tax, or a partial amount. Document date, posting date, delivery date, tax date, due date, and service period may differ; each report must state which one it uses.
API and integration handover
For every converted document retain source quotation ID, order ID, delivery ID, invoice ID, receipt ID, external reference, tenant/company scope, and idempotency key. A retry of the same order or receipt must return the original result. A changed payload with the same key is an idempotency conflict. Integration tests should verify decimal money, cursor pagination, permission scope, webhook signature, duplicate events, and period-lock refusal.