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_pricelist price type
  • Date validity: Both pricelist and product-level dates
  • Multi-level assignment: Customer, group, or attribute-based

Database Structure

Main Tables

TablePurpose
pricesystem_pricelistPricelist definitions
pricesystem_pricelist_productProduct prices within lists
pricesystem_pricelist_customerDirect customer assignments
pricesystem_pricelist_groupGroup assignments

Pricelist Fields

FieldDescription
nameUnique pricelist name
activeEnable/disable
priorityConflict resolution
from_date / to_dateValidity period
is_base_pricelistMark as base_pricelist type
customer_attributeAuto-assignment attribute
customer_attribute_valueValue to match

Creating a Pricelist

  1. Navigate to Pricesystem >Pricelist > All Pricelist
  2. Click Add New
  3. General Information:
    • Name: "Enterprise Q1 2025"
    • Active: Yes
    • Priority: 20
    • From Date: 2025-01-01
    • To Date: 2025-03-31
    • Is Base Pricelist: No
  4. Products Tab:
    • Add products with qty and price
    • Set product-specific validity dates
  5. Customers Tab:
    • Assign specific customers
  6. Groups Tab:
    • Assign customer groups
  7. 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

Found an issue with this documentation? Let us know