Priority System
The priority system controls the order in which payment profiles are evaluated. When multiple profiles could match a customer or cart, the profile with the lowest priority number wins.
Screenshot placeholder: payment profile grid with visible priority ordering File:
./_screenshots/priority-system.png
How Priority Works
Priority Range
- Valid Range: 1-999
- Lower Number: Higher priority (evaluated first)
- Higher Number: Lower priority (evaluated last)
Evaluation Order
Priority 10 ← Evaluated first Priority 50 Priority 100 Priority 500 Priority 999 ← Evaluated lastThe first profile that matches stops the evaluation. Subsequent profiles are ignored.
Priority Examples
Example 1: B2B Store
Priority 10: VIP Customers - Group: VIP - Methods: All + Net 30 - Condition: None Priority 50: Wholesale Orders - Group: Wholesale - Methods: Bank Transfer, Invoice - Condition: Subtotal >= 500 Priority 100: Retail Customers - Group: General - Methods: Credit Card, PayPal - Condition: None Priority 999: Default Fallback - Group: All - Methods: Credit Card - Condition: NoneScenario 1: VIP customer, cart €600
- Check Priority 10 → MATCH (VIP group)
- Result: All methods + Net 30
- Priorities 50, 100, 999 are not evaluated
Scenario 2: Wholesale customer, cart €600
- Check Priority 10 → No match (not VIP)
- Check Priority 50 → MATCH (Wholesale, >€500)
- Result: Bank Transfer, Invoice
Scenario 3: Retail customer, cart €100
- Check Priority 10 → No match
- Check Priority 50 → No match
- Check Priority 100 → MATCH (General group)
- Result: Credit Card, PayPal
Example 2: Regional Restrictions
Priority 10: EU High Value - Condition: Subtotal >= 1000, Country: DE/AT/CH - Methods: Bank Transfer only Priority 20: EU Standard - Condition: Country: DE/AT/CH - Methods: SEPA, Credit Card Priority 30: US High Value - Condition: Subtotal >= 1000, Country: US - Methods: ACH only Priority 40: US Standard - Condition: Country: US - Methods: ACH, Credit Card, PayPalScenario: German customer, cart €1200
- Check Priority 10 → MATCH (>€1000, DE)
- Result: Bank Transfer only (secure payment for high value)
Scenario: German customer, cart €500
- Check Priority 10 → No match (<€1000)
- Check Priority 20 → MATCH (DE)
- Result: SEPA, Credit Card
Priority Best Practices
1. Specific Before General
Place more specific profiles at higher priority (lower numbers):
✓ GOOD: Priority 10: VIP + High Value (specific) Priority 50: VIP (less specific) Priority 100: All Customers (general) ✗ BAD: Priority 10: All Customers (general) Priority 50: VIP (specific) ← Never evaluated!2. Use Gaps
Leave gaps between priorities for future insertions:
✓ GOOD: Priority 10, 20, 30, 40, 50 (Can insert 15, 25, 35 later) ✗ BAD: Priority 1, 2, 3, 4, 5 (No room for insertions)3. Document Priority Logic
Add comments in profile names:
Priority 10: [P10] VIP - All Methods Priority 50: [P50] Wholesale - Invoice Only Priority 100: [P100] Retail - Standard Methods4. Test Priority Order
Always test with different customer types to ensure correct priority evaluation.
Priority Conflicts
Problem: Overlapping Profiles
Priority 50: Wholesale - Invoice - Group: Wholesale - Methods: Invoice Priority 50: High Value - Bank Transfer - Condition: Subtotal >= 1000 - Methods: Bank TransferIssue: Both have priority 50. Evaluation order is unpredictable.
Solution: Use different priorities:
Priority 40: High Value - Bank Transfer Priority 50: Wholesale - InvoiceProblem: Too Many Profiles
Priority 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20...Issue: Hard to maintain and understand.
Solution: Use larger gaps:
Priority 10, 50, 100, 150, 200...Priority Strategies
Strategy 1: Tiered Approach
Priority 1-99: Exception rules (VIP, special cases) Priority 100-499: Standard rules (customer groups) Priority 500-899: Fallback rules (general restrictions) Priority 900-999: Default rules (catch-all)Strategy 2: Category-Based
Priority 10-19: Customer-specific rules Priority 20-29: Group-specific rules Priority 30-39: Cart-based rules Priority 40-49: Product-based rules Priority 50-59: Region-based rules Priority 900+: Default fallbackStrategy 3: Simple Linear
Priority 10: Most specific Priority 20: Very specific Priority 30: Specific Priority 40: Moderate Priority 50: General Priority 999: DefaultDebugging Priority Issues
Common Issues
Issue: Wrong profile is matching
- Check: Priority order - lower number wins
- Solution: Adjust priorities
Issue: Profile never matches
- Check: Higher priority profile is matching first
- Solution: Lower the priority number or adjust conditions
Issue: Unpredictable behavior
- Check: Multiple profiles with same priority
- Solution: Use unique priorities
Advanced Priority Scenarios
Scenario: Temporary Override
Priority 1: Black Friday Special - Condition: Date range 24-27 Nov - Methods: All methods + Special financing - Status: Active only during promotion Priority 10: Normal VIP - Group: VIP - Methods: All methodsDuring Black Friday, Priority 1 matches first. After, it's disabled and Priority 10 takes over.
Scenario: A/B Testing
Priority 10: Test Group A - Customer IDs: 1-1000 - Methods: New payment method Priority 20: Test Group B - Customer IDs: 1001-2000 - Methods: Standard methods Priority 999: Control Group - All others - Methods: Standard methodsTest new payment methods with specific customer segments.
