Cookies setting

Cookies help us enhance your experience on our site by storing information about your preferences and interactions. You can customize your cookie settings by choosing which cookies to allow. Please note that disabling certain cookies might impact the functionality and features of our services, such as personalized content and suggestions. Cookie Policy

Cookie Policy
Essential cookies

These cookies are strictly necessary for the site to work and may not be disabled.

Information
Always enabled
Advertising cookies

Advertising cookies deliver ads relevant to your interests, limit ad frequency, and measure ad effectiveness.

Information
Analytics cookies

Analytics cookies collect information and report website usage statistics without personally identifying individual visitors to Google.

Information
mageplaza.com

How to hide prices from not logged-in users in your Magento 2?

Summer Nguyen | 09-04-2019

How to hide prices from not logged-in users in your Magento 2? How to hide prices from not logged-in users in your Magento 2?

The Most Popular Extension Builder for Magento 2

With a big catalog of 224+ extensions for your online store

Price has always been transparent when it comes to online ecommerce. It is a significant factor that helps your stores reach customers the fastest and engage with them better in the buying process.

However, the power of ecommerce is changing how businesses work. Apart from retail stores, wholesale companies also want to reach out. Unlike retails, B2B buyers are smaller in number but significant in order value. These prospects need better commitment and care from the sales team. The function will encourage the customers to create an account at your site, which is often the beginning of long term partnerships.

If this is the function your business is looking for? Let’s tune in and learn about not logged in/login for price.

Why hide price if not logged-in needed?

Prevent price being exposed to opponents

It is challenging to avoid competition in many industries and fields. However, it can be minimized when you remove prices on your store sites and only allow the real clients who have the ability to login to view product price.

Thus, the rival distributors cannot investigate your price and lure your familiar customers at better pricing.

Increase customer retention

When customers are really interested in your products, they would like to see its price and willing to create a new account on the store sites. After all that time spending to form an account, they will try to see and learn more about the item.

Also, the convenience of having an account in your store sites will help shoppers have a better shopping experience such as purchasing history, check out information, etc.

Utilize customer data to market them

Furthermore, the required personal information will provide valuable customer data. This information will come in handy when you apply email marketing. You can send follow-up email, event emails, reminder email, rewards email, etc. In the content, you can add in materials emails with a welcome email or up-sell/cross-sell suggestions or sales promotions.

How to activate login for price

After all the benefits I have mentioned in the section above, you must be dying to know how you can set view price by login with Magento 2 Hide Price extension. There are two ways for you to place it in motion:

Setting via rules

Firstly, please access to Admin Panel, and moving on to Sales > Call For Price > Configuration, choose Manage Rules section. To create new rules with customer login requirements. There are three steps for you to add a new rule:

  • Step 1: Fill in detail information in the General section
  • Step 2: Configure the displayability with the rule on the frontend in the What to Show section
  • Step 3: Create conditions to proceed with the rules on your products in the Where to Show section

The main point is where you can set customer login, right? This feature is located in the What to show section. You will understand clearer viewing the below picture:

Setting via rules

In the Action field, there are four selections supported for you to select and continue to choose Login to See Price.

Setting via specific product

When you only want to apply this for certain products, it is possible to set directly in each product individually without having edit the complex rules.

Admins can log in to Catalog > Products > Add Product or Edit Product.

Setting via specific product

Subsequently, scrolling down and view Call for Price: The product will be applied based on the selected rule in this field: In the Call for price field, when you choose the select Inherit from Rule, the product will follow the conditions which have been set in the Rules section.


Call for Price

Call for Price for Magento 2

Unlock the potential of your product sales with our custom pricing options on Magento 2

Check it out!


However, if you do not want to apply Inherit from Rule, it is possible for you to disable it and implement other rules with login for price. For example, you had set a rule to apply Popup a quote form with category Trousers. But for some products, you want customers to view the product price right after they login then you need to choose the name of the specific rule which contains login to view price.

Login for price on frontend

On the frontend, the price will show a button that redirects buyers to register/login to view the price instead of viewing price directly. The button flexibly shows on both the category page and product page. After the customer had log in, the price will be displayed usually on the store page.

Login for price on frontend

Disabled price button

Steps to hide price for not logged in customers in Magento 2

Step 1: Add di.xml in the following path: Vendor\Extension\etc

<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../../../../lib/internal/Magento/Framework/ObjectManager/etc/config.xsd">
    <preference for="Magento\Catalog\Pricing\Render\FinalPriceBox" 
        type="Vendor\Extension\Pricing\Render\FinalPriceBox" />
    <preference for="Magento\ConfigurableProduct\Pricing\Render\FinalPriceBox" 
        type="Vendor\Extension\Pricing\Render\FinalPriceBox" />
</config>

Step 2: Create FinalPriceBox.php in the following path: Vendor\Extension\Pricing\Render

<?php

namespace Vendor\Extension\Pricing\Render;

use Magento\Framework\View\Element\Template\Context;
use Magento\Framework\Pricing\SaleableInterface;
use Magento\Framework\Pricing\Price\PriceInterface;
use Magento\Framework\Pricing\Render\RendererPool;
use Magento\Framework\App\Http\Context as HttpContext;

class FinalPriceBox extends \Magento\Catalog\Pricing\Render\FinalPriceBox
{
    protected $httpContext;

    public function __construct(
        Context $context,
        SaleableInterface $saleableItem,
        PriceInterface $price,
        RendererPool $rendererPool,
        HttpContext $httpContext,
        array $data = []
    ) {
        $this->httpContext = $httpContext;
        parent::__construct(
            $context,
            $saleableItem,
            $price,
            $rendererPool,
            $data
        );
    }

    protected function wrapResult($html)
    {
        $isLoggedIn = $this->httpContext->getValue(\Magento\Customer\Model\Context::CONTEXT_AUTH);
        if ($isLoggedIn) {
            return '<div class="price-box ' . $this->getData('css_classes') . '" ' .
                'data-role="priceBox" ' .
                'data-product-id="' . $this->getSaleableItem()->getId() . '"' .
                '>' . $html . '</div>';
        } else {
            $wording = 'Please Login To See Price';
            return '<div class="" ' .
                'data-role="priceBox" ' .
                'data-product-id="' . $this->getSaleableItem()->getId() . '"' .
                '>' . $wording . '</div>';
        }
    }
}

Remember to run the command: php bin/magento s:d:c and clear the cache before checking!

That’s all!

Final Words

In general, this is a unique feature for you to encourage customers to have a better commitment to the store and prevent your direct rival from accessing your item pricing.

Allow customer to see price by logging is a minor function which featured in Magento 2 Hide Price. It is a perfect solution for B2B to control price visibility. Customers will be motivated to contact stores and helps admins to conceal product prices information with ease.


Hide Price

Hide Price Extension for Magento 2

An efficient way to control price visibility by hiding prices for specific groups.

Check it out!


Table of content
    Summer

    A data-driven marketing leader with over 10 years of experience in the ecommerce industry. Summer leverages her deep understanding of customer behavior and market trends to develop strategic marketing campaigns that drive brand awareness, customer acquisition, and ultimately, sales growth for our company.



    Related Post

    Website Support & Maintenance Services

    mageplaza services

    Make sure your store is not only in good shape but also thriving with a professional team yet at an affordable price.