Product bundle pricing rules not applying correctly in quote generation with multi-currency price books

We’re experiencing issues with CPQ pricing rules not applying correctly when generating quotes with product bundles. Our setup includes multi-currency price books with bundle discounts configured at 15% for quantities over 10 units.

The problem occurs specifically when:

  • Bundle contains products from different price books
  • Currency conversion is involved (USD to EUR)
  • Discount tiers should apply based on total bundle quantity

Current configuration:


PriceRule: Bundle_Discount_Tier_1
Condition: SBQQ__Quantity__c >= 10
Action: SBQQ__Discount__c = 15
Scope: Product Bundle Level

Quotes are generating without the discount applied, showing full price despite meeting quantity thresholds. The pricing rule appears active in CPQ settings and the bundle structure looks correct. Has anyone encountered similar issues with bundle pricing logic across multiple currencies?

After reviewing your configuration, I found the root cause. Your pricing rule logic needs adjustment to handle multi-currency bundle scenarios correctly.

Issue 1: CPQ Pricing Rule Evaluation Order Your current rule evaluates at ‘Product Bundle Level’ but the condition references SBQQ__Quantity__c, which is a line-item field. In multi-currency scenarios, CPQ processes each currency group separately before bundle aggregation, causing the quantity check to fail.

Solution for Pricing Rule Logic: Update your pricing rule configuration:


PriceRule: Bundle_Discount_Tier_1
Condition: SBQQ__BundleRoot__c = TRUE &&
           SBQQ__BundledQuantity__c >= 10
Action: SBQQ__AdditionalDiscountAmount__c =
        SBQQ__CustomerTotal__c * 0.15
Evaluation Event: Before Calculate
Evaluation Scope: Product

The key changes: Use SBQQ__BundledQuantity__c which aggregates quantities across all bundle components regardless of currency, and apply the discount as an amount rather than percentage to avoid currency conversion issues.

Issue 2: Multi-Currency Price Book Setup Your bundle components need price book entries in EACH currency you support. Navigate to each product record and verify:

  • Standard price book has entries for USD, EUR, and any other active currencies
  • Custom price books inherit these entries
  • The ‘Use Standard Price’ checkbox is UNCHECKED for bundle parents

Create missing price book entries:

  1. Go to each product in the bundle
  2. Related List: Price Books
  3. Add entries for missing currencies with appropriate conversion
  4. Ensure ‘Active’ checkbox is selected

Issue 3: Bundle Discount Application For percentage-based bundle discounts in multi-currency environments, you need a custom price action that handles currency normalization:

  1. Create a custom field: Bundle_Discount_Percent__c (Number, 2 decimals) on Quote Line object
  2. Update your pricing rule action to populate this field: Bundle_Discount_Percent__c = 15
  3. Create a Price Action that calculates: SBQQ__AdditionalDiscountAmount__c = (SBQQ__ListTotal__c * Bundle_Discount_Percent__c / 100)

This approach calculates the discount in the quote line’s native currency, avoiding conversion errors.

Additional Configuration Checks:

  • CPQ Settings > Plugins: Disable any custom quote calculator plugins temporarily to test
  • Product Bundle Configuration: Verify ‘Price Editable’ is FALSE on all bundle components
  • Quote Line Editor: Check that ‘Calculate Bundle Price’ is enabled in Package Settings
  • Field-Level Security: Grant read/write access to SBQQ__AdditionalDiscountAmount__c for all CPQ users

Testing Steps:

  1. Create a new quote in EUR currency
  2. Add your bundle with quantity = 12
  3. Verify SBQQ__BundledQuantity__c shows 12 on the parent line
  4. Click ‘Calculate’ and confirm discount applies
  5. Repeat test in USD to ensure consistency

The combination of correct field references, proper evaluation scope, and currency-aware discount calculation should resolve your bundle pricing issues. If problems persist, enable CPQ Debug Logs (Setup > Debug Logs > New) and filter for ‘SBQQ’ to see the exact calculation sequence.


This draft is based on general Salesforce knowledge. It has not been verified against your specific version and environment. Practitioners: verify the steps and share your experience below.

I’ve seen this before. Check if your pricing rule evaluation scope is set correctly. When dealing with multi-currency scenarios, CPQ evaluates rules at the quote line level first, then rolls up to bundle level. If your price books have different currency codes, the quantity aggregation might not be working as expected. Also verify that the SBQQ__PriceBookEntryId__c field is populated correctly for all bundle components.

Are you using advanced calculation for your bundles? We had a similar issue where bundle discount rules weren’t firing because the calculation sequence was wrong. Go to CPQ Settings and check the ‘Calculate Bundle Price’ option. Also, make sure your pricing rule has the correct evaluation event - should be ‘Before Calculate’ for bundle-level discounts to apply properly.

Check your price book setup for the bundle. When you have products spanning multiple price books with different currencies, CPQ needs explicit currency conversion rates defined in the org. Navigate to Company Settings > Manage Currencies and verify that conversion rates are active and up-to-date. Also, in your pricing rule condition, try using SBQQ__BundleQuantity__c instead of SBQQ__Quantity__c - this field specifically tracks the aggregate quantity at bundle level rather than individual line items. The scope setting might also need to be ‘Product’ rather than ‘Product Bundle Level’ depending on your CPQ version.

“Confirmed this resolves the multi-currency bundle discount issue — updating the CPQ pricing rule evaluation order from Product Bundle Level to line-item fixed our SBQQ__Quantity__c condition failures immediately.”

Double-check the price book assignments on your bundle configuration object. Each component product needs to exist in the same price book as the parent bundle for discount calculations to aggregate correctly. If you’re mixing price books, the bundle discount logic breaks down because CPQ can’t determine a single reference point for the calculation.

This is likely a field-level security issue combined with pricing rule evaluation timing. I’ve encountered this exact scenario with multi-currency bundles. The pricing engine needs read access to several system fields during calculation. Go to Setup > Price Rule > Field Accessibility and ensure that SBQQ__CustomerPrice__c, SBQQ__NetPrice__c, and SBQQ__RegularPrice__c are all visible to the CPQ Price Rules user context. Additionally, check if you have any custom plugins or calculator plugins that might be overriding the standard bundle pricing behavior. Sometimes custom code runs after the pricing rules and recalculates values, effectively wiping out the discount application.

Look at your product options configuration. For bundle discounts to work across currencies, each optional SKU needs the ‘Bundled’ checkbox enabled and the ‘Apply Immediately’ option set to true. Without these settings, CPQ treats them as separate line items rather than bundle components.