SAP Document quotation

Sales Quotation

A non-binding price offer to a customer โ€” the first document in the sales chain. No stock, no G/L effect.

A Sales Quotation is a formal, non-binding price offer to a customer. It is the earliest document in the SAP Business One sales chain (order-to-cash) and the one with the lightest footprint: creating a quotation changes nothing in the business โ€” no stock is reserved, no accounting entry is posted. It exists to put a price and a set of terms in front of the customer and to seed every document that follows.

Purpose

A quotation answers the question “what would this cost?” It is used when a customer asks for a price before committing to buy. Sales staff assemble the items, quantities, prices, and validity date, then send it to the customer. Because it is non-binding, a quotation can be revised freely; it usually carries a validity date after which the offer expires.

The quotation is optional. A sale can begin directly at the Sales Order stage. But where a formal offer is expected โ€” tenders, project work, negotiated pricing โ€” the quotation is where the agreed price is first recorded, and copying it forward keeps that price consistent through the rest of the chain.

Position in the document chain

The quotation is the head of the sales chain. When the customer accepts, it is copied into a Sales Order; from there the chain continues to Delivery and A/R Invoice.

flowchart TD
    OPP([Opportunity]) -->|accepted| SQ[Sales Quotation]
    SQ -->|confirmed| SO[Sales Order]
    SO --> DEL[Delivery]
    SO --> ARI[A/R Invoice]

    style SQ fill:#dbeafe,stroke:#3b82f6,stroke-width:3px
    style SO fill:#dbeafe,stroke:#3b82f6
    style DEL fill:#dcfce7,stroke:#16a34a
    style ARI fill:#fef9c3,stroke:#ca8a04
  • Copies from: nothing (it is the start), or optionally an Opportunity.
  • Becomes: a Sales Order (one-click copy). The quoted price and terms carry forward through the document-chain fields.

Key fields

A quotation is a Document entity โ€” the same universal base every SAP B1 transactional document shares โ€” distinguished by its DocObjectCode. The important header and line fields:

Header

FieldMeaning
DocEntryInternal primary key (assigned by SAP).
DocNumUser-visible document number.
CardCodeCustomer’s business-partner code (e.g. C001).
CardNameCustomer name (defaults from the BP master).
DocDatePosting date (string, YYYYMMDD).
DocDueDateValidity / expiry date of the offer.
DocCurrencyCurrency of the offer.
DocTotalOffer total in document currency.
SalesPersonCodeSales employee making the offer.
CommentsFree-text remarks.
DocumentStatusbost_Open until copied forward or it expires.

Lines (DocumentLines collection)

FieldMeaning
LineNum0-based line index.
ItemCodeItem master code.
QuantityQuantity offered.
PriceUnit price before VAT โ€” the quoted price.
LineTotalQuantity ร— Price.
VatGroupTax code for the line.
WarehouseCodeIntended stock location (informational at this stage).

Stock and G/L effect

None. A quotation reserves no inventory and posts no journal entry. Stock levels and the general ledger are untouched. This is what makes it safe to issue and revise freely โ€” it is a statement of intent, not a transaction.

Service Layer entity

PropertyValue
SL entityQuotations
Object codeoQuotations (23)
Norma path/b1s/v1/Quotations

(SAP’s current generally-available Service Layer is /b1s/v2/; Norma’s connector and mock both speak /b1s/v1/Quotations.)

How to create it in Norma

Use the create_quotation tool. It needs:

  • card_code โ€” the customer’s code (e.g. C001).
  • lines โ€” each an item_code + quantity.
  • Optionally per line, unit_price โ€” when given it is authoritative (the quoted price); when omitted the line falls back to the item’s list price. This matters for a quotation, where the whole point is often a negotiated price that differs from the standard list.

Every Norma write is held for human review before it reaches SAP. The tool prepares the quotation, the review gate shows exactly what will be created (customer, lines, prices, total), and only on approval does the connector POST it to /b1s/v1/Quotations. Nothing is written to SAP until a human approves.