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-production 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 five statuses progress in this order: 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.
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 batch 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.
The order detail page shows a Production readiness panel listing exactly what’s still outstanding — as non-blocking warnings — and the Generate Batch Orders button stays disabled until everything clears. Toggle Deposit secured on the order once the client’s deposit is in hand.
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.
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.