Magento 2 ExtensionProduct-Customer Matrix Prices
Combine, prioritize, and schedule pricing rules based on product and customer attributes.
Product-Customer Matrix Prices extends Magento 2 with flexible pricing logic for situations where standard pricing is not enough. Instead of maintaining many individual special prices, you define rules that apply only when both product and customer match the matrix.
Product and customer attributes in one rule: A matrix links both sides at the same time. This helps you map negotiated conditions for specific product sets and customer segments in a structured way.
Multiple attributes with AND/OR logic: Combine multiple product attributes per matrix and define whether all conditions must match or whether partial matches are enough. This supports both simple and advanced pricing structures without custom development.
Automatic segment matching plus direct customer assignment: Rules can be triggered by customer attributes and additionally assigned to specific customers. This combines scalable segment logic with individual contract pricing.
Priorities for overlapping rules: If multiple matrices match at the same time, direct customer assignments are evaluated first and priority is then applied. This keeps pricing behavior predictable even in large rule sets.
Quantity tiers to grow basket value: Build quantity-based tiers inside the same matrix logic. Customers automatically receive the correct price level as order quantity increases.
Time control for campaigns and contracts: Matrix rules and customer assignments can be managed with start and end dates. This enables planned campaigns, contract periods, and clean transitions without manual cutover work.
Transparency in customer account: Logged-in assigned customers can review their matrix prices in “My Prices” and download price lists when enabled. This reduces clarification loops and speeds up reordering.
Efficient admin operations: Matrix management keeps rules, attributes, and customer assignments in clear admin workflows. This helps sales and e-commerce teams maintain large pricing setups faster.
Strong for B2B, not limited to it: The module is highly effective for negotiated B2B pricing, but also works for B2C pricing strategies based on segments and conditions.
Matrix engine for product and customer logic
Define price rules that are applied only when product and customer attributes match together.
Targeted product-attribute matching
Combine multiple product attributes per matrix to steer pricing precisely across assortments.
Customer attributes as pricing trigger
Use customer segments and a configurable customer attribute, including common fields like group, email, or name.
AND/OR relation per matrix
Decide whether all configured attributes must match or if partial matches are sufficient.
Direct customer assignment for exceptions
Complement segment logic with direct customer assignment for contract-specific conditions.
Priority handling for rule conflicts
Direct customer assignments win first; within the same assignment type, the matrix with higher priority is applied automatically.
Quantity tiers inside matrix logic
Define volume-based price levels and let the correct tier apply automatically as quantity grows.
Validity windows for rules and assignments
Control start and end dates for matrix rules and individual customer assignments.
Website-scoped pricing control
Manage matrix rules by website to separate pricing strategies across markets at website level.
Matrix prices visible in My Prices
Customers can review assigned matrix prices directly in their account before reordering.
Price download for assigned customers
Provide single-file or per-matrix downloads in customer account and control CSV format centrally when needed.
Condition for cart price rules
Use the condition customer has product-customer matrix to target campaigns and discounts.
- Current Version2.1.3
- Compatible with Magento 2.4+
- Compatible with PHP 8.2+
If your environment differs from the listed requirements, we can check compatibility in advance. Please contact us via our contact form.
Version 2.1.3 - 2026-02-19
- Switched customer edit assigned-matrix listing to dedicated customer actions
Version 2.1.2 - 2026-02-01
- Support table name prefixes
Version 2.1.1 - 2026-01-26
- Added admin configuration to choose single CSV download or per-matrix downloads for Product Customer Matrix
- Added frontend route and My Prices layout block for Product Customer Matrix downloads
Version 2.1.0 - 2026-01-16
- Added PHP 8.4 compatibility
- Added compatibility to pricesystem 2.3.0
- Changed config path from pcmatrix to productcustomermatrix
- Updated admin UI elements to the newer Magento UI components (forms)
- Changed customer_group column to customer_attribute_value (automatic migration)
- Changed to nullable fields for date fields in the database
Version 2.0.11 - 2025-01-15
- Fixed issue with custom customer attribute setting
Version 2.0.10 - 2025-01-09
- Fixed dependency issue from Pricelist extension
Version 2.0.9 - 2024-03-06
- php Docs
Version 2.0.8 - 2023-08-17
- Fixed MovieMatrixData Patch on a fresh installation
Version 2.0.7 - 2023-06-01
- Fixed UI component listing
Version 2.0.6 - 2023-05-28
- Fixed UI component listing
Version 2.0.5 - 2023-05-12
- Dynamic properties declarations are fixed
Version 2.0.4 - 2023-04-16
- Added cart condition rule for product customer matrix
- 2.4.6 compatibility fixes
Version 2.0.3 - 2023-01-25
- New configuration to show "My Prices" my account link only when custom prices are set to the customer
- Fixed swagger issue "Message: The "\DateTime" parameter type is invalid" after new API definitions
Version 2.0.2 - 2022-11-29
- Added PriceProvider for My prices block
Version 2.0.1 - 2022-11-25
- Fixed issues around localized date input format when saved into DB
Version 2.3.5 - 2026-03-19
- Added function for Adobe Commerce product check
Version 2.3.4 - 2026-03-17
- Consolidated frontend price reload into one flow and removed category/search price pipeline parts
- Reduced duplicate AJAX price reloads and simplified the price AJAX response payload
- Fixed My Prices provider selection handling so the page when opened without a selected price type
Version 2.3.3 - 2026-02-20
- Fixed sort order from system configuration
Version 2.3.2 - 2026-02-19
- Removed obsolete zero date checks
- Fixed error in Sales OrderItem API plugin when extension attributes are null
- Fixed price adjustment matrix preview/apply condition evaluation
- Fixed pricing context leakage between consecutive `PriceFacade` calls by resetting customer/group/date context after calculation
- Fixed cache payload serialization for table prices by storing scalar JSON payload instead of native PHP serialization
- Fixed an issue with displaying custom price column in admin
Version 2.3.1 - 2026-01-26
- Redirect unauthenticated visitors to login on the My Prices page to align with account-only access
Version 2.3.0 - 2026-01-16
- Added price adjustment feature: mass select prices and update them using a queue job
- Magento 2.4.7+ required
- Improved "My Prices" page: configurable dropdown price types (provider-based) and optional "All prices" view (default: select first)
- Removed ZERO_DATE_VALUE (0000-00-00) usage, use null instead
- Changed config path of pricesystem/api_settings/* to pricesystem/api/* (automatic migration)
- Removed PricesystemCore\Helper\ProductAttribute (in favor of PricesystemCore\Service\ProductService)
- Removed PricesystemCore\Helper\Data (in favor of PricesystemCore\Service\ Classes)
- Changed fixed sort_order config fields to config array field (price_sort_order) with automatic migration
- Updated admin UI elements to the newer Magento UI components (forms)
- Fixed cache invalidation for customer groups after admin save (clear GroupRegistry, invalidate `full_page`, `block_html` and `pricesystem_cache`).
- Fixed FPC degradation on category/search pages by using HttpContext for `customer_group` detection instead of CustomerSession (no session start, FPC stays group‑varying).
- Fixed PHP 8.4 deprecation warning by explicitly marking the `$resource` and `$resourceCollection` constructor parameters in `Model\PriceAdjustment` as nullable
Version 2.2.6 - 2025-06-24
- Fixed display of basePrice when tax display (net/gross amount) on detail page is enabled
Version 2.2.5 - 2025-04-23
- Changed template path definition of pricesystemcore/index.phtml from Block Class to xml
Version 2.2.4 - 2025-02-28
- Fixed Reflection Error when class of original price type could not be found or loaded
- Improved Date Range Validation checks
Version 2.2.3 - 2024-12-12
- Fixed issue when using decimal values for qtys
Version 2.2.2 - 2024-10-27
- Added another API route to get context-based API prices (automatically from customer session or, when not logged in, from not logged in customer group, see webapi.xml for reference)
- Fixed issue with duplicate AJAX requests when using special trigger contentUpdated
Version 2.2.1 - 2024-09-21
- Changed Version class for displaying extension information
- Fixed some issues for Magento_CSP Compatibility
Version 2.2.0 - 2024-08-31
- Added new API routes /V1/pricesystem/me/get-final-price & /V1/pricesystem/me/get-multi-price to fetch prices for the logged in customer (session) inside Magento 2
Version 2.1.13 - 2024-08-18
- Fixed tier price display for sort order prices with customer discount
- Show "Skip customer and group discounts application on next available price" config only when Sort Order is set as Price Select Rule
Version 2.1.12 - 2024-08-08
- Show last update date from this file inside the system configuration of the extension
Version 2.1.11 - 2024-07-22
- Updated README.md
Version 2.1.10 - 2024-07-19
- Fixed CHANGELOG.md
Version 2.1.9 - 2024-03-24
Version 2.1.8 - 2024-03-06
Version 2.1.7 - 2024-03-05
- Changed cache key of getProductPrices to include customerId and groupId
- Fixed an issue on display pricesystem discount for configurable products at the My Orders page in frontend
- Fixed an issue with displaying up- and cross sell prices on special conditions
Version 2.1.6 - 2023-12-28
- Changed hard coded groupId 0 to GroupManagement::NOT_LOGGED_IN_ID
Version 2.1.5 - 2023-11-29
- Fixed issue with shipment tab on frontend my orders section if display of custom view template was enabled
Version 2.1.4 - 2023-11-08
- Fixed discount text for configurables with tier prices
Version 2.1.3 - 2023-11-06
- Fixed tier price display for configurable products
Version 2.1.2 - 2023-09-16
- Fixed double currency conversion in cart
Version 2.1.1 - 2023-08-14
- Fixed double currency conversion in cart
Version 2.1.0 - 2023-06-04
- Virtual products support
Version 2.0.26 - 2023-06-03
- New configuration to add routes, for which ajax price request should not be done
Version 2.0.25 - 2023-05-16
- Added rounding for price discount calculations
Version 2.0.23 - 2023-05-14
- "product" object is passed to Customized Price
Version 2.0.22 - 2023-05-13
- Added new config to check for customer discount / customer group discount for price codes
Version 2.0.24 - 2023-05-12
- Pricesystem discount amount reload after cart qty update
Version 2.0.21 - 2023-05-12
- Dynamic properties declarations are fixed
Version 2.0.20 - 2023-05-06
- Incorrect tier price on PDP for configurable product on qty change
Version 2.0.19 - 2023-04-16
- Added new system configuration "Show From Price for Configurables" to show the lowest price from all simple tiers as the configurable price
Version 2.0.18 - 2023-03-22
- Fallback solution for DefaultConfigProvider on Original price, if e.g. configured_original_price is set
Version 2.0.17 - 2023-03-21
- Added cart condition rules for customer discount and customer group discount
- Added an additional check to prevent JS error for the discount text when oldPrice is not available from the template
- Fallback solution for "configured_original_price" price type, previously resulted in an offset issue on admin order display
Version 2.0.16 - 2023-03-01
- Fixed an issue that disabled products were shown under my prices section in frontend
Version 2.0.15 - 2023-02-21
- Fixed a JS issue undefined priceSystem when module is not enabled on a specific website
Version 2.0.14 - 2023-02-15
- Fixed an issue when a custom price record was inserted with a qty of 0, it was falsely considered as tierprice within getTierPriceList function
Version 2.0.13 - 2023-02-14
- Fixed an issue which could lead to wrong prices when the config "Store View Code in URL" is active
Version 2.0.12 - 2023-02-09
- Fixed phpDoc for swagger for recent get-multi-price API feature
Version 2.0.11 - 2023-02-07
- New /V1/pricesystem/get-multi-price API call to retrieve final and tier prices for multiple skus
Version 2.0.10 - 2023-01-28
- Fixed /V1/pricesystem/get-final-price API call
- Removed redundant ACL node MageB2B_PricesystemCore::pricesystem (use MageB2B_PricesystemCore::main instead)
Version 2.0.9 - 2023-01-25
- New configuration to show "My Prices" my account link only when custom prices are set to the customer
Version 2.0.8 - 2023-01-12
- Optional websiteId parameter is added to the PriceRequest to return website specific prices
- Added trait PriceSelectByPriorityTrait
- Changed categoryprice pricetype: It's now merged into one pricetype
Version 2.0.7 - 2022-11-28
- Changed the CLI command to be pricesystem:get-final-price (previously mageb2b:product:get-customer-price), added a more descriptive text around the options of this CLI
- Changed My Prices page to display all available tier qtys of a price type
Version 2.0.6 - 2022-11-25
- Added new method convertInputDate which will be used for all localizated date conversions into DB date for non post data processors
- Fixed issue occuring when access swagger page of Magento 2
Version 2.0.5 - 2022-11-24
- Fixed issue when fallback to regular price was taking into account: TypeError: MageB2B\PricesystemCore\Model\Catalog\Pricing\FinalPriceProvider::saveUsedPriceData(): Argument #1 ($usedPriceInfo) must be of type MageB2B\PricesystemCore\Model\Catalog\Pricing\Price\CustomizedPriceDecorator
Version 2.0.4 - 2022-11-24
- Fixed issue on pricelist product grid when neither customer nor a group was selected, the custom price renderer throwed an exception
- Fixed issue with the pricesystem discount amount on admin order view grid, previously it was not displaying the amount in the ordered currency
Version 2.0.3 - 2022-11-17
- Fallback to the regular price is done, when custom price cannot be calculated
Version 2.0.2 - 2022-11-12
- Changed function getWebsitesForForm to add default parameter $addAllWebsites, value false
Version 2.0.1 - 2022-11-11
- Fixed issue with infinite scroll price update
Version 2.0.0 - 2022-11-01
- Added new config "Hide price filter from layered navigation for customers"
- Added new config "Reload prices with ajax for guests"
- Added new config "Price Cache Lifetime"
- Added new config "Skip greater tier prices"
- Added new config "Show custom price column in backend grids (customer price grid, pricelist products grid)"
- Added CLI to fetch final price based on pricesystem calculation (see: bin/magento mageb2b:product:get-customer-price)
- Added API method to fetch final price based on pricesystem calculation
- Magento 2 Compatibility only 2.4.x
- Refactored the methods of calculating the prices using M2-core approach, it will improve the speed and compatibility of customizations
- Refactored the logging to be more accurate and increase readability
- Remove usage of own pricesystem index table
- Changed the way pricesystem cache works: You can now define an own cache lifetime, considering that datasets can have dates in future its not recommend to increase it to more than 24 hours
- Changed the price rendering to be ajax-based on detail page as well to prevent FPC-issues
- Changed the way the custom price column in admin is rendered, its now done via AJAX to always get the correct amount
- Removed some obsolete configuration settings
- Fixed issue with strike price now being applied correctly from the original price set from pricesystem
- Fixed issue with display of the correct pricesystem discount and pricesystem price type
Version 1.1.11 - 2022-08-08
- Fixed issue with new customer group on admin save of pricesystem attributes
Version 1.1.9 - 2022-07-28
- Fixed Pricesystem API URL Checkout for getActual... methods
Version 1.1.8 - 2022-07-27
- Change price box from display: none to visilbity:hidden to prevent custom theme issues/jumping of product blocks
Version 1.1.7 - 2022-07-25
- Whitelist additional routes
Version 1.1.6 - 2022-07-24
- Fixed issue on getTierPrice function
- Fixed logger message issue when message is null
- Ensure quote plugin is applied on checkout API calls (e.g. order placement)
Version 1.1.5 - 2022-07-21
- Fixed ID issue on price warming
Version 1.1.4 - 2022-07-21
- Add prices reload for SM_SHOBY extension ajax pagination
- Add price warming on category price ajax reqeust to ensure price index table
Version 1.1.3 - 2022-07-21
- Added Sm_ShopBy for event ajax trigger on footer
Version 1.1.2 - 2022-07-20
- Added new bind return for getCustomerprice()
Version 1.1.1 - 2022-07-20
- Fixed tierprice issue on custom sort order
Version 1.1.10 - 2020-08-05
- Fixed isset issues of pricesystem attributes during save in admin
Version 1.1.0 - 2026-01-16
- Added compatibility to pricesystem 2.3.0
Version 1.0.7 - 2025-10-28
- Return a proper download response for the sample file so the browser saves the file instead of rendering it inline
Version 1.0.6 - 2025-07-07
- Added README.md and CHANGELOG.md
- Removed dependency of MageB2B\PricesystemCore\Helper\Data
Version 1.0.5 - 2025-07-07
- Added README.md and CHANGELOG.md
- Removed dependency of MageB2B\PricesystemCore\Helper\Data
Version 1.0.4 - 2025-04-23
- phpDocs
Version 1.0.3 - 2022-12-27
- Fixed undefined constant on sample file download
Version 1.0.2 - 2022-11-30
- Fixed setup:upgrade
- Fixed composer.json version constraint
Version 1.0.1 - 2022-07-18
- Fixed composer.json,
- Fixed constant in registration.php
Version 1.0.0 - 2022-05-28
Version 1.0.2 - 2025-07-07
- Added CHANGELOG.md
Version 1.0.1 - 2024-07-25
- Added new API definitions for customer + attribute relations
- Update phpDocs
Version 1.0.0 - 2022-05-11
- Initial version
Pricing agreements are maintained as central rules instead of many isolated special prices, which reduces manual effort and errors.
A price rule applies only when product attributes and customer attributes match together, giving you controlled and context-based pricing.
You can combine multiple product attributes in one matrix and define very specific pricing logic for selected assortments.
Yes. In addition to segment logic, specific customers can be assigned directly to a matrix for dedicated pricing agreements.
Direct customer assignments are evaluated first. If multiple rules of the same assignment type still match, higher priority resolves the result.
Use quantity tiers inside matrix logic. As cart quantity increases, the matching tier is applied automatically.
Yes. Matrix rules and customer assignments can both use start and end dates for planned pricing windows.
Assigned prices are visible in the My Prices section for logged-in customers.
No. It is especially strong for B2B agreements, but equally useful for B2C segment-based pricing strategies.
The cart-rule condition lets you target promotions specifically to customers covered by matrix pricing.
The license is valid for one Magento installation, including multi-website operation. In addition, the module may be installed on any number of development or staging servers. You can find further details in our license terms.
Installation and configuration are not included in the price. On request, we can support you with a smooth integration into your system.
You can pay by credit card (Stripe) or bank transfer (prepayment). For credit card payments, the order is processed immediately and the access credentials are provided directly in a separate follow-up email.
After credit card payment, you immediately receive access credentials to obtain the module via Composer. For bank transfer, access is granted once the invoice is paid.
Custom requests are no problem. We tailor our Magento 2 modules to your project and maintain a dedicated internal version so we always know exactly what runs on your system for support.
On each module detail page, you can request your own demo instance and test the module intensively for 7 days. However, we do not provide a local demo version.
No, the source code of our modules is not encrypted. If you need a customization, feel free to send us a request. We will get back to you promptly with a non-binding quote.
You can add a support package to your order. It includes assistance as well as updates and upgrades related to the module. No continuous subscription is required.
You can reach us anytime via eMail.
Product-Customer Matrix Prices
×Ideal for these industries & use cases
Wholesale Category Pricing
Create matrix "Wholesale Electronics" matching customer group Wholesale + product category Electronics. All wholesale customers automatically receive special pricing on electronics without individual price entries.
Regional Brand Pricing
Create matrices for regional brand pricing: "California Brand A" matching region California + brand Brand A. Different regions receive different pricing on same brands based on local market conditions.
VIP Product Line Access
Create "VIP Premium Products" matrix matching VIP customer group + premium product category with high priority. VIP customers get exclusive pricing on premium lines that regular customers cannot access.
Contract SKU Pricing
Create matrices for specific SKU patterns in customer contracts: "ACME Contract 2025" matching company ACME + SKU pattern "PRO-*". Contracted customers get special pricing on specific product SKUs only.
Seasonal Segment Pricing
Create time-limited matrices for seasonal campaigns targeting specific segments: "Summer Sale - Wholesale Outdoor" matching Wholesale group + Outdoor category + valid June-August. Automatic activation/deactivation.
Multi-Dimensional Targeting
Create complex matrices with AND/OR logic: "Enterprise West Coast Tech" matching (Group Enterprise AND Region California/Oregon/Washington) + (Category Tech OR Brand Microsoft/Dell). Multiple intersecting dimensions for precise pricing control.
Try it without risk
Request a personal demo instance and evaluate the module directly in backend and frontend under real conditions — without local installation.
For developers
Practical Magento 2 guides, technical developer documentation, and API references (REST, SOAP, GraphQL) for installation, configuration, and troubleshooting.
Go to Knowledge Base