Skip to content

Sales orders

This module is about promises to sell. A sales order is not money and not a stock movement yet: it records that the customer wants these items, at this price, by this date. Money appears in the invoice, goods leave on a shipment, and here lives the intention and its fulfilment.

Nothing in this module posts to the ledger — a promise never reaches the books.

Video walkthrough: Sales in ERPJS step by step — quotation, sales order, shipment, invoice, payment.

The route: from intention to a fulfilled order

Quotation price list → Sales order → stock reservation
                            ↓
             Shipment → Invoice → Payment
                            ↓
        lines shipped and invoiced, the order is closed
  1. Quotation price list — an optional but convenient start: a selection of items with prices and availability that the customer views through a web link. What they pick lands in a basket, and a placed basket becomes a sales order straight away, at the price list's prices. The other entry point is a quotation, entered without any price list: once the customer agrees, a sales order with its lines and prices is created from the menu of the open quotation — «Create sales order» (the quotation gets the "Accepted" status by itself).
  2. Sales order — the intention itself. Prices, discounts, the due date and the location are set here. Stock is reserved by the "Reserved" checkbox, not by "OK": in item statuses the line's unshipped quantity moves to reserved at the location from the order header (an order with a reservation will not save without a location), and a shipment for an order without a reservation no longer counts it as free. Lines marked "No Reserve" are not reserved.
  3. Shipment and invoice — the fulfilment. Each closes its share of the lines, and the order knows how much of it has been shipped and invoiced.
  4. A fully shipped and invoiced order is only flagged by the system; "Closed" is ticked by hand — until then the order is in the list of open ones, and that is the working list of sales.

Recurring sales take a shorter path: a contract with a billing period, and the Contract billing service creates draft invoices (or sales orders) from it — when run by hand or on a schedule set with the "Scheduled" button in the service window.

What is worth understanding

A reservation is not a quantity in the document — it is a state of stock. The order holds only the checkbox and the reservation date; the quantity itself lives in item statuses. It is released by an approved shipment, by clearing "Reserved", by "Closed", by deleting the order or by a return. Reservations past their date are cleared by the reserve expiration service (run by hand or on a schedule) — without it the warehouse stays "busy" with orders everyone has forgotten. The stock reserves report shows what is held and for whom.

The price is taken when the line is created. It comes from the price list of the header or of the payment terms (failing that, from the item card), from the quotation on «Create sales order», or from a quotation price list when the order was placed on the web page; from then on it lives in the line. Change the price list and old orders are not rewritten — deliberately: a promised price stays promised.

The order type is only a label. Sales order types mark where an order came from (retail, web, wholesale, drop-shipping) — for the filter in the sales orders report and for printing; a setting can make the type mandatory. The type does not affect the reservation, the location, prices or how the document behaves.

An agreement and a contract are different things. An agreement is a card file of agreements with their terms that no document refers to; a contract is a template of periodic invoices that the service issues as drafts.

Where to start in a new database

  1. Contacts and Contacts Setting — customers, and whether each new contact gets an analytics object of its own.
  2. Items and prices — without a price list a line takes the price from the item card or has to be typed by hand.
  3. Sales Orders Setting — the document's rules: no reserving beyond stock, a mandatory order type, the link to prepayments. Numbering is not set here but by number series.
  4. If customers order from the quotation price list web page — Price list settings and Price list web view.
  5. The first sales order.

Common tasks

You need Where to go
see, line by line, what is shipped, invoiced and paid (with a "Not shipped" filter) Sales Orders Status
find out how much stock is reserved Stock Reserves
measure sales for a period (by approved invoices) Sales report · Sales Report Detail
gather the base for the sales team's bonuses (the report does not compute the bonus) Bonus Report
bill subscription contracts Contract billing
clear stale reservations Reserve expiration
rebuild the "Qty in orders" figure in item statuses when data got into the database bypassing documents Item status recalculation in sales orders

Everything in the module

Documents: Sales Orders · Quotations · Quotation price lists · Agreements · Contracts · Order baskets

References: Contacts · Items · Sales order types

Settings: Sales Orders Setting · Contacts Setting · Price list settings · Price list web view

Reports: Sales report · Sales Report Detail · Sales Orders Report · Sales Orders Status · Stock Reserves · Bonus Report

Maintenance: Contract billing · Reserve expiration · Item status recalculation in sales orders · Quotation Price Lists Recalc · Quotation price lists stock recalculation

Where to look next

  • Sales ledger — where the intention becomes a debt and money.
  • Stock — where availability comes from and where the reservation goes.
  • Prices — the rules the price is picked by.
  • Purchase orders — how to buy in what is missing.