Creating Pricelists
Step-by-step guide to creating your first pricelist with products and customer assignments.
Quick Start
- Catalog >Pricelists → Click "Add New"
- Fill basic info (name, dates, priority)
- Configure customer matching rules OR assign groups
- Save pricelist
- Add products with prices
- Activate pricelist
Creating a Pricelist Container
Step 1: Navigate to Grid
Admin Panel >Catalog > Pricelists
Grid shows existing pricelists with:
- Name
- Active status
- Priority
- Date range
- Website
- Base pricelist flag
- Actions
Step 2: Add New Pricelist
Click Add New button.
Step 3: Fill Basic Information
Name (Required)
Descriptive name for the pricelist.
Examples:
- "Wholesale 2025"
- "VIP Pricing Q1"
- "US Region Standard"
- "Black Friday Sale"
- "Contract - ACME Corp"
Is Active (Required)
Toggle pricelist on/off.
- Yes: Pricelist is evaluated for customer matching
- No: Pricelist ignored, even if customers match
Use Case: Prepare pricelists in advance, activate when ready.
Priority (Optional)
Numeric value (0-999) for conflict resolution.
- Default: 0
- Higher = precedence
- Examples:
- 10: Standard pricing
- 20: Promotional pricing
- 30: VIP pricing
- 40: Contract overrides
From Date (Optional)
Start date for pricelist validity.
- Format: YYYY-MM-DD
- NULL: Active immediately
- Example:
2025-06-01(Summer campaign start)
To Date (Optional)
End date for pricelist validity.
- Format: YYYY-MM-DD
- NULL: No expiration
- Must be >= From Date
- Example:
2025-08-31(Summer campaign end)
Website (Required)
Website scope for pricelist.
- Default: Default website
- Multi-website: Select specific site
- Effect: Only customers on this website see prices
Is Base Pricelist (Optional)
Designate as fallback pricelist.
- Default: No
- Effect: Customers without specific pricelist assignments get this pricelist
- Limit: Only ONE base pricelist per website
- Validation: Enforced by
enable_base_pricelist_validationconfig
Customer Matching Attributes
These fields enable automatic customer assignment. When customers match attributes, they're auto-assigned to pricelist.
Customer Group
Match by customer group ID.
- Example: Group ID 2 (Wholesale)
- Effect: All wholesale customers get this pricelist
Company
Match by company name from customer account.
- Example: "ACME Corporation"
- Loose matching: "ACME" matches "ACME Corp" if
match_exact_type = No - Exact matching: Must be exactly "ACME" if
match_exact_type = Yes
Tax/VAT Number
Match by tax ID.
- Example: "DE123456789"
- Use Case: EU VAT-registered businesses
Postcode
Match by billing/shipping postcode.
- Example: "90210"
- Use Case: Regional pricing by ZIP code
Region
Match by region/state.
- Example: "California"
- Use Case: State-specific pricing
Country
Match by country code.
- Example: "US"
- Use Case: Country-specific pricing
Note: Leave all matching fields empty to use manual assignment only (via groups or customer table).
Step 4: Save Pricelist
Click Save button.
Pricelist container created! Now add products.
Adding Products to Pricelist
Method 1: From Pricelist Edit Page
- Edit pricelist → Navigate to "Products" tab
- Click "Add Products"
- Select products from grid (checkboxes)
- Set prices:
- Quantity: Tier threshold (e.g., 1, 10, 50)
- Price: Price value
- From Date: Start date (optional)
- To Date: End date (optional)
- Save
Method 2: Import/Export Add-On
Use the CSV Import/Export Add-On for bulk changes:
The Magento ImportExport entity Pricesystem Pricelist supports importing/exporting pricelists including assignments and product rows.
Tip: Export first and use the exported CSV as your template (it matches your installed version/config).
Creating Quantity Tiers
Add multiple price entries for same product with different qty values.
Example: Graduated Wholesale Pricing
Pricelist: "Wholesale 2025" Product: "Widget Pro"
| Qty Tier | Price | Description |
|---|---|---|
| 1 | $100 | Standard price |
| 10 | $95 | Bulk discount (5%) |
| 50 | $90 | Volume discount (10%) |
| 100 | $85 | Major volume (15%) |
Customer orders 75 units: Gets $90/unit (Qty 50 tier)
Configuration Required:
can_product_have_multi_qty_price = Yes
Assigning Customers to Pricelists
Method 1: Automatic Assignment (Recommended)
Configure matching attributes on pricelist (see above).
Example:
- Pricelist: "Wholesale 2025"
- Customer Group: 2 (Wholesale)
- Region: "California"
Result: All wholesale customers in California auto-assigned.
Configuration Required:
enable_auto_assign_customers_to_pricelist = Yes
Method 2: Group Assignment
Pricelist Edit Page >Groups Tab:
- Click "Add Groups"
- Select customer groups (Wholesale, Retail, VIP)
- Save
Result: All members of selected groups assigned.
Method 3: Manual Customer Assignment
Pricelist Edit Page >Customers Tab:
- Click "Add Customers"
- Search and select customers
- Save
Result: Only selected customers assigned.
Use Case: Override automatic rules for specific customers.
Common Workflows
Workflow 1: Wholesale Pricelist
Goal: Create wholesale pricing for 2025.
Create pricelist:
- Name: "Wholesale 2025"
- Active: Yes
- Priority: 15
- From Date: 2025-01-01
- To Date: 2025-12-31
- Customer Group: 2 (Wholesale)
Add products:
- Import CSV with all products
- Or add manually via Products tab
Test:
- Log in as wholesale customer
- Verify prices display
Workflow 2: Seasonal Campaign
Goal: Black Friday sale (Nov 29 - Dec 2, 2025).
Create pricelist:
- Name: "Black Friday 2025"
- Active: Yes
- Priority: 25 (higher than standard)
- From Date: 2025-11-29
- To Date: 2025-12-02
- Customer Group: 1 (General - all customers)
Add products:
- Select sale products
- Set discounted prices
Automatic:
- Activates Nov 29
- Deactivates Dec 3
- No manual intervention
Workflow 3: Regional Pricing
Goal: US customers get USD pricing.
Create pricelist:
- Name: "US Standard Pricing"
- Active: Yes
- Priority: 10
- Website: US Website
- Country: US
Add products:
- All products with USD prices
Result:
- US customers see USD prices
- EU customers see different pricelist (EUR)
Workflow 4: VIP Customer Program
Goal: Top customers get 15% off everything.
Create pricelist:
- Name: "VIP 15% Discount"
- Active: Yes
- Priority: 30 (highest)
- Customer Group: 4 (VIP)
Add products:
- All products with 15% discount applied
- Or use price calculation rule if available
Result:
- VIP customers automatically see reduced prices
Workflow 5: Contract Pricing
Goal: ACME Corp has annual contract with specific pricing.
Create pricelist:
- Name: "Contract - ACME Corp 2025"
- Active: Yes
- Priority: 30
- From Date: 2025-01-01
- To Date: 2025-12-31
- Company: "ACME Corporation" (exact match)
Add products:
- Contract products with agreed prices
Renewal:
- Create "Contract - ACME Corp 2026" before expiry
- Set From Date: 2026-01-01
- Seamless transition on Jan 1
Priority System in Action
Scenario: Customer Matches Multiple Pricelists
Setup:
- Customer: John Doe (Wholesale group, California, ACME Corp)
- Pricelist A: "Wholesale 2025" (Priority 15) - Matches group
- Pricelist B: "California Special" (Priority 20) - Matches region
- Pricelist C: "ACME Contract" (Priority 30) - Matches company
Configuration 1: merge_pricelist_qtys = No
- Result: Only Pricelist C applies (highest priority)
Configuration 2: merge_pricelist_qtys = Yes
- Result: Merge qty tiers from all three
- Pricelist A: qty=1 ($100), qty=10 ($95)
- Pricelist B: qty=25 ($92)
- Pricelist C: qty=50 ($88)
- Customer gets: qty=1 ($100), qty=10 ($95), qty=25 ($92), qty=50 ($88)
- Best of all lists!
Base Pricelist Setup
Purpose
Fallback pricing for customers without specific pricelists.
Setup
Create pricelist:
- Name: "Base Pricing - Main Website"
- Active: Yes
- Priority: 0 (lowest)
- Is Base Pricelist: Yes
- Website: Main Website
- Leave all matching attributes empty
Add products:
- All products with default prices
Effect:
- Customers without any pricelist → see base prices
- Customers with specific pricelist → base ignored
Validation:
- Only ONE base pricelist per website
- System prevents creating second base pricelist if validation enabled
Troubleshooting
Pricelist Not Showing for Customer
Check:
- ✓ Is Active = Yes?
- ✓ Date range valid? (from_date <= today <= to_date)
- ✓ Website matches?
- ✓ Customer matches attributes OR assigned via group/manual?
- ✓ Auto-assignment enabled? (
enable_auto_assign_customers_to_pricelist = Yes) - ✓ Cache cleared?
Wrong Prices Displaying
Check:
- ✓ Multiple pricelists match? (check priority)
- ✓ Merge config? (
merge_pricelist_qtyssetting) - ✓ Product exists in pricelist?
- ✓ Quantity tier matches cart quantity?
- ✓ Pricesystem Core price order correct?
Can't Create Second Base Pricelist
Expected behavior!
- Only one base pricelist per website
- Disable
enable_base_pricelist_validationto override (not recommended) - Or deactivate existing base pricelist first
