Configure Product-Customer Matrix
Open Stores > Configuration > MageB2B > Pricesystem and find the Product Customer Matrix section.
Customer account download
Enable the download link if customers should export matrix prices. Download Mode can produce one combined file or separate files per matrix. Set the CSV delimiter and enclosure to match the customer's spreadsheet workflow.
Customer matching
Additional Customer Attribute selects the customer attribute used for attribute-based matrix matching. The default is group_id. The match reads the attribute value from the customer record (getCustomAttribute on the CustomerInterface), so only customer attributes carried on the customer object qualify.
The module ships its own customer attribute procustmatrix_customer_group (label Product Customer Matrix Group, editable on the admin customer form), which is the intended use case for this setting: store a group value on the customer and enter the same value as the matrix's customer attribute value. A product attribute procustmatrix_product_group is installed as well and can be used in product conditions.
procustmatrix_customer_group is a protected attribute: writing it through custom_attributes is restricted — only admin and integration API tokens may set it, while customer and guest tokens get rejected on customer API writes. Maintain it in the Admin or through an integration; see Protected customer attributes for the shared mechanism.
Only choose an attribute whose values are populated consistently. A blank or unexpected value changes which matrices match.
Priority resolution
| Mode | Result |
|---|---|
| Direct assignment first | A direct customer assignment wins over an attribute match; priority breaks ties within the same assignment type |
| Global priority | The higher matrix priority wins, regardless of assignment type |
Direct assignment first is the default and works well for customer-specific exceptions to group-based pricing.
Duplicate validation
Custom Matrix Validation adds stricter checks for duplicate matrices and overlapping dates involving customer or attribute assignments. Enable it when the data model should reject these overlaps rather than resolve them through priority.
Shared calculation settings are documented under Pricesystem configuration.