Sales Quotes
Prepare customer price estimates, send branded PDF quotations, and convert quotes to Sales Orders.
Routes:
/sales-quotes Sales Quotes
The Sales Quotes module allows sales representatives to prepare formal price proposals, inspect live warehouse stock availability, and issue branded PDF quotations.
Sales Quotes are implemented directly as filtered views of Sales Orders in the Draft or Quoted state.
Quote Lifecycle & Business Logic
stateDiagram-v2
[*] --> Draft : Create Quote (Draft Order)
Draft --> Quoted : Issue Quote (Lock Terms)
Draft --> Cancelled : Discard
Quoted --> Confirmed : Customer Approves (Commit Stock)
Quoted --> Draft : Revise Commercial Terms
Quoted --> Cancelled : Customer Rejects
1. Underlying Architecture & Commercial Locking
- Single Entity Pipeline: A quote is a Sales Order in
DraftorQuotedstate. There is no duplicate record creation when converting to an order. - Pricing Freeze: Moving to
Quotedlocks the price scale, line discount percentages, exchange rates, and tax categories to preserve the exact commercial agreement offered to the client. - Revision Workflow: To modify quantities or pricing on a locked quote, click Revise Quote to return the record to
Draft.
2. Stock Allocation vs. Availability Visibility
- Draft & Quoted Visibility: The quote screen displays live On Hand (OH) and Available (Avail) stock across all storage bins, but does not reserve physical stock.
- Stock Commitment at Confirmation: Physical inventory is strictly committed when an operator clicks Confirm Order (transitioning the record to
Confirmed). - Inventory Gap Resolution: If available stock is insufficient at the moment of confirmation:
- Generate Backorders: Automatically creates demand entries in Purchasing pegged directly to the order.
- Acknowledge Discrepancy: Confirms the order to allocate available stock immediately and manage shortages manually.
Step-by-Step Workflows
1. Creating and Sending a Quotation
- Go to Sales → Sales Quotes (
/sales-quotes). - Click New Quote (creates a new order in
Draft). - Select the Customer. Price scale, currency, and addresses fill automatically.
- Add line items, quantities, unit prices, and discounts.
- Click Save as Draft.
- Click Issue Quote to lock terms, then click PDF or Email to transmit the quote to the customer.
2. Converting an Accepted Quote
- Open the accepted quote from
/sales-quotes. - Click Confirm Order.
- The system performs real-time credit checks and stock reservation, transitioning the document into a live confirmed Sales Order for fulfillment.
Field Reference
| Field | Description |
|---|---|
| Customer | Customer account receiving the quotation. |
| Quote Number | Unique quote identifier (matches Sales Order number). |
| Currency | Transaction currency for all quoted prices and totals. |
| Price Scale | Default pricing scale (1–4) used for product list prices. |
| Total Amount | Grand total including calculated taxes. |
Field Reference & Data Dictionary
Key database fields, input parameters, and definitions associated with this workflow screen:
| Field / Parameter | Display Name | Description & Rules |
|---|---|---|
| customer_id | Customer | Target customer account. Automatically pre-fills currency, terms, addresses, and price scale (1–4). |
| quote_number | Quote Number | Unique quote identifier (corresponds directly to the underlying Sales Order number). |
| currency_code | Currency | Transaction currency for all quoted line items, inherited from the customer. |
| line_items | Line Items | Products, quantities, unit prices, discount matrix percentages, and tax rates. |