Magento 2 ExtensionCustomer Specific Prices
Manage customer-specific prices with quantity tiers, validity windows, website scope control, and direct CSV download in the customer account.
Customer Specific Prices extends Magento 2 with precise pricing logic for negotiated agreements. Instead of relying on one standard price for everyone, you assign dedicated price conditions per customer and product.
Price agreements per customer and product: Each customer-product combination can carry its own price. This maps negotiated terms directly into your storefront and removes manual workaround processes.
Quantity tiers for recurring purchasing patterns: Tiered price levels by quantity reflect common buying agreements. Customers automatically get the right conditions when order volume increases.
Time-controlled pricing windows: Start and end dates make promotions, contract periods, and transition phases predictable. Sales and procurement teams can work with clear time logic instead of ad-hoc changes.
Global and website-specific pricing: Maintain rules centrally or by website. This supports different markets, assortments, and channel strategies within one Magento installation.
Efficient admin operations: Price records are managed in a central overview and can also be maintained directly in the customer profile. This speeds up daily operations with many agreements.
Transparency in customer account: Assigned customers can review their individual prices under "My Prices" and download them as CSV when needed. This reduces clarification loops and shortens reorder preparation.
Controlled commercial logic: Cart price rules can use the condition whether a customer has customer-specific prices. This helps target campaigns and workflows to the right customer segments.
Useful in B2B and B2C: The module is especially strong for negotiated pricing structures, without being limited to B2B-only scenarios.
Individual price records per customer and product
Store dedicated negotiated prices per customer-product pair instead of using one generic pricing layer.
Quantity tiers per customer
Define multiple customer-specific price levels by quantity so larger order volumes automatically receive the correct rate.
Date-bound price windows
Plan temporary or contractual pricing periods with clear start and end dates.
Global or website-scoped pricing
Separate customer price logic by website while keeping central control for multi-market operations.
Price application and base-price control
Configure how pricing is applied and which base price reference is used for the agreement.
Central management with bulk actions
Manage customer price records in one grid with filters, fast edits, and bulk deletion.
Price management inside customer profile
Maintain customer-specific prices directly in the customer edit context to speed up operational handling.
Dedicated price type in “My Prices”
Customer-specific prices are exposed as a dedicated price type in the customer account price area.
CSV download for assigned customer prices
On the “My Prices” page, CSV download is available when download is enabled and customer-specific price records exist.
Cart-rule targeting by customer-price status
Use the condition "customer has customer price" in cart rules to target commercial logic precisely.
- Current Version2.1.5
- 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.5 - 2026-03-11
- Fixed ambiguous `entity_id` SQL conditions in repository-backed customer price listings after joined table loads
Version 2.1.4 - 2026-02-20
- Fixed admin ACL resource for custom permission
Version 2.1.3 - 2026-02-19
- Increased required pricesystem module version to `>=2.3.2`
- Updated customer edit listing actions to use context-specific routes for customer-scoped operations
- Fixed customer edit delete and mass delete to target only records of the current customer
- Fixed customer edit delete and mass delete responses to support AJAX grid reload flows
- Fixed customer edit form data loading for modal edit requests
- Fixed custom price handling in customer edit listing to prevent invalid sort/filter behavior
- Fixed logged-in check behavior to avoid blocking admin-context evaluation
Version 2.1.2 - 2026-02-16
- Fixed admin customerprice listing issue
Version 2.1.1 - 2026-01-26
- Now the download path redirects to login if not logged in for a smoother flow (before it was referer URL)
Version 2.1.0 - 2026-01-16
- Added compatibility to pricesystem 2.3.0
- Changed to nullable fields for date fields in the database
- Updated admin UI elements to the newer Magento UI components (forms)
Version 2.0.14 - 2025-05-20
- Fixed recent disable price check observer for API request routes (e.g checkout)
Version 2.0.13 - 2025-05-08
- Added observer to disable price check query when customer is not logged in (customerprice is always related to a logged in customer)
Version 2.0.12 - 2025-02-28
- More Improvements for Date Range Validation Checks
Version 2.0.11 - 2025-02-25
- Improved Performance on date validation checks
Version 2.0.10 - 2024-07-22
- Fixed SKU filter on customerprice grid
- Changed README.md
Version 2.0.9 - 2024-06-20
- Changed CustomerpriceRepository::deleteByCustomerId($customerId) to use the custom customer attribute if available
Version 2.0.8 - 2024-03-06
- php Docs
Version 2.0.7 - 2023-06-01
- Added Fallback for Filter Input (Magento 2.4.0)
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 customerprice
- 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
- Added website_id column to customerprice. When customer scope is enabled to global, you can define customerprices per website.
- Fixed dependency issue occuring during setup upgrade (Unable to apply data patch MageB2B\PricesystemCustomerprice\Setup\Patch\Data\AddCustomerpriceAttributes)
Version 2.0.2 - 2022-11-28
- 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.1 - 2026-03-08
- Fixed customerprice admin export value mapping for renamed `product_id` and `price` columns
Version 1.1.0 - 2026-01-16
- Added compatibility to pricesystem 2.3.0
Version 1.0.11 - 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.10 - 2025-08-08
Version 1.0.9 - 2025-07-05
- Added README.md and CHANGELOG.md
- Removed dependency of MageB2B\PricesystemCore\Helper\Data
Version 1.0.8 - 2025-02-25
- Fixed listing of customerprice grid (wrong listing.xml definitions) and fixed copyright
Version 1.0.7 - 2023-01-27
- Added website_id to import / export
Version 1.0.6 - 2022-12-27
- Fixed undefined constant on sample file download
Version 1.0.5 - 2022-11-30
- Fixed composer.json PHP version constraint
- Fixed setup:upgrade
Version 1.0.4 - 2022-07-30
- Fixed translation
Version 1.0.3 - 2022-07-18
- Fixed constant in registration.php
- Fixed composer.json
Version 1.0.2 - 2022-07-03
- Added event pricesystem_customerprice_import_before_save
Version 1.0.1 - 2022-05-28
- Fixed composer json
Version 1.0.0 - 2022-05-17
- Added initial version
Version 1.0.3 - 2025-07-07
- Added CHANGELOG.md
Version 1.0.2 - 2024-07-25
- phpDocs
Version 1.0.1 - 2022-06-02
- Added delete bulk method
- Renamed /V1/pricesystem/customerpricebulk to /V1/pricesystem/customerprice/savebulk
Version 1.0.0 - 2022-05-11
- Initial version
Negotiated price agreements are executed directly in Magento, so sales, service, and procurement teams spend less time on manual pricing exceptions.
Each customer-product pair can hold its own price record, which keeps contractual conditions structured and traceable in one system.
Quantity tiers per customer reflect common volume agreements and automatically apply the matching tier when order quantity increases.
Start and end dates define clear price validity windows and make transitions predictable without manual last-minute changes.
Website-scoped pricing separates market or channel conditions while global rules can still be managed centrally.
The "My Prices" section in the customer account provides direct visibility into assigned conditions and reduces pre-order clarification requests.
Customers with assigned prices get a CSV download in their account, which supports internal purchasing review and release workflows.
Central filters, quick edits, and bulk actions in admin significantly reduce operational effort for large pricing datasets.
Customer profile integration allows direct updates in context, so teams can adjust agreements without switching across multiple admin areas.
Negotiated pricing logic is especially valuable in B2B, but it also supports B2C scenarios with partner pricing or individual customer agreements.
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.
Customer Specific Prices
×Ideal for these industries & use cases
Negotiated Contract Pricing
Implement custom pricing agreements negotiated with individual customers. Store contract-specific prices that override catalog prices entirely, ensuring customers always see their agreed rates regardless of promotions or price changes affecting other customers.
Volume Commitment Pricing
Reward customers who commit to purchasing specific volumes with graduated pricing tiers. Configure multiple quantity breakpoints where prices decrease as order size increases, incentivizing bulk purchases while maintaining profitability at each tier level.
Seasonal Campaign Pricing
Schedule temporary price adjustments for specific customers during promotional periods or seasonal campaigns. Set precise date ranges for holiday pricing, end-of-season clearances, or anniversary promotions that automatically activate and deactivate without manual intervention.
Regional Pricing Strategies
Implement different pricing for the same customers across multiple websites or regions. Use website_id to maintain separate price lists for EU, US, and APAC storefronts while managing all pricing centrally. Perfect for businesses operating in multiple markets with varying cost structures.
VIP Customer Benefits
Provide exclusive pricing to VIP or preferred customers as a loyalty benefit. Assign preferential rates on specific products or entire product lines to reward long-term relationships, high-value accounts, or strategic partnerships without affecting standard pricing for other customer segments.
Contract Renewal Management
Manage pricing transitions during contract renewals by scheduling new prices with future start dates. Overlap old and new pricing temporarily during transition periods, or configure automatic price changes that take effect on contract renewal dates without service interruption or manual price updates.
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