Installation


To use this extension, you will be required to install MageDelight Base Extension first. If it is not installed then please download it from https://www.magedelight.com/pub/extensions/magedelight-base.zip and unzip the package file into the app/code/Magedelight folder of your Magento 2 installation.



Before installing the extension, please make sure to Backup your web directory and store database


You will require to install MageDelight Base Extension first. If it is not installed then please download it from https://www.magedelight.com/pub/extensions/magedelight-base.zip and unzip the package file into the root folder of your Magento 2 installation.

Root Directory is - "app/code/magedelight/#YourExtensionName#"

  • Unzip the extension package file into the root folder of your Magento 2 installation.
  • Connect to SSH console of your server:
    • Navigate to the root folder of your Magento 2 setup
    • Run command as per below sequence,

      php bin/magento setup:upgrade

      php bin/magento setup:di:compile

      php bin/magento setup:static-content:deploy

      php bin/magento cache:clean

  • log out from the backend and log in again


If you are using Magento 2.3 or later then you do not need to activate license. Extension will be activated with silent activation mechanism and does not require activation keys to be entered manually.   


Backend Configuration (Admin side)


  • Enable Module:  Option to disable/enable price per customer extension feature.
  • Hide Customer Price on listing and search: Select Yes to hide the special price from the customer on the category listing and search page only.
  • Show Regular Price on Listing: Set Yes to display the regular price for the product on the category listing page.
  • Display the View your Price option on listing: Set Yes to view the special price for the product on the category listing page.
  • View your Price button label: Set a text for the special price that customers can view on the category listing page.
  • Ask Special Price: Set Yes to allow a customer to negotiate the regular price by submitting a special price with quantity.
  • Ask Special Price button label: Set a text for the Ask Special Price link that customers can view on the category listing page.
  • Special Price Approve Email Template: Option to select the customized special price approval email template from the drop-down list or to use the system default template value.
  • Special Price Disapprove Email Template:  Option to select the customized special price disapproval email template from the drop-down list or to use the system default template value.
  • Enabled Customer Group Prices: Option to disable/enable customer group price feature.
  • Apply customer discount on final price: if is set to "No," the discount will be applied to the Magento base price. Conversely, if it is set to "Yes," the discount will be applied to the Magento final price.

  • Link Name: This is the title link text to be displayed on the top menu for discounted products per customer. This link can be accessed by logged-in customers only.

  • Page Title: This is the offer product page title as well as the page meta title.

  • URL Identifier: You can set here SEO friendly URL identifier for the offer page.

  • Show Link In Top: Show/Hide offer page link on the top menu.

  • Show Link In Footer: Show/Hide the offer page link in the footer.

  • Price Per Customer Page Layout: Select the page layout of price per customer page.


The final price does not depend on the Special or Magento prices. It always displays the lowest price among all the prices.




   Product Wise Import Export

    • Export: Export will download all special offer details applied to individual products in a CSV file. CSV file will contain the customer's email address, Product SKU, Product Quantity, Product Price, website ID, and Expiry Date.
    • Import: With this option, the admin can import special offer data for a particular customer with a CSV file. This makes it easy to manage offers per customer.
      Here, the price will be the new price of the product for a particular customer. You can also assign a new price in Percentage (%), which will be the discounted amount from the original price for the respective customer.



Category Wise Import Export

    • Export: Export will download all special offer details applied to the category in a CSV file. CSV file will contain the customer's email address, category ID, discount, website, and expiry date.
    • Import: With this option, the admin can import special offer data for a particular customer with a CSV file. This makes it easy to manage offers on all products of category for individual customers.

  • Enable CRON to import category: Select Yes to enable CRON to import category.
  • Enable CRON to import product: Select Yes to enable CRON to import product.
  • Enable CRON to export category: Select Yes to enable CRON to export category.
  • Enable CRON to export product: Select Yes to enable CRON to export product.


Backend Functionality


Price per customer extension will allow a set of customer-specific prices for the same product. The multiple ways shown below to set special prices, one is to select customers from edit products and another is to select products from edit customers.

1. Set Price Per Customer From Manage Product

On product edit, you would see one new tab titled “Price Per Customer”. This tab will allow you to choose customers to whom you are required to give discounted prices. You can define product quantity and price of product per quantity.

    • Special Price:If assigning a discount with a single quantity of product only to a particular customer, it would be considered as a special price of product to respective customer. For example, as shown below screenshot customer Veronica Costello has been given a special price of $20 on the product Crown Summit Backpack. But the actual price of the product is $38.

    • Tier Price: If a discount is assigned with a range of quantities that would be the tier price of the product to a customer. As shown in the below screenshot, Veronica Costello has given three different prices for different quantities. That is a special price of $40 for quantity 1, $38 for quantity 2, and 10% off on quantity 3 of the product Beaumont Summit Kit.

    • Fix Price Or Discounted in Percentage: You can set the discounted price with a fixed price Or you can also set the price with a percentage of the original product price. For that, you would be required to add a percentage symbol (%) after the price. As shown in the above screenshot.
    • Bundle Product Type: You can set fixed and percentage price discounts with quantity for associated products of the bundle products. You have to set the price for associated products of the bundle.
    • Group Product Type:: You can set fixed and percentage price discounts with quantity for associated products of the group products. You have to set the price for associated products to group product types.


2. Set Category Per Customer

In the Customer tab, go to all customers and select any one customer for whom a special price of one or multiple categories needs to be set.

There is a Category Per Customer tab, click on the tab and the “Add Category” button to add discounts on categories. Once you save the category, it will apply the discount on all products of the category. Only percentage type is allowed to set the discount on category. Also, discounts can be removed and modified from a category by clicking on the “Delete and Edit" link.


3. Set Price Per Customer From Manage Customer

Price per customer can also be managed by edit customers. While you edit any particular customer, you will see one tab called “Price Per Customer”. With this tab, the admin can select various products and set special prices or tier prices for products.

As we have discussed with the manage product tab, we can manage Special Prices, Tier Prices, fixed prices, Discounts in percentage, Bundle products, and group products with each product here too.

Discount on all products: From here you can give a fixed percentage of discount on all products. If you set this option for any customer, the Customer will get a particular amount of discount throughout the site for all products. This discount would not be applicable for those products if the price per customer is set on products.


4. Set Customer Special Price

Go to Price Per Customer > Customer Special Price and Here, you'll find a grid displaying all existing requests made by customers for special prices on specific products. Click on the "Edit" button to be redirected to the special price page for the selected product, as illustrated in the image below.


  • Approve: 
  • Product ID: It will display the unique ID for each product.


The admin can negotiate and set a special price for each product unit, which they can offer to the customer. For instance, if the special price displayed is USD 100 while the product price is USD 120, the admin can adjust the requested special price from USD 100 to USD 110 per unit of quantity requested by the customer.


5. Set Customer Groups Discount

To manage customer groups, navigate to Customers > Customer Groups. Here, you'll find a grid listing all customer groups. You can easily add or edit customer groups by clicking the corresponding button. 


  • Group Name: Set the label for the customer group.
  • Group Price: You have the option to specify the discount amount for the selected customer group. Simply add a "+" or "-" sign before the price to indicate whether it is an increase or decrease in the price. For instance, you can enter "+5" to apply a $5 increase or "-5" to apply a $5 discount.

6. Customer Special Price Product Report date-wise

Go to Price Per Customer > Customer Price Report > Date Wise Customer Special Price- Products. Here, you'll find the below-mentioned filters.

  • From and To: Select the period you want to see the report.
  • Show  Report: Click on the Show Report button to generate the report. 
  • Export to: Select the file type (CSV or Excel XML) to export the report to.


7. Customer Special Price Category Report date-wise

Go to Price Per Customer > Customer Price Report > Date Wise Customer Special Price- Category. Here, you'll find the below-mentioned filters.

  • From and To: Select the period you want to see the report.
  • Show  Report: Click on the Show Report button to generate the report. 
  • Export to: Select the file type (CSV or Excel XML) to export the report to.


Frontend Functionality


Once the extension is correctly configured in the backend as described above, your customers will be able to access the special prices you have set for them.

1. Set Price Per Customer From Manage Customer

Price per customer extension gives you the option to show a separate page for customers. This page will contain a list of products on which, the customer has given discount with Price Per Customer options.

Only login customers can access this offer page. The link title and the offer page title can be managed from the admin configuration setting. Page URL identifiers can also be managed from admin configuration for SEO-friendly URLs. As shown in the above screenshot.

2. Product price block

Based on the price set for the product, the price block will be rendered with two different types.

    1. Special Price

      You will notice special prices displayed on the product detail page, such as the example provided for the Crown Summit Backpack. Here, the regular price is $38, while a special price of $30 has been set for the selected customer.

    2. Tier Price

      Tier pricing enables merchants to provide discounts depending on the number of products purchased. For instance, consider the Beaumont Summit Kit: while the regular price for a single item is $42, a special price of $39.90 is offered. If a customer purchases 2 units of the same product, the special price reduces to $38 per item. Similarly, if 3 units are purchased, the special price further decreases to $36 per item. This encourages customers to buy in larger quantities, offering them savings as they purchase more.


3. Customers ask for a special price



The "Ask for Special Price" functionality allows customers to negotiate the price for a product. Upon clicking the "Ask for Special Price" label, a form will appear, enabling customers to enter their requested price per quantity of the product. For instance, in the case of the Cruise Dual Analog Watch, with a regular price of $55, the customer may request a price of $48 per unit, with a quantity of 12 units. Once all details are provided, customers can submit the form, and a message will appear at the top confirming the submission.

4. Customer views special price




Customers can easily view the special price by clicking on the "Check Your Price" label on the category page. Here for the product Cruise Dual Analog Watch, the regular price is $55 and after clicking the label it will show the price as $52.25 which can be as low as $48 depending upon the requested quantity and offers. 

On the product detail page, customers can also view the price of the product. For example, when viewing the Cruise Dual Analog Watch, customers will notice a regular price of $55 and a special price of $52.25. Additionally, there is a tier pricing offer: if customers purchase 12 quantities of the Cruise Dual Analog Watch product, the per-unit special price will be $48.

The "Check Your Price" labels will be visible exclusively on the category and search pages.

API



Please use SWAGGER to get detailed information of parameters.

https://pricepercustomer.m2.demo.magedelight.com/swagger


Get list of customer price: rest/V1/magedelight-customerprice/

customerprice/search

Sample Data

{
searchCriteria[filter_groups][0][filters][0][field]:customer_id
searchCriteria[filter_groups][0][filters][0][value]:1
}


Get list of category price: categoryprice/search

Sample Data

{
searchCriteria[filter_groups][0][filters][0][field]:customer_id
searchCriteria[filter_groups][0][filters][0][value]:1
}


Save Customer price: customerprice

Sample Data

{
"customerprice":{
"customer_id":1,
"customer_name":"Veronica Costello",
"customer_email":"roni_cost@example.com",
"product_id":2,
"product_name":"Strive Shoulder Pack",
"price":32.000000,
"log_price":30,
"new_price":30,
"qty":1
}
}

Add multiple records for Customer price: multipleSave

Sample Data

{
    "products":[
        {
            "customer_id":1,
            "customer_name":"Veronica Costello",
            "customer_email":"roni_cost@example.com",
            "product_id":2042,
            "product_name":"Erika Running Short-31-Red",
            "price":45.000000,
            "log_price":40,
            "new_price":40,
            "qty":3
        },
        {
            "customer_id":1,
            "customer_name":"Veronica Costello",
            "customer_email":"roni_cost@example.com",
            "product_id":2044,
            "product_name":"Erika Running Short-32-Purple",
            "price":45.000000,
            "log_price":40,
            "new_price":40,
            "qty":3
        }
    ]
}

Put Customer price: customerprice/:customerpriceId

Sample Data

{
"customerprice":{
"customer_id":1,
"customer_name":"Veronica Costello",
"customer_email":"roni_cost@example.com",
"product_id":2,
"product_name":"Strive Shoulder Pack",
"price":32.000000,
"log_price":31,
"new_price":31,
"qty":3
}
}


Delete Customer price : customerprice/:customerpriceId

Sample Data

{
customerpriceId:8
}


Save Category price: categoryprice

Sample Data

{
"categoryprice":{
"customer_id":1,
"customer_name":"Veronica Costello",
"customer_email":"roni_cost@example.com",
"category_id":4,
"category_name":"Bags",
"discount":10
}
}

Put Category price: categoryprice/:categorypriceId

Sample Data

{
"categoryprice":{
"customer_id":1,
"customer_name":"Veronica Costello",
"customer_email":"roni_cost@example.com",
"category_id":4,
"category_name":"Bags",
"discount":10
}
}

Put Category price: categoryprice/:categorypriceId

Sample Data

{
"categoryprice":{
"customer_id":1,
"customer_name":"Veronica Costello",
"customer_email":"roni_cost@example.com",
"category_id":4,
"category_name":"Bags",
"discount":10
}
}

Delete Category price: categoryprice/:categorypriceId

Sample Data

categoryprice/:categorypriceId


Save Category discount: categorydiscount

Sample Data

{
"customerdiscount":{
"customer_id":1,
"value":10
}
}

Delete Category discount: categorydiscount/:discountId

Sample Data

{
"discountId":2
}

Demo


Click here to visit frontend.

Click here to visit backend admin panel.

Sample Data


Sample Product File for import/export format

Sample Category Filefor import/export format

FAQs


Click here to visit FAQs.

Support


Click here to raise a support ticket using your MageDelight account.

Additional Services


Click here to get the customized solution for this extension.



Thank you for choosing MageDelight!



  • No labels