Salesforce Dictionary - Free Salesforce GlossarySalesforce Dictionary
DictionaryGGenerate Orders
SalesIntermediate

Generate Orders

Generate Orders is the action in Salesforce CPQ and Salesforce Order Management that turns a closed quote or contract into one or more Order records, with their associated Order Products (line items) and, optionally, Order Schedules.

§ 01

Definition

Generate Orders is the action in Salesforce CPQ and Salesforce Order Management that turns a closed quote or contract into one or more Order records, with their associated Order Products (line items) and, optionally, Order Schedules. It is the bridge between the selling motion (Opportunity, Quote, Contract) and the fulfillment motion (Order, Asset, Subscription, Invoice). Without an Order, downstream revenue recognition, billing, fulfillment, and asset tracking have no source record to operate on.

Salesforce ships order generation in two distinct products. Salesforce CPQ generates orders from a contracted quote, splitting lines into multiple orders by date, location, or product family if needed. Salesforce Order Management (a Service Cloud add-on aimed at B2C and B2B retail) generates orders from external commerce systems and from the Order REST API. The term Generate Orders specifically references the CPQ-side action triggered by a button or a flow; Order Management refers to the same operation as Order Creation. Both write to the standard Order and OrderItem objects.

§ 02

How CPQ generates orders from a contracted quote

The Order By field on the quote

Salesforce CPQ uses the Order By field on the quote to decide how to split lines across multiple orders. The default Single Order produces one Order per quote. Order By Start Date splits lines into separate orders by their Subscription Start Date, useful for staggered onboarding. Order By Quote Line Group creates one order per quote-line group, often used to separate hardware from services. The choice is set once on the quote before generation; changing it later requires regenerating from scratch.

Status transitions and the contracted flag

Generate Orders runs when the Quote.Status = 'Contracted' and Quote.Ordered = false. The action creates the Order(s), copies pricing and term details from the quote, and flips Quote.Ordered = true so the action cannot run twice. Salesforce CPQ tracks the relationship via SBQQ__Order__c lookup on Quote Lines, letting downstream automation join from quote to order at the line level.

Order Products and prorated pricing

Each quote line produces one Order Product (OrderItem) record with the agreed quantity, unit price, and start/end dates. Subscription lines also receive a prorated UnitPrice calculation based on the prorated days inside the subscription term, which is the basis for revenue recognition and renewal pricing. Custom CPQ formulas can override the default proration logic when a deal has mid-term price changes or stepped rates.

Order Schedules and revenue recognition

For multi-month or multi-year subscription orders, CPQ writes an Order Schedule (sometimes called a Revenue Schedule on the Order Product) that breaks the contract value into recognition periods. The Order Schedule rolls up to Revenue Cloud and Salesforce Billing for invoice generation. Without Order Schedules, a $120K annual subscription would recognize all in month one instead of $10K per month.

Salesforce Order Management for B2C

Order Management uses the Order Summary object as the canonical record of a customer-facing order. The Order REST API and the Async Order Workflow consume the standard Order object and produce one Order Summary per fulfillment. Order Management handles inventory checks, payment authorization, fulfillment splits, returns, and exchanges, all at high volume. The Generate Orders concept maps to Order Creation in Order Management terminology.

Bulk generation from amendments and renewals

Amendments and renewals are themselves new quotes; contracting them and clicking Generate Orders produces new Order records that reference the original Contract. The amendment Order line items use prorated pricing tied to the amendment effective date, not the original term. Bulk generation across a portfolio (annual renewal sweep) typically runs through a Flow or Apex job rather than the UI button.

Validation rules and apex hooks on order creation

Generate Orders fires standard Order triggers, validation rules, and any Apex Order trigger logic. Custom validation rules on the Order or OrderItem objects can block the generation if data quality fails (missing billing address, expired pricing book). Apex triggers can post-process the order, attach related records, or push fulfillment events to external systems.

§ 03

Generate orders from a contracted CPQ quote

The button is a one-click action when the quote is properly configured. The pre-work happens on the quote and the price book before the button ever gets pressed.

  1. Contract the quote

    On the closed-won Opportunity, click Contract on the primary CPQ quote. The action flips Quote.Status to Contracted and creates a Contract record.

  2. Set Order By on the quote

    Edit the quote and pick Single Order, Order by Start Date, or Order by Quote Line Group. The choice decides how many Order records will be generated.

  3. Click Generate Orders

    Open the quote and click the Generate Orders button (custom CPQ-managed button). The action creates the Order, the Order Products, and any Order Schedules. Order.Status defaults to Draft.

  4. Activate the Order

    Edit the Order, set Status to Activated. Activation locks the Order Products against further edits and triggers any downstream automation listening for the status change.

  5. Verify the line items

    Open each Order and spot-check the OrderItem records. Confirm UnitPrice, Quantity, Service Date, and any custom prorated fields match the quote lines.

  6. Hand off to billing or fulfillment

    Downstream automation (Salesforce Billing, an external ERP, fulfillment platform) picks up the activated Order. No further CPQ action is required.

Mandatory fields
Quote.Statusrequired

Must be Contracted before Generate Orders is available.

Quote.Orderedrequired

Must be false; the action will not re-fire on a quote that already generated orders.

Order Byrequired

Decides how lines split across orders.

Pricebookrequired

Order and OrderItem records require a Pricebook2 reference; CPQ copies the quote''s pricebook automatically.

Gotchas
  • Generate Orders fires only once per quote. Regenerating requires manually flipping Quote.Ordered back to false and deleting the existing Order records.
  • Order Activation is one-way; activated Orders cannot be edited without de-activation, which has downstream impact on billing and fulfillment.
  • Subscription proration math depends on the org-level Day Count Method setting. Switching from Actual to 360-day mid-year produces inconsistent pricing across orders.
  • Multi-quote opportunities require careful handling. Only the primary quote can be contracted by default; generating orders from multiple quotes on the same opportunity needs custom CPQ configuration.
§

Trust & references

Sources

Cross-checked against the following references.

Official documentation

Straight from the source - Salesforce's reference material on Generate Orders.

Was this entry helpful?
Help us write better definitions. Quick reactions or detailed edit suggestions.

About the Author

Dipojjal Chakrabarti is a B2C Solution Architect with 29 Salesforce certifications and over 13 years in the Salesforce ecosystem. He runs salesforcedictionary.com to help admins, developers, architects, and cert/interview candidates sharpen their fundamentals. More about Dipojjal.

§

Test your knowledge

Q1. What does Generate Orders do?

Q2. Where does Generate Orders fit in the quote-to-cash flow?

Q3. What feature is Generate Orders part of?

§

Discussion

Loading…

Loading discussion…