Order Management Overview

by Community Manager ‎12-20-2016 01:10 PM - edited ‎04-26-2017 03:17 PM


Users can create Orders directly from a Quote, and create Contracts directly from an Order. 



Quote-level Order creation is guided by the Allow Multiple Orders package-level setting. When enabled, users can break a Quote into multiple Orders by manually choosing the quantity of each quote line to be included on the Order. When unchecked, creating and saving a new Order will automatically populate that Order with Order Products copied from Quote Lines associated with the primary Quote on the Opportunity.


The following article provides walkthroughs for creating an Order from a Quote/Opportunity and for generating a Contract from an Order, followed by reviews of new Order/Order Product features and fields.


Quote Line Groups

Orders do not have equivalent grouping structures to Quote Line Groups. When you create an Order from a Quote with Quote Line Groups, Salesforce CPQ copies Quote Line Group values to that group's Quote Lines, then copies the Quote Line values into Order Products as default values. However, Salesforce CPQ will not copy grouping structures to contain a list of Order Products.


As an alternative, you could split the quote lines in a quote line group into multiple Orders.


Feature Availability

Order Management requires a Salesforce CPQ Summer 16 package or higher running the Advanced Calculator.


Users will have access to different Order Management features based on their Salesforce CPQ package:

  • CPQ Edition: Create Orders button on Quote and Opportunity. Selecting this button and saving the new Order will create an Order automatically populated with Order Products copied from Quote Lines associated with the primary Quote on the Opportunity.
  • CPQ+ Edition Only: Package-level Allow Multiple Orders setting. The value of this setting will change the result of selecting Create Orders.
    • When checked, users can create multiple orders associated to the primary Quote. Selecting the Create Orders button will take users to an order creation screen. Saving the order will allow them to select a subset of Products with lower quantities than the corresponding line item quantities in the Primary Quote, then add this subset to a new Order.
    • Leaving this setting unchecked provides the same functionality as selecting Create Orders in a CPQ package.

Users with SalesForce Premium edition may review Create Multiple Orders from Quote.


Caution: Administrators must ensure Order is enabled in their orgs before this feature can be used. Navigate to Setup > Customize > Orders > Change other order-related settings and check the Enable Orders box. If you have negative quote lines, you will also need to select Enable Negative Quantity.

Caution: You cannot install 25.3 or newer packages without Orders being enabled, even if you are not using orders.




This feature relates to the following new package-level settings in the Order tab:

  • Require Approved Quote: When checked, an order cannot be placed when the primary quote is not in Approved status. 
  • Allow Multiple Orders [CPQ+ only]: When checked, users can create multiple Orders per Quote.


Field-level permissions should be enabled for the following fields on Standard Objects:

  • Order: Contracted, Payment Term, Quote
  • Order Product: Quote Line, Required By

CPQ Admin User and CPQ User permissions should be enabled for the following fields on Standard Objects:

  • Order Product: Unprorated Net Price

Fields & Page Layouts

A detailed description of new fields and page layout changes may be found in Summer 16 Release Feature Setup.



Create an Order from Quote/Opportunity

Follow these steps when Allow Multiple Orders is left unchecked:

  1. Navigate to the Quote / Opportunity where you want to create an Order (if you are using a Quote, this Quote must be the Opportunity's Primary Quote.) Click the Create Order button.
  2. You will be directed to the New Order page. Fill out the new Order information as needed, then click Save. 
  3. Clicking Save will create an Order with Order Products copied from Quote Lines related to the primary Quote. The Order Products copy values from the following Quote Line fields, if present (any blank field values will convert to empty values on the Order Product list.)
    • Quantity
    • List Price
    • Unit Price
    • Total Price
    • Quote Line ID
    • Required By: The Order object contains logic where a component Order Product is automatically created from the parent Order Product. This field references the Parent Order Product.
    • Billing Frequency
    • Rating
    • Note: Salesforce CPQ will also automatically add any Quote Products that were marked optional.
  4. Example:Order Products.png


Create an Order from Quote / Opportunity Validation Rules:

  • An order cannot be created from the Opportunity when the Opportunity does not have a primary quote.
  • The Order Start Date cannot be later than the earliest Start Date of all Order Products.
  • Users cannot order more of a line than quoted.
  • If Require Approved Quote is enabled, a new Order may only be created if the Quote is in Approved status.
  • Users cannot order a quote line with a quantity of zero.


Create Contract from Order

  1. Navigate to an activated Order and click the Contracted checkbox on the Order detail page. Ensure that the Order is activated - select the Activate button if it appears in the button list.
  2. The Contract generation process follows the same steps and logic as generating a Contract from the Opportunity. 

Note: If you deactivate an activated Order, all Order Products will have their own Activated fields unchecked. However, if you uncheck Contracted on a previously-contracted Order, the Order Products will not have their own Contracted fields unchecked.



All features below are available in Salesforce CPQ Summer 16 and newer unless otherwise indicated.


Order Product Start Date / End Date Logic

Users can now adjust an Order Product's Start Date & End Date during or after Order creation. The Order Product Start Date will automatically meet the Order Start Date, then the Order Product End Date will be set so it is proportional to the amount of time between the Quote Line Start Date and End Date. For example,

  • Quote Line Start & End Date: 07/01/2016 and 06/30/2017.
  • Order Start Date is set to 08/01/2016.
  • The Order Product Start Date is set to 08/01/2016. In order to match the one-year span of the Quote Line dates, the Order Product End Date will be set to 07/30/2017.

After all Order Products have been added to the Order, the Order End Date will default to the latest End Date among all Order Products - in the case above, the Order End Date would be 07/30/2017.


You can move the Order Start Date forward or backward after Order creation. If changed, the Order Product Start and End Dates will be automatically changed according to the logic above. However, an error message will occur if the Order End Date is changed (either manually or automatically due to Order Start Date changes) to a date earlier than the latest End Date among all Order Products.


During Contract generation, the Order Start and End Dates will be used as the Contract Start and End Dates, while the Order Product's Start and End Dates will be used as the Subscription Start and End Dates. If the Order Product End Dates are null, the Subscription Start and End Dates will draw from the Order Start and End Dates instead.


For MDQ lines, if a previous segment has been ordered in a separate Order, the Order Product Start Date of a later segment will be set to Max(Order Start Date of the new Order, Previous Segment Order Product End Date).


Order Product Dates

You can edit Order Product Start/End Dates as follows:

  1. The Order Start Date may be moved forward or backward
  2. The Order Start Date may be moved forward while the End Date is moved backward.

When the Order (or other Orders in the same Opportunity) contains segmented Products, segment validation rules will still apply - the later segments must have a later Start Date than the End Dates of earlier segments.


Discount Schedules

Orders and Order Products now have lookups to Discount Schedule records. This allows users to automatically populate existing Quote Line Discount Schedules into the Order's Discount Schedule related list. If the Quote Line has custom Discount Schedules, the Order Products will also have the custom Discount Schedules snapshotted on the Order.


The Price currency field has also been added to the Discount Tier object. This field will be populated whenever a set of new Discount Schedules are created for a new Order record. This field must be populated for all Discount Unit values: Percent, Amount and Price.


Unprorated Net Price

The Order Product field Unprorated Net Price displays the full term price for the Order Product's specific quote line. For example, if the Order has a Subscription term of 36 months, and the Product Subscription term is 12 months, the Unprorated Net Price will display the Order Product Net Price for 12 months.


This value is calculated using the following logic:

  • Unprorated Net Price = Unit Price / Effective Subscription Term * Default Term (from Product.)

Thus, a Subscription Product with a Unit Price of $120, Subscription Term of 12 months and Product Subscription Term of 6 would calculate the Unprorated Net Price as follows:


$120 / 12 = 10 * 6 = $60 Unprorated Net Price.


This field should be added to the CPQ Admin User and CPQ User permission sets. However, it will not be added to any page layout since it is primarily used for billing calculation.


Billing Frequency

The Order Product and Object field Billing Frequency looks up to the Quote Line field Billing Frequency. If the Quote Line Billing Frequency is blank, the value here will default to the value of the Quote header.


Lock Orders with Activate

Selecting Activate on an Order locks it so users cannot edit it; Orders must be Activated to be contracted. After activation, Active changes to Deactivate, which you can select to unlock the order and re-enable editing. The Order's Status field will display "Draft" by default / while deactivated and "Activated" while activated.


Note: Users can only activate/deactivate an Order if they have specific app permissions. Admins wanting to grant activation permission should navigate to that User's profile, select App Permissions, then Enable Activate Orders.activate orders.png


Inherited Quote Fields (Spring 17)

As of Spring 17, ordering from a Quote will automatically populate any new Order and Contract records with the values of shared Quote fields:

  • Renewal Uplift Percent: Enter a rate for renewal price increases. (Inherits from parent Quote)
  • Renewal Term Number: Specify the term of the renewal. By default, it must match the original contract term. (Inherits from parent Quote)



Order Splitting (Spring 17)

Use the Quote fields Order By and Order by Quote Line Group to generate Orders by field values or Quote Line Groups respectively:

  • Order By: Generate orders grouped by this field's value. For example, if you set the value to ProductFamily__c and your Quote contains line items with Product Family values of Hardware, Software, and Agriculture, you'll generate three orders - the first has order products for all the Hardware lines, the second has order products for all the Software lines, and the third has order products for all the Agriculture lines.
  • Order By Quote Line Group: Create an order for each quote line group and its associated quote lines.

You may only have one of these fields populated at a time.



Syncing Subscriptions and Order Products (26.1 / Winter 17)

Contracting an Order creates lookups between Order Products and their corresponding Subscriptions.


Subscriptions created this way will now populate their Start Date and End Date values based on the following logic:

  • If a Subscription's corresponding Order Product is not active/complete, Salesforce CPQ will activate that Order Product and the Subscription will generate based on the Order Product Start Date and End Date
  • If a Subscription's corresponding Order Product is active, the Subscription will generate based on the Order Product Start Date and End Date
  • If a Subscription's corresponding Order Product does not have a populated Start Date and End Date, the Subscription will generate based on the Opportunity's Start Date and End Date

Any further Order/Order Product date changes will be synchronized to Start Dates and End Dates on the corresponding Contract/Subscription. However, Contract/Subscription date changes cannot synchronize back to the Order/Order Product. Order dates cannot be changed once the Order is activated.


by MridulaC
on ‎04-27-2017 11:38 AM

Order splitting functionality doesn't seem to be working correctly. Not sure if I am missing some settings. Here are the issues I ran into:


1. Using a custom field in  'Order by' (after adding the API name to the picklist) results in a Null Exception error. In package settings, I tried with both multiple order creation allowed and disallowed.


2. Switching to the standard field Product Family in the Order By drop-down on the quote means that the null exception error no longer appears. However, with multiple order creation turned off, all lines get added as order products on one order. I would have expected the orders to split automatically by product family. With multiple order creation allowed, it asks me to choose which lines to add to the order, but this manual splitting can be used even without the 'Order by' field


3. Also tried the Order By Quote Line group checkbox on the quote as well and that also did not work.  I tried with the Setting for Allow multiple orders to unchecked and it still put everything in the same quote, when I check the box it breaks them up by group when I create the order but I still have to manually select what to include in the order

by MD
on ‎05-23-2017 06:51 PM

Order creation does not appear to work in Lightning - I want to be able to create mulitple orders from a quote and it works perfectly in Classic but not in Lightning. Is anyone else having this issue?

by svolynets
4 weeks ago - last edited 4 weeks ago


It seems like if  two Quote Lines are converted into two separate Orders, the PoT Quote Line is not converted propotionally (at least i can not reproduce it neither manually via Quote-Create Order, nor via Opportunity->Orderred checkbox with Quote-Order By field). Could you please point to a topic, where this behavior is described in details?