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.

pricesystem-customerprice

Version 2.1.5 - 2026-03-11

Fixed
  • Fixed ambiguous `entity_id` SQL conditions in repository-backed customer price listings after joined table loads

Version 2.1.4 - 2026-02-20

Fixed
  • Fixed admin ACL resource for custom permission

Version 2.1.3 - 2026-02-19

Changed
  • Increased required pricesystem module version to `>=2.3.2`
  • Updated customer edit listing actions to use context-specific routes for customer-scoped operations
Fixed
  • 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
  • Fixed admin customerprice listing issue

Version 2.1.1 - 2026-01-26

Changed
  • 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
  • Added compatibility to pricesystem 2.3.0
Changed
  • 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
  • Fixed recent disable price check observer for API request routes (e.g checkout)

Version 2.0.13 - 2025-05-08

Changed
  • 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

Changed
  • More Improvements for Date Range Validation Checks

Version 2.0.11 - 2025-02-25

Changed
  • Improved Performance on date validation checks

Version 2.0.10 - 2024-07-22

Fixed
  • Fixed SKU filter on customerprice grid
  • Changed README.md

Version 2.0.9 - 2024-06-20

Changed
  • Changed CustomerpriceRepository::deleteByCustomerId($customerId) to use the custom customer attribute if available

Version 2.0.8 - 2024-03-06

Changed
  • php Docs

Version 2.0.7 - 2023-06-01

Fixed
  • Added Fallback for Filter Input (Magento 2.4.0)

Version 2.0.6 - 2023-05-28

Fixed
  • Fixed UI component listing

Version 2.0.5 - 2023-05-12

Fixed
  • Dynamic properties declarations are fixed

Version 2.0.4 - 2023-04-16

Added
  • Added cart condition rule for customerprice
  • 2.4.6 compatibility fixes

Version 2.0.3 - 2023-01-25

Added
  • 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
  • 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
  • Added PriceProvider for My prices block

Version 2.0.1 - 2022-11-25

Fixed
  • Fixed issues around localized date input format when saved into DB
pricesystem

Version 2.3.5 - 2026-03-19

Added
  • Added function for Adobe Commerce product check

Version 2.3.4 - 2026-03-17

Changed
  • 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
  • Fixed My Prices provider selection handling so the page when opened without a selected price type

Version 2.3.3 - 2026-02-20

Fixed
  • Fixed sort order from system configuration

Version 2.3.2 - 2026-02-19

Changed
  • Removed obsolete zero date checks
Fixed
  • 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

Fixed
  • Redirect unauthenticated visitors to login on the My Prices page to align with account-only access

Version 2.3.0 - 2026-01-16

Added
  • Added price adjustment feature: mass select prices and update them using a queue job
Changed
  • 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
  • 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
  • Fixed display of basePrice when tax display (net/gross amount) on detail page is enabled

Version 2.2.5 - 2025-04-23

Changed
  • Changed template path definition of pricesystemcore/index.phtml from Block Class to xml

Version 2.2.4 - 2025-02-28

Fixed
  • Fixed Reflection Error when class of original price type could not be found or loaded
Changed
  • Improved Date Range Validation checks

Version 2.2.3 - 2024-12-12

Fixed
  • Fixed issue when using decimal values for qtys

Version 2.2.2 - 2024-10-27

Added
  • 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
  • Fixed issue with duplicate AJAX requests when using special trigger contentUpdated

Version 2.2.1 - 2024-09-21

Changed
  • Changed Version class for displaying extension information
Fixed
  • Fixed some issues for Magento_CSP Compatibility

Version 2.2.0 - 2024-08-31

Added
  • 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
  • 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

Changed
  • Show last update date from this file inside the system configuration of the extension

Version 2.1.11 - 2024-07-22

Changed
  • Updated README.md

Version 2.1.10 - 2024-07-19

Fixed
  • 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
  • Changed cache key of getProductPrices to include customerId and groupId
Fixed
  • 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
  • Changed hard coded groupId 0 to GroupManagement::NOT_LOGGED_IN_ID

Version 2.1.5 - 2023-11-29

Fixed
  • 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
  • Fixed discount text for configurables with tier prices

Version 2.1.3 - 2023-11-06

Fixed
  • Fixed tier price display for configurable products

Version 2.1.2 - 2023-09-16

Fixed
  • Fixed double currency conversion in cart

Version 2.1.1 - 2023-08-14

Fixed
  • Fixed double currency conversion in cart

Version 2.1.0 - 2023-06-04

Added
  • Virtual products support

Version 2.0.26 - 2023-06-03

Added
  • New configuration to add routes, for which ajax price request should not be done

Version 2.0.25 - 2023-05-16

Fixed
  • Added rounding for price discount calculations

Version 2.0.23 - 2023-05-14

Added
  • "product" object is passed to Customized Price

Version 2.0.22 - 2023-05-13

Added
  • Added new config to check for customer discount / customer group discount for price codes

Version 2.0.24 - 2023-05-12

Fixed
  • Pricesystem discount amount reload after cart qty update

Version 2.0.21 - 2023-05-12

Fixed
  • Dynamic properties declarations are fixed

Version 2.0.20 - 2023-05-06

Fixed
  • Incorrect tier price on PDP for configurable product on qty change

Version 2.0.19 - 2023-04-16

Added
  • 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

Fixed
  • Fallback solution for DefaultConfigProvider on Original price, if e.g. configured_original_price is set

Version 2.0.17 - 2023-03-21

Added
  • Added cart condition rules for customer discount and customer group discount
Fixed
  • 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
  • Fixed an issue that disabled products were shown under my prices section in frontend

Version 2.0.15 - 2023-02-21

Fixed
  • Fixed a JS issue undefined priceSystem when module is not enabled on a specific website

Version 2.0.14 - 2023-02-15

Fixed
  • 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
  • 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
  • Fixed phpDoc for swagger for recent get-multi-price API feature

Version 2.0.11 - 2023-02-07

Added
  • 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
  • Fixed /V1/pricesystem/get-final-price API call
Changed
  • Removed redundant ACL node MageB2B_PricesystemCore::pricesystem (use MageB2B_PricesystemCore::main instead)

Version 2.0.9 - 2023-01-25

Added
  • 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

Added
  • Optional websiteId parameter is added to the PriceRequest to return website specific prices
  • Added trait PriceSelectByPriorityTrait
Changed
  • Changed categoryprice pricetype: It's now merged into one pricetype

Version 2.0.7 - 2022-11-28

Changed
  • 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
  • Added new method convertInputDate which will be used for all localizated date conversions into DB date for non post data processors
Fixed
  • Fixed issue occuring when access swagger page of Magento 2

Version 2.0.5 - 2022-11-24

Fixed
  • 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
  • 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

Fixed
  • Fallback to the regular price is done, when custom price cannot be calculated

Version 2.0.2 - 2022-11-12

Changed
  • Changed function getWebsitesForForm to add default parameter $addAllWebsites, value false

Version 2.0.1 - 2022-11-11

Fixed
  • Fixed issue with infinite scroll price update

Version 2.0.0 - 2022-11-01

Added
  • 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
Changed
  • 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
  • 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
  • Fixed issue with new customer group on admin save of pricesystem attributes

Version 1.1.9 - 2022-07-28

Fixed
  • Fixed Pricesystem API URL Checkout for getActual... methods

Version 1.1.8 - 2022-07-27

Changed
  • 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

Fixed
  • Whitelist additional routes

Version 1.1.6 - 2022-07-24

Fixed
  • 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
  • Fixed ID issue on price warming

Version 1.1.4 - 2022-07-21

Changed
  • 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

Changed
  • Added Sm_ShopBy for event ajax trigger on footer

Version 1.1.2 - 2022-07-20

Changed
  • Added new bind return for getCustomerprice()

Version 1.1.1 - 2022-07-20

Changed
  • Fixed tierprice issue on custom sort order

Version 1.1.10 - 2020-08-05

Fixed
  • Fixed isset issues of pricesystem attributes during save in admin
pricesystem-customerprice-importexport

Version 1.1.1 - 2026-03-08

Fixed
  • Fixed customerprice admin export value mapping for renamed `product_id` and `price` columns

Version 1.1.0 - 2026-01-16

Added
  • Added compatibility to pricesystem 2.3.0

Version 1.0.11 - 2025-10-28

Fixed
  • 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
  • Added README.md and CHANGELOG.md
Changed
  • Removed dependency of MageB2B\PricesystemCore\Helper\Data

Version 1.0.8 - 2025-02-25

Fixed
  • Fixed listing of customerprice grid (wrong listing.xml definitions) and fixed copyright

Version 1.0.7 - 2023-01-27

Added
  • Added website_id to import / export

Version 1.0.6 - 2022-12-27

Fixed
  • Fixed undefined constant on sample file download

Version 1.0.5 - 2022-11-30

Fixed
  • Fixed composer.json PHP version constraint
  • Fixed setup:upgrade

Version 1.0.4 - 2022-07-30

Fixed
  • Fixed translation

Version 1.0.3 - 2022-07-18

Fixed
  • Fixed constant in registration.php
  • Fixed composer.json

Version 1.0.2 - 2022-07-03

Added
  • Added event pricesystem_customerprice_import_before_save

Version 1.0.1 - 2022-05-28

Fixed
  • Fixed composer json

Version 1.0.0 - 2022-05-17

Added
  • Added initial version
pricesystem-customerprice-api

Version 1.0.3 - 2025-07-07

Added
  • Added CHANGELOG.md

Version 1.0.2 - 2024-07-25

Changed
  • phpDocs

Version 1.0.1 - 2022-06-02

Added
  • Added delete bulk method
Changed
  • Renamed /V1/pricesystem/customerpricebulk to /V1/pricesystem/customerprice/savebulk

Version 1.0.0 - 2022-05-11

Added
  • Initial version
pricesystem-customerprice-graph-ql

Version 2.0.0 - 2026-02-02

Added
  • Initial module version
pricesystem-hyva

Version 1.0.0 - 2025-07-27

Added
  • Initial version
Module-Specific Questions
What is the biggest operational benefit of this module?

Negotiated price agreements are executed directly in Magento, so sales, service, and procurement teams spend less time on manual pricing exceptions.

How are negotiated terms mapped per customer?

Each customer-product pair can hold its own price record, which keeps contractual conditions structured and traceable in one system.

How does the module support volume-based agreements?

Quantity tiers per customer reflect common volume agreements and automatically apply the matching tier when order quantity increases.

How can temporary contract prices be planned?

Start and end dates define clear price validity windows and make transitions predictable without manual last-minute changes.

How do I separate pricing by website?

Website-scoped pricing separates market or channel conditions while global rules can still be managed centrally.

How do customers see their assigned prices?

The "My Prices" section in the customer account provides direct visibility into assigned conditions and reduces pre-order clarification requests.

How does customer-side export work?

Customers with assigned prices get a CSV download in their account, which supports internal purchasing review and release workflows.

Is maintenance efficient with large datasets?

Central filters, quick edits, and bulk actions in admin significantly reduce operational effort for large pricing datasets.

Can pricing be maintained directly in customer context?

Customer profile integration allows direct updates in context, so teams can adjust agreements without switching across multiple admin areas.

Is the extension only relevant for B2B stores?

Negotiated pricing logic is especially valuable in B2B, but it also supports B2C scenarios with partner pricing or individual customer agreements.

General Questions
How many Magento installations is the license valid for?

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.

Is installation included in the price?

Installation and configuration are not included in the price. On request, we can support you with a smooth integration into your system.

What payment methods are available?

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.

What does the order process look like?

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.

I need a custom modification of the module. Is that possible?

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.

Can I install a demo version locally?

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.

Is the source code encrypted?

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.

What is the update policy and support?

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.

I already have a license. How can I perform an update?

You can complete the license update here. If you have an active support package, you receive updates automatically via Composer. If your support package has expired, you can renew your license here or in your account.

I have another question — how can I contact you?

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