Info

This feature was designed to be super fast by running only the required logic of pricing engine.

Skip heavy pricing

Manual price override is creating pricing adjustment, exactly as out-of-the-box implementation does. The difference is, that pricing engine it not ran after. Instead, one can configure selectively which pricing plan steps should be executed. SFIX will create regular pricing context and run those step as out-of-the-box pricing engine would do. This allows to run any custom logic and maintain consistency.

Implementation Logic

sfix_ApplyAdjustment Integration Procedure: Apply Adjustment IP

Running pricing plan steps after override

You can configure SFIX to run pricing plan steps after applying an override, eg. to do some pricing variable calculations. Create CPQ Adjustment Pricing Step custom metadata entry, eg.:

  • Label: Store MonthlyUnitPrice
  • CPQ Adjustments Pricing Step Name: Store_MonthlyUnitPrice
  • Sequence: 61.30
  • Class Name: PricingPlanStep
  • Method Name: PricingVariableCalculation
  • Parameters: {“MNTH_UNIT_PRC”:”IF(vlocity_cmt__RecurringCharge__c==null, MNTH_UNIT_PRC, REC_MNTH_STD_PRC)”}
  • Is Active: checked

Custom Metadata

Note: For all out-of-the-box SFIX pricing logic specify PricingPlanStep as class name.

Complex pricing scenarios

When overriden values are further modified in subsequent pricing plan step, you might need to re-set values before running adjustment logic.

  1. Define pricing variables to keep adjusted values and bind them to fields:
    • OT_STD_PRC –> OneTimeAdjustedCharge__c
    • REC_MNTH_ADJSTD_PRC –> RecurringAdjustedCharge__c
  2. Define pricing plan step to save adjusted values:
    • Name: Store Adjusted OTC & MRC
    • Class Name: PricingPlanStep
    • Sequence: 61 (right after OOTB step: Apply Charge Manual Adjustments)
    • Method Name: PricingVariableCalculation
    • Parameters: {"OT_ADJSTD_PRC":"OT_STD_PRC", "REC_MNTH_ADJSTD_PRC":"REC_MNTH_STD_PRC"}
    • Is Active: checked
  3. Modify integration procedure sfix_applyAdjustment to provide additional parameter:
    • pricingVariableMapping = {"OT_STD_PRC":"OneTimeAdjustedCharge__c", "REC_MNTH_STD_PRC":"RecurringAdjustedCharge__c"}

Additional fields

When you need some additional fields fetched or returned add fields parameter with comma-separated list of fields to select