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:
- Collects all matching prices from:
- Customer Prices
- Category Prices
- Price Lists
- Product-Customer Matrix
- Applies validity checks (dates, website, quantity)
- Resolves conflicts using configured strategy
- 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 Range | Typical Use |
|---|---|
| 0-10 | Base/default pricing |
| 11-30 | Group/segment pricing |
| 31-50 | Promotional pricing |
| 51-70 | Contract pricing |
| 71-99 | VIP/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:
- Navigate to Stores >Config > Pricesystem
- Find Price Priority Order
- 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:
| Strategy | Behavior |
|---|---|
Select price by priority (CHOOSE_BY_PRIORITY) | Compare priorities |
| GROUP_PRICE_FIRST | Always use group price |
| CUSTOMER_PRICE_FIRST | Always 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:
| Setting | Description |
|---|---|
| First Priority | Customer vs Group discount order |
Stores >Configuration > MageB2B > Pricesystem > Price Select Rule settings:
| Setting | Description |
|---|---|
| Price Select Rule | Lowest / Highest / Sort order / Formula (Advanced Config Add-On) |
Category Price Settings
Stores >Configuration > MageB2B > Pricesystem > Categoryprice settings:
| Setting | Description |
|---|---|
| Price Select Rule | Select price by priority / Group First / Customer First |
Pricelist Settings
Stores >Configuration > MageB2B > Pricesystem > Pricelist settings:
| Setting | Description |
|---|---|
| Merge Pricelist Qtys | Controls whether lower-priority lists can join qty-tier merge |
Best Practices
- Document your priority scheme in team wiki
- Use consistent ranges across all modules
- Test edge cases with overlapping rules
- Audit regularly for conflicting priorities
- Treat ranges as team convention; system limits depend on module schema
Troubleshooting
Wrong Price Displayed
- Check priority values of all matching rules
- Verify date validity of all rules
- Check website scope of rules
- Review selection strategy configuration
Enable Debug Logging
Stores >Config > Pricesystem > Debug > Enable log: Yes
Check var/log/pricesystem.log for price calculation details.
