Smart Price Selection

The Pricing System uses configurable selection strategies to determine which price applies when multiple rules match.

How It Works

When a customer views a product, the system:

  1. Collects all matching prices from:
    • Customer Prices
    • Category Prices
    • Price Lists
    • Product-Customer Matrix
  2. Applies validity checks (dates, website, quantity)
  3. Resolves conflicts using configured strategy
  4. Returns the winning price

Priority Levels

Priority fields are available in Category Prices, Price Lists, and Product-Customer Matrix (not Customer Prices). The ranges below are team conventions, not hard-enforced system limits:

Priority RangeTypical Use
0-10Base/default pricing
11-30Group/segment pricing
31-50Promotional pricing
51-70Contract pricing
71-99VIP/override pricing

Note: Higher numbers = higher priority where a priority field exists.

Selection Strategies

1. Lowest Price (Default)

The system selects the lowest resulting price value.

Example:

  • Customer Price: $100
  • Pricelist Price: $90
  • Winner: Pricelist Price ($90)

2. Highest Price

The system selects the highest resulting price value.

Example:

  • Customer Price: $100
  • Pricelist Price: $90
  • Winner: Customer Price ($100)

3. Sort Order

Define your own price type ordering in admin:

  1. Navigate to Stores >Config > Pricesystem
  2. Find Price Priority Order
  3. Drag-and-drop price types to set order

4. Formula (Advanced Config Add-On)

Uses formula-based calculation logic instead of direct lowest/highest/sort-order selection.

Module-Specific Strategies

Category Prices

Extra selection strategies for customer vs group conflicts:

StrategyBehavior
Select price by priority (CHOOSE_BY_PRIORITY)Compare priorities
GROUP_PRICE_FIRSTAlways use group price
CUSTOMER_PRICE_FIRSTAlways use customer price

Price Lists

Merge behavior for list conflicts:

  • Disabled: Lower-priority lists are ignored; same highest-priority lists can still combine qty tiers
  • Enabled: Lower-priority lists can also participate in qty-tier merge

Configuration

Core Priority Settings

Stores >Configuration > MageB2B > Pricesystem > Price Calculation:

SettingDescription
First PriorityCustomer vs Group discount order

Stores >Configuration > MageB2B > Pricesystem > Price Select Rule settings:

SettingDescription
Price Select RuleLowest / Highest / Sort order / Formula (Advanced Config Add-On)

Category Price Settings

Stores >Configuration > MageB2B > Pricesystem > Categoryprice settings:

SettingDescription
Price Select RuleSelect price by priority / Group First / Customer First

Pricelist Settings

Stores >Configuration > MageB2B > Pricesystem > Pricelist settings:

SettingDescription
Merge Pricelist QtysControls whether lower-priority lists can join qty-tier merge

Best Practices

  1. Document your priority scheme in team wiki
  2. Use consistent ranges across all modules
  3. Test edge cases with overlapping rules
  4. Audit regularly for conflicting priorities
  5. Treat ranges as team convention; system limits depend on module schema

Troubleshooting

Wrong Price Displayed

  1. Check priority values of all matching rules
  2. Verify date validity of all rules
  3. Check website scope of rules
  4. Review selection strategy configuration

Enable Debug Logging

Stores >Config > Pricesystem > Debug > Enable log: Yes

Check var/log/pricesystem.log for price calculation details.

Found an issue with this documentation? Let us know