You are here:
Pricing Plans in EPC
Using a pricing plan, Salesforce Industries Communications, Media, and Energy supports different pricing calculations and storage for different line items. For example, some devices, premium support, and installation may have different price calculation methods. A pricing plan can calculate tier-based costs, promotion discounts, agent discounts, taxes, and more.
A pricing plan can combine a series of pricing flows and perform calculations in a specific sequence. A pricing plan supports line-level calculations and rollups. For example, if the total cost of the order is greater than $100, then installation is 50% off. After the line items are added and the 50% taken off of the price, Salesforce Industries Communications, Media, and Energy can perform a second rollup.
A pricing plan must use the PricingPlanService interface implementation in the Pricing Interface.
Each pricing plan step can call processes to perform the necessary calculations. Steps usually call functions. When you call the step, you must define some input parameters, such as the current line item and current order. Each step depends on the previous step. Steps cannot run in parallel.
When you create a pricing plan, provide the following information:
-
General Properties
-
Pricing Plan Steps
A pricing plan includes the following properties:
-
Pricing Plan Name
-
Code
-
Description
-
Active
-
Effective start and end dates
You can manage pricing plan steps and transfer pricing plans across orgs.
-
Create, update, delete, search, and view a pricing plan.
-
Create, update, delete, and view pricing plan steps.
-
Sequence pricing plan steps.
-
Define pricing plan step functions and input parameters.
-
Create products that use a pricing plan.
-
Export a pricing plan in a DataPack.
-
Import a pricing plan in a DataPack.
Calculating Taxes Using a Pricing Plan
Using a pricing plan, you can calculate taxes for a specific product and for the cart total. Pricing variables in steps enable adding and rollups in calculations. You could specify a tax on one or more products that must be added to the appropriate line item cost and rolled up, or that tax is calculated per line item and rolled up.
For example, there is a standard monthly recurring cost (MRC_STD) and a standard nonrecurring cost (NRC_STD). Tax is calculated on the original, or base, price. Variables can contain the standard tax to add (MRC_STD_TAX_ADD) and the price after tax (MRC_STD_TAX_AMT).
-
MRC_STD_TAX_AMT = MRC_STD * <tax>
-
MRC_STD_TAX_ADD = MRC_STD + MRC_STD_TAX_AMT
Similar variables can exist for nonrecurring charges as well. Rollup variables contain the pre-tax and post-tax rollup values. To calculate the tax, the step calls a function.
Tax calculation is complex. Salesforce recommends that customers consider using a third-party application that integrates with pricing.
Applying Discounts Using a Pricing Plan
At this time, when discounts apply, Salesforce Industries Communications, Media, and Energy calculates them in parallel. For example, there are multiple discounts applied to one product of 50%, 40%, and 10%. Currently, all discounts apply in parallel, so the product price becomes $0.00. However, if the discounts applied serially, the product price becomes 27% of the original price.
Using Pricing Plans for Attribute-Based Pricing
Another important way to use a pricing plan is to price products based on their attributes. For more information, see Attribute-Based Pricing.
- Default Pricing Plan in EPC
Salesforce provides a default pricing plan with nine steps. You can rearrange the steps and add new steps to provide additional logic to your pricing plan. - Install and Run Extended Pricing Plans
Use the Extended Pricing Plans where your cart size is large, for instance, bulk replace, bulk change, or multisite use cases. The default pricing plan prices the whole cart at once. With extended pricing plans, you can price specific line items. Extended pricing plans consist of two distinct plans: one for line item–level pricing and another for parent object–level pricing. - Create a Pricing Plan and Pricing Steps in Pricing Designer
Create a pricing plan in the Pricing Designer. A pricing plan is a sequence of steps with dependencies. Each step defines what happens in that step and is a process, function, or procedure. When the steps are called, input parameters send the necessary information. The logic in the step computes the results. Salesforce provides some functions, but you can extend and add new steps and new functions. - Base Pricing Adjustments
Salesforce records the base price for every line item in the pricing log. The pricing log is a JSON field on the line item object that enables the pricing waterfall in the Price Details in the Industries CPQ Cart. Although the pricing log is efficient for the Cart's operations, it is not recommended for configurations or services that need to evaluate past pricing history. - Sequential Promotions and Discounts
By default, multiple promotions or discounts for a product apply to the original base price. But you can enable each discount or promotion to be applied in sequence to the product price that’s calculated after each promotion or discount is applied. You can enable this sequential pricing for promotions, contextual discounts, or offer adjustments across an org. - Pricing Service Implementations and Pricing Fields
Using a pricing plan is recommended, but pricing service implementations are supported for backward compatibility. The Pricing Interface includes two implementations based on pricing elements (as opposed to price books): PricingElementServiceImplementation and PricingPlanService.

