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.
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.
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.
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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Must be Contracted before Generate Orders is available.
Must be false; the action will not re-fire on a quote that already generated orders.
Decides how lines split across orders.
Order and OrderItem records require a Pricebook2 reference; CPQ copies the quote''s pricebook automatically.
- 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
Cross-checked against the following references.
- Generate Orders from QuotesSalesforce Help
- Salesforce Order Management OverviewSalesforce Help
Straight from the source - Salesforce's reference material on Generate Orders.
- Order Standard ObjectSalesforce Developers
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 discussion…