Sales Orders
Sales orders are confirmed client demand. They are the entry point for the planning loop: a salesperson commits to a client; vestl’s MRP turns that commitment into purchase orders, batches, and a schedule.
The list
The Sales Orders list shows every order grouped by status. The page leads with a status tab strip so you can scan the planner’s working set without scrolling or filtering.
Tabs
- Open — confirmed and in-manufacturing orders combined. The default landing tab; this is what the planner needs to act on.
- Draft — drafts that haven’t been confirmed yet.
- Awaiting — confirmed but not yet started. Run MRP against these.
- In production — currently being made; on a tank or line.
- Shipped — fulfilled. Read-only history.
- Archived — cancelled orders. Hidden from the active list by default.
- All — no filter.
Each tab shows a count, so you can tell at a glance how many drafts are accumulating, how many shipments are waiting, and so on. The Open count overlaps with Awaiting + In production by design — Open is the working set; the others are slices of it.
vestl remembers the active tab when you refresh the page or use back and forward navigation.
Search
The search input filters the active tab by order number or client name. Tab counts stay fixed while you type — they reflect the tab’s universe, not what’s currently visible after the search.
Detail page
Clicking a row opens the full detail page. Lines, requested date, MRP linkage, and any attached manufacturing order references all live there.
Status lifecycle
The statuses progress in this order: Quote → Draft → Confirmed → In Production → Shipped, with Cancelled as a terminal state from any earlier status. The tab strip uses Archived as the working label for cancelled orders.
Quotes
A quote is a pre-order document you send a client before they commit — same lines and pricing as an order, but it’s never firm demand (MRP and the production plan ignore quotes entirely). Start one by ticking Start as a quote on the last step of the new-order wizard. From the quote’s detail page you can Print quote (opens a print-ready page with a Print / Save as PDF button) to send it, and Convert to sales order once the client commits — conversion keeps the quote’s number, lines, and history and moves it to Draft. A quote you don’t win can be cancelled outright.
Quotes and sales orders can be printed to PDF from the detail page. Invoices are not produced in vestl — invoicing stays in the finance system; vestl syncs the production and cost data to it.
Confirming vs. going to production
You can create and confirm an order against a product that isn’t finished yet — missing a published formula, vessel/case BOM, or COLA. Demand capture comes first; the spec and regulatory work can finish afterward. Confirming an order is a firm commitment, not a production start, so it isn’t blocked by those gaps.
Production is the gated step. Generating manufacturing orders (Confirmed → In Production) requires, for every line product:
- a published Formula, Vessel BOM, and Case BOM,
- an approved, unexpired COLA for TTB products, and
- the deposit secured flag set on the order — but only if the client requires a deposit. Whether the deposit gates production is set per-client on the company detail page; clients with the policy turned off skip this check.
The order detail page shows a Production readiness panel listing exactly what’s still outstanding — as non-blocking warnings — and the Generate Manufacturing Orders button stays disabled until everything clears. Toggle Deposit secured on the order once the client’s deposit is in hand.
Availability hint
When you pick a product and quantity on an order line — in the creation wizard and on the detail page for draft/confirmed orders — vestl shows a one-line availability hint:
Projected available: 120 cases · Feasible from materials on hand: yes · Est. earliest completion: Jul 24, 2026
- Projected available — finished goods on hand, plus incoming purchase orders, minus demand already committed to other orders and manufacturing orders.
- Feasible from materials on hand — whether the materials to produce this quantity are available right now, using the same check manufacturing orders run before scheduling.
- Est. earliest completion — the soonest a production run could finish if any shortage materials were ordered today (supplier lead time + receiving buffer + production lead time).
The hint is informational only. It never blocks creating or confirming an order — you can capture demand for a product whose formula, BOMs, or COLA aren’t finished yet, and the hint will say feasibility isn’t computable until the setup completes.
Fulfillment
Once an order is In Production and finished-goods batches have been produced, the Sales Order detail page surfaces a Fulfillment section. This is where you record which specific finished-good lots shipped against each line, with the unit cost frozen at fulfillment time.
Recording a fulfillment
Each line shows ordered qty, fulfilled qty, and (when there are still goods to ship) a lot picker plus a qty field. The picker defaults to the oldest available produced lot for that product — FIFO on production date — and the qty is pre-seeded with whatever quantity is still owed on the line, capped at what the lot has remaining. Override either if you need to ship from a different lot or split across multiple.
Clicking Record fulfillment writes one row per non-zero line. Each row:
- Decrements the FG lot’s remaining quantity.
- Auto-promotes the lot to Consumed once fully drawn down.
- Writes a shipment entry to the stock ledger.
- Audit-logs who recorded it and when.
The unit cost is frozen from the lot at fulfillment time — it survives later weighted-average-cost recomputations so the row stays a faithful cost-of-goods-shipped record.
Allocating finished goods
When two orders want the same tank’s output, first-come fulfillment is the wrong tie-breaker. Allocations let you decide the priority explicitly: reserve part of a produced lot for a specific order line before anyone ships.
On the Sales Order detail page, each suggested lot shows how much of it is available to this line — the lot’s remaining quantity minus whatever is already allocated to other orders. Click Allocate to reserve a quantity for a line; the reservation immediately stops other orders’ suggestions from offering that quantity.
- Allocated quantity is held for this order — other orders’ fulfillment suggestions can’t offer it.
- Fulfilling a line consumes its allocation first; the allocation shrinks (or clears) as the shipment is recorded.
- Fulfilling from a lot that is allocated to a different order is blocked — release that allocation first if the priority has genuinely changed.
- Release returns the reserved quantity to the open pool at any time.
- Reversing a fulfillment does not re-create an allocation — the returned quantity goes back to the open pool; re-allocate explicitly if you still want it held.
Allocation is a planning reservation, not an inventory movement: nothing leaves stock until a fulfillment is recorded. vestl never allocates automatically — every reservation is an operator decision.
Fulfillments and allocations always belong to your organization. You never choose an organization on these actions, and records from another organization are treated as if they do not exist. vestl also verifies that the order line and finished-goods lot belong to the same organization before it accepts either a reservation or a shipment.
Reversing a fulfillment
Mistakes happen. Click Reverse on a row in the History table. This:
- Writes an offsetting positive-qty stock ledger entry (crediting the lot back).
- Restores the lot’s status to Available if it had been auto-promoted to Consumed.
- Soft-deletes the fulfillment row — the chain stays queryable for recalls, but the row no longer counts toward the order’s fulfilled total.
You can’t reverse a fulfillment on a Shipped order. Move the order back to In Production first.
Shipping the order
An order can only transition to Shipped once every line has fulfillment lines totaling at least the ordered quantity. If you try to ship an under-fulfilled order, vestl shows which lines are short. This keeps the inventory ledger honest — Shipped means the goods left the building.
Why this matters
Without fulfillment lines, marking a sales order as shipped would not tell you which lots actually left inventory. That would break recall traceability for TTB-regulated finished goods and make finished-goods analytics imprecise. The fulfillment ledger fills that gap and supports downstream reporting.