Named Price Lists
Create and manage named price lists with automatic customer assignment, validity periods, and priority-based selection.
Overview
Price Lists provide:
- Named entities: Give meaningful names to pricing agreements
- Auto-assignment: Assign customers based on attributes
- Base pricelist: Separate
base_pricelistprice type - Date validity: Both pricelist and product-level dates
- Multi-level assignment: Customer, group, or attribute-based
Database Structure
Main Tables
| Table | Purpose |
|---|---|
pricesystem_pricelist | Pricelist definitions |
pricesystem_pricelist_product | Product prices within lists |
pricesystem_pricelist_customer | Direct customer assignments |
pricesystem_pricelist_group | Group assignments |
Pricelist Fields
| Field | Description |
|---|---|
| name | Unique pricelist name |
| active | Enable/disable |
| priority | Conflict resolution |
| from_date / to_date | Validity period |
| is_base_pricelist | Mark as base_pricelist type |
| customer_attribute | Auto-assignment attribute |
| customer_attribute_value | Value to match |
Creating a Pricelist
- Navigate to Pricesystem >Pricelist > All Pricelist
- Click Add New
- General Information:
- Name: "Enterprise Q1 2025"
- Active: Yes
- Priority: 20
- From Date: 2025-01-01
- To Date: 2025-03-31
- Is Base Pricelist: No
- Products Tab:
- Add products with qty and price
- Set product-specific validity dates
- Customers Tab:
- Assign specific customers
- Groups Tab:
- Assign customer groups
- Save
Assignment Methods
1. Direct Customer Assignment
Manually assign customers to pricelists via admin.
2. Group-Based Assignment
All customers in a group inherit the pricelist.
3. Attribute-Based Auto-Assignment
At registration, customers are auto-assigned based on:
- Customer attribute (e.g., company_type = "enterprise")
- Address attribute (e.g., country = "US")
- Can require both (AND) or either (OR)
Enable at: Pricesystem >Pricelist Settings > Enable Auto-Assignment
Note: In this code snapshot, the registration observer reads a legacy config key for this toggle. If auto-assignment does not trigger, verify the installed module version and key mapping.
Base Pricelist Feature
Mark one pricelist as "Base" to serve as default:
- Base pricelist is treated as a separate price type and still requires customer/group assignment
- Uniqueness per website is enforced when Enable base pricelist validation is enabled
Merge Behavior
When multiple pricelists have the same priority:
- Disabled: Lower-priority pricelists are ignored; highest-priority matches are still combined per qty
- Enabled: All matched pricelists are considered; per-qty value uses priority and then global strategy for ties
Configure at: Pricesystem >Pricelist Settings > Merge Pricelist Qtys
Use Cases
Contract Pricing
- Name: "Acme Corp 2025 Contract"
- Dates: Contract period
- Products: Contracted items with agreed prices
- Customer: Acme Corp only
Seasonal Campaign
- Name: "Summer Sale 2025"
- Dates: June 1 - August 31
- Products: Summer items with discounts
- Groups: All retail customers
Volume Tiers
- Name: "Distributor Standard"
- Products: Each with qty tiers (1-99, 100-499, 500+)
- Groups: Distributor group
- Is Base: Yes
