In the Smart Cart flow, CPQ allows you to run pre-pricing logic before you submit the configuration for pricing, provided that your administrator has defined pre-pricing logic. Pre-pricing feature executes any custom logic defined by the administrator to be executed before any pricing actions. Pre-pricing is used to define any fields that are needed to be predefined before pricing is calculated. Click the Pre-Price button on the menu.

After the pre-pricing logic is executed, click Submit for Pricing(Async) button on the Cart page to calculate the price. After you click Submit for Pricing(Async), Net Price is calculated and the total is displayed next to the corresponding line item. If you change any fields that are used in pre-pricing logic or you add new line items to the cart that requires pre-pricing, you must execute pre-pricing again. 

After the pricing is complete, you must run post-pricing logic, if your Administrator has defined a custom post-pricing logic. Post-pricing uses the pricing fields like Net Price and Net Extended Price which are calculated after you submit the configuration for pricing. Click the Post-Price button on the menu. If any of the pricing fields are changed after post-pricing, you must execute post-pricing again. 

After you add products to the cart and if the pre-pricing and post-pricing logic are defined, all the pricing and finalization actions like Submit for Pricing (Async), Post-Price and Finalize are disabled on the menu. The buttons are enabled one by one as you perform the corresponding actions. For example, before you can submit the configuration for pricing you must execute pre-pricing logic, then all the buttons except Pre-Price are disabled. Once you pre-price the cart, Submit for Pricing (Async) is enabled but the Post-Price and Finalize buttons are still disabled. After you click Submit for Pricing (Async) button and pricing are complete, Post-Price is enabled. And only after post-pricing, Finalize is enabled. In the scenario when you update a field after pricing that requires pre-pricing, all the buttons except Pre-Price are disabled. The only buttons that are always enabled are Save, Abandon and Close.

Pre-pricing and Post-pricing logic are automatically executed if your administrator has configured the settings in Config System Properties.

After the pricing is complete, you can finalize the cart and see that a hierarchy of configuration is generated on the Quote Detail page.