My customer wants to have custom prices for each customer. He already has an existing system where he holds such data where we can invoke an API call to retrieve it based on the customerREF and SKU.

How can i do this in Magento2 itself? I see a lot of plugins but most of them are way too much overhead.

I thought below steps are needed but no idea where i need to implement this:

  • Ensure that no prices are shown on the category index pages and such. I can overwrite this method? Magento\Catalog\Pricing\Render\FinalPriceBox:wrapResult
  • When a product detail page is opened i invoke an API call to retrieve the actual price. I can add some basic caching for lets say 5 min to ensure that there is not too much overhead
  • How can i ensure when a product is added to the cart, that specific price is also used?

I know there are some events as well. No idea how to get the actual price there then though:

  • checkout_cart_product_add_after
  • checkout_cart_product_update_after
  • sales_quote_item_qty_set_after
  • checkout_cart_product_update_after

Best, Pim

  • How many customers/products there are in the system? If relatively small amount you could assign each customer to their own Customer Group and set price per Customer Group. Thanks to that no customization will be required. Jun 8 at 7:51
  • About 1000 customers and 400 products (2 websites)
    – Dirkos
    Jun 8 at 7:54
  • @MichałBiarda the thing is that all customers are already in a group (to determine what type of customer it is). I do not want to lose that though
    – Dirkos
    Jun 8 at 8:18
  • do you use Customer Groups for anything else than just "determining what type of customer it is"? If no, then you could create a custom attribute "customer_type" and store this info in there. Jun 8 at 8:27
  • The other advantage of this approach vs. frontend customization is that filtering and sorting by price will work out-of-the-box (frontend customization will break filtering and sorting). Jun 8 at 8:50

You can follow below two links for this and customize the code as per your requirement.

Set Custom Product Price when displaying on Front-end in Magento 2:


Magento2 – Set custom price of Product when adding to cart:


  • It is not about a custom price per product. It is a custom price per product per customer?
    – Dirkos
    Jun 8 at 8:50
  • You can get login customer details inside the afterGetPrice function for the frontend and for cart price you can get customer details in the checkout_cart_product_add_after event.
    – Amit Saini
    Jun 8 at 9:03

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.