Pricing callback provides extensibility points in the Pricing Engine which can be used to extend or override existing behavior of the Pricing Engine based on customer requirements. Pricing callback classes allow you to add pricing logic to the cart that cannot be achieved by out-of-the-box pricing mechanisms, such as Price Rulesets and Price Matrices.

To use the Pricing Callback you must create a custom C# class that implements the following interfaces

InterfaceDescription
IPricingBasePriceCallbackThis interface provides you a mechanism to define custom logic to be executed before, during, and after Base Price Calculation
IPricingTotallingCallbackThis interface provides you a mechanism to define custom logic to be executed before, during, and after adjustment Calculation
IRelatedPricingCallbackThis interface provides you a mechanism to define custom logic for calculating the pricing for related product line items

For accessing non-transactional/master data in callback code, you must only use the data synced in the Extensibility consumer profile. You can use the DBHelper functions to retrieve the synced master data from the TurboPricing data source. For accessing any transactional data such as line-item custom fields, proposal fields, cart fields, and so on, the line item custom fields should be configured in the custom setting "Configure LineItem Custom Fields" and Proposal/cart fields should be configured in the custom setting "Cart Header Criteria Fields" at Salesforce. Also, the line item's product or option relationship fields used in callback must be configured in the Price List Item entity as a part of the "Pricing Master Data Tables" consumer profile.

The following sections describe the interfaces: