As a Pricing Administrator, you can store contracted prices in CPQ. The contract pricing feature offers a way to negotiate a price for a product that is not being purchased in the current quote. CPQ uses a set of agreed upon prices for a customer for all the subsequent transactions. CPQ provides the following options to implement contract pricing.

CPQ supports contracted price lists specific to customers. Each customer might have different pricing information. Whenever customers order products or services with the same contracted price list, agreed prices will be given to them. 

CPQ can maintain contract price lists (customer specific price lists) to keep a track of negotiated prices for each customer. The customer provides a set of agreed upon prices using an offline process or mechanism. You must set up this information as a price list using the standard CPQ capability. After you set up this price list, any new quote or order coming into CPQ will specify the customer specific price list as the price list on the quote or order.

When to use Contract Price Lists?

  • Low customer base: Customer specific price lists make perfect sense, when the number of customers is not huge, as creating customer specific price lists creates a lot of data in CPQ and over a period of time, with changes and renewals, the number can grow exponentially.
  • Low number of SKUs in catalog: You must use customer specific price lists when the number of products being negotiated with a customer is of the magnitude of less than 1000 products. If the product catalog contains a large number of products, customer specific price lists do not offer the flexibility as price programs. In such cases, price programs make better sense.
  • Better suited for standalone products: If the product catalog contains a large number of highly complex configurable products, customer specific price lists do not make sense as each product can be configured a lot of different ways.

Contract Pricing is supported for standalone and bundles. Contract Pricing for Options is supported provided options are defined in the same contract price list as the bundle. Options inherit the contract price list from the bundle. If an option is included in two different bundles in a quote, CPQ adds the option twice to the Contract Price List (resulting in two contract price list items). CPQ then applies pricing on the quote based on the selection of the bundle and options, and calculates the price of the option from the price list item that has relation to the current bundle under which it is being configured.

The contract pricing for bundles works fine for a single-level bundle and same option, however it does not work for same sub-bundles.

Contract pricing does not work for when an option is part of different bundles and inherit price from different price lists.