Why Hiding Prices in Magento 2 Is a Legitimate Strategy
Most ecommerce advice tells you to be transparent with pricing. And for direct-to-consumer stores selling commodity products, that's correct. But if you're running a B2B catalog, operating in a market where competitors actively scrape your prices, or selling products where the price genuinely depends on order volume and negotiation - hiding your prices isn't a mistake. It's a deliberate business decision.
There are a few concrete situations where hiding prices in Magento 2 makes real sense:
- B2B wholesale stores: Your wholesale price is your negotiated advantage. If your competitors can see it publicly, they'll undercut you. Hiding prices from guests forces them to identify themselves as a buyer. As one real-world example illustrates - if Store A researches and sets a wholesale price of $10 per item for orders of 200 units, Store B can immediately see that, match it, and undercut it. Hiding the price removes that vector entirely.
- Quote-based pricing: Some products - custom fabrication, bulk chemical orders, enterprise software licensing, custom machinery - legitimately don't have a fixed price. A hidden price replaced by a "Request a Quote" button is the honest UX for that situation. The customer needs to describe what they want before a price makes any sense.
- Account-gated catalogs: If you want to turn anonymous browsers into registered users, hiding the price until someone logs in creates a concrete incentive to sign up - stronger than a newsletter popup. You're not blocking people; you're creating exclusivity.
- Competitor price intelligence: In highly competitive markets, your pricing is proprietary research. Keeping it away from non-customers makes practical sense. Visible pricing allows competitors to undercut you immediately - hidden prices prevent price wars that erode profit margins.
- MAP-restricted products: If you sell through resellers and can't publish Minimum Advertised Prices online, a "Request a Quote" button replaces the price and routes inquiries to your sales team - which keeps you compliant while maintaining a functional storefront.
- Compliance and verification gates: Some categories - regulated goods, age-restricted products, licensed professional supplies - legally require identity or license verification before showing a price. Price hiding plus a redirect to a verification form handles this cleanly.
Magento 2 doesn't offer native price-hiding controls robust enough to handle all of these out of the box. For basic use cases you can write a custom plugin - but for anything production-grade, you'll want an extension. More on both below.
Does Magento 2 Have a Built-In Hide Price Feature?
Short answer: no. Magento 2 Open Source, Adobe Commerce, and Adobe Commerce Cloud do not include a native hide-price feature. A third-party extension is required to hide product prices, disable the Add to Cart button conditionally, or replace prices with custom messages.
Magento 2's default architecture doesn't include a toggle to hide prices by customer group. The core catalog module always renders price blocks. To suppress prices for the "NOT LOGGED IN" group, you need to override the Magento\Catalog\Pricing\Render\FinalPriceBox class using a di.xml preference in a custom module.
That works, but it's fragile. You're overriding a core pricing class that Magento updates regularly. Any subsequent Magento core update can conflict with your override. You also don't get any admin UI for controlling which products, categories, or groups are affected - it's all code. If your developer leaves, this becomes an unmanaged liability in your codebase.
Out of the box, without an extension, your only workarounds are things like removing products from categories entirely, editing .phtml templates directly, or disabling the cart globally - all of which are blunt instruments that create more problems than they solve.
For a one-off use case on a developer-owned store, the custom plugin route is fine. For anything with ongoing maintenance needs - especially if a non-developer merchant needs to control visibility rules - you need an extension with an admin UI.
How Magento 2 Hide Price Extensions Work
The purpose-built hide price extensions for Magento 2 all work on roughly the same principle: they intercept the price rendering process and replace the price (and optionally the Add to Cart button) with whatever you configure - a custom message, a CTA button, a quote form, or a redirect link.
The core capabilities you should expect from any serious extension:
- Customer group targeting: Hide prices for guests only, all non-logged-in users, or specific groups like "Wholesale" or "Retailer." This is the most common use case. All the major extensions support the NOT LOGGED IN group as a target.
- Scope control: Apply hiding globally across the whole catalog, to specific categories, or to individual products. Rules can be applied by product, category, customer group, store view, date range, and in some extensions even by country. A good extension lets you mix all three levels - global defaults with product-level overrides.
- Add to Cart suppression: Hiding the price means nothing if the Add to Cart button still shows. Most extensions let you hide or replace that button simultaneously. You can remove the Add to Cart, Add to Compare, and Add to Wishlist options.
- Custom replacement text: Instead of a blank space where the price was, you can show "Login to see price," "Contact us for a quote," or any custom string - including HTML and links. The message is your first conversion touchpoint with an unregistered visitor.
- Redirect functionality: When a guest clicks the replacement button, they can be sent to a registration page, a contact form, or any CMS page you specify.
- Quote form popup: Some extensions replace the price with an inline quote request form, collecting the visitor's name, email, and inquiry details on the spot. When a visitor clicks the custom button, a popup appears for them to enter their contact info and order requirements.
- Admin notifications: Good extensions automatically notify admins via email whenever a new quote request is submitted, reducing response time and preventing inquiries from going cold.
- Quote request management: A dedicated grid in the Magento backend to view, track, and respond to all price requests without leaving the admin panel.
Free Download: 7-Figure Offer Builder
Drop your email and get instant access.
You're in! Here's your download:
Access Now →The Top Magento 2 Hide Price Extensions
There are several solid options in the market. Here's a practical breakdown of the main players and what differentiates each:
Amasty Hide Price
Amasty is one of the most established Magento extension vendors. Their Hide Price module covers all the core use cases: hide by customer group, hide by category, hide by product, replace the Add to Cart button, and configure custom messages. It also integrates with their Custom Stock Status extension, which lets you auto-hide prices based on a product's stock status - useful if you frequently have items that go to "call for availability" mode.
Amasty takes a visibility-management approach focused on customer groups and catalog control, allowing merchants to hide prices and purchasing actions while customizing customer-facing messaging and redirects. Hyvä theme compatibility is available as part of an active product or support subscription. This is a solid enterprise-grade choice with a long track record of staying current with Magento core updates - which matters more than most people realize when choosing a vendor for a core pricing class override.
BSSCommerce Hide Price
BSSCommerce offers a clean admin UI with their Hide Price extension. The setup path is straightforward: go to Stores > Configuration > BSSCommerce > Hide Price General Config, set your Hide Price Action to hide price and the Add to Cart button, then in the Apply for Customer Group field, select "NOT LOGGED IN." Their extension also includes Hyvä theme compatibility, which matters if you've made that migration.
The BSS extension also supports hiding prices for specific individual customers (not just groups), REST API for data transfer, and an advanced Call For Price version with full quote request management. For B2B merchants who need both price hiding and a quote workflow in one package, BSS is worth evaluating. It's also solid for mixed B2B/B2C stores where you need different behaviors per customer segment.
Aheadworks Hide Price
Aheadworks takes a rule-based approach that gives you more granular control. You can link custom buttons to any store page, customize the CSS style for replaced links, and set up multi-condition rules. Good fit if you need to mix and match visibility conditions across a complex catalog. Aheadworks has one of the longer track records in the Magento extension space, which is relevant when you're relying on a module that touches core pricing rendering.
MageMe HidePrice Pro
A strong option for B2B stores, private sales, and quote-based models. The admin configuration path is clean: install the extension, go to Stores > Configuration > HidePrice, enable it, then choose what elements to hide - price only, Add to Cart only, or both. MageMe's rule engine lets you go to MageMe > HidePrice > Manage Rules, create a new rule, fill in the Name and Priority, and under Conditions choose which customer groups the rule applies to. Under Scope, pick whether the rule applies site-wide, to specific categories, or to specific products.
Their popup inquiry form feature is particularly useful if you want to collect prospect data in exchange for showing the price. Compatible with Magento 2.4.4+ on Luma, Breeze, and Hyvä themes. After saving a rule, flush your full-page cache - the rule takes effect immediately. Testing in an incognito window versus a logged-in tab is the fastest way to verify it's working correctly.
Mageplaza Hide Price
Mageplaza positions its extension around customer engagement and inquiry tracking. The module focuses on hiding prices dynamically while giving merchants visibility into customer price requests and interactions. A standout feature is the Advanced Report: the admin panel shows the number of requests, top requested products, and requesters on a monthly basis, plus a comparison against previous periods. If you're using hidden-price inquiries as a lead generation channel and want analytics on which products are generating the most inquiry demand, Mageplaza's reporting gives you that visibility.
The extension supports multiple actions for hiding prices: hide Add to Cart, Request Form Popup, Login Popup, or redirect to a URL. You can configure which fields to collect in the request form. It also integrates with Mageplaza's Google reCaptcha extension, which matters if you're worried about spam inquiry submissions on a high-traffic store.
Mirasvit Hide Prices
Mirasvit's offering adds schedule-based rules, which is genuinely useful for situations like temporary price hiding during revaluation or time-limited private sales. You can also apply price hiding rules per store view independently, making it a good fit for multi-store setups operating in different regions or languages. If your use case involves time-windowed visibility - flash sales with prices visible only to logged-in users during a specific date range, for example - Mirasvit is the standout option in this space.
Meetanshi Hide Price
A straightforward, no-frills extension. It handles the core use case - hide price and Add to Cart for guests and specific customer groups - and lets you set custom HTML as the replacement text. Admin navigation goes to Catalog > Products > Product Edit > Hide Price tab for product-level control. Prices get hidden on wishlist and compare pages as well, which is an often-overlooked detail that matters for preventing price leakage through secondary pages. Good option for smaller stores that need the core feature without complexity overhead.
FME Extensions Hide Price
FME's extension is worth calling out specifically for two capabilities that matter in certain architectures. First, it explicitly supports country-based visibility conditions - useful for international stores with region-specific pricing visibility strategies. Second, it exposes its logic through GraphQL, which means it works correctly in PWA and headless Magento storefronts. If you're running a Magento PWA or a React/Vue frontend powered by Magento's GraphQL API, FME is one of the few options that functions correctly in that architecture. It also supports hiding prices on cross-sell, upsell, and related product blocks - which many other extensions miss.
Plumrocket Hide Price
Plumrocket focuses on flexibility and workflow control. The extension allows merchants to create hide-price rules for products, categories, customer groups, store views, and other conditions while managing price requests directly from the Magento admin panel. It's a strong fit for stores needing flexible pricing visibility workflows and inquiry handling in a single module, with automatic admin notifications and customer-facing auto-response email templates when a quote request comes in.
Step-by-Step: Hiding Prices for Guest Users (Extension Method)
Regardless of which extension you choose, the configuration flow is similar. Using Amasty as the reference example:
- Install and enable the Hide Price extension via Composer.
- Navigate to Stores > Configuration > Hide Price in your admin panel.
- Open the General Settings tab and set Enable Extension to Yes.
- In the Hide Price for Selected Group(s) field, choose NOT LOGGED IN.
- In Hide Price Options, set Hide Price to Yes and Hide Add to Cart to Yes.
- Configure your replacement button text - something like "Login to See Price" with a link pointing to your customer login page.
- Optionally configure Hide Add to Wishlist and Hide Add to Compare to prevent price leakage through those secondary pages.
- Save the configuration, then flush your Magento cache and reindex.
For product-level overrides, go to Catalog > Products > [select product] > Hide Price tab and set the Display Price Mode to Show, Hide, or Default Config. This lets you make exceptions - for example, if most of your catalog requires login but you want pricing visible on a few featured products to anchor credibility with first-time visitors.
One step most guides skip: always test in an incognito browser window after flushing cache. Magento's full-page cache is aggressive, and your logged-in admin session will show you the wrong view. Open an incognito tab and browse as a guest to confirm the extension is working as configured.
Step-by-Step: Hiding Prices for Specific Customer Groups
The NOT LOGGED IN case is the most common, but customer group-based hiding is where things get interesting for real B2B operations. You may have Retail, Wholesale, Dealer, and Distributor groups - all with different pricing visibility rules. Here's how to configure that:
- First, set up your customer groups in Stores > Other Settings > Customer Groups. Create groups for each tier - Wholesale, Retailer, Dealer, etc.
- In your Hide Price extension settings, navigate to the customer group targeting section.
- Instead of only selecting NOT LOGGED IN, you can also select specific named groups. For example, you might show prices to your "Retailer" group but hide them from your "Wholesale" group (because wholesale prices are individually negotiated).
- Set up corresponding replacement messages for each group. Your Wholesale group might see "Contact your account manager for pricing" while guests see "Login to see price."
- If your extension supports per-rule priority, assign higher priority numbers to product-level rules so they override category and global rules when conflicts occur.
- Test each group by creating test accounts in each customer group and logging in as each to verify the correct behavior.
The most common real-world setup is a combination: global default is "show," but specific categories or products trigger the hide rule for the NOT LOGGED IN group and any groups with individually negotiated pricing.
Need Targeted Leads?
Search unlimited B2B contacts by title, industry, location, and company size. Export to CSV instantly. $149/month, free to try.
Try the Lead Database →Scoping Your Price-Hiding Strategy: Global vs. Category vs. Product
Don't just flip a global switch without thinking through the scope. Each level has different tradeoffs:
- Global hiding: Maximum friction for competitors and browsers, maximum friction for potential customers too. Best for pure B2B wholesale stores where every buyer is expected to have an account. If you're running a trade-only store, this is often the right call.
- Category-level hiding: Makes sense when you have a mixed catalog - some products are publicly priced, others (like custom or high-value items) require contact. Configure category-specific rules and leave the global default as "show." This is the right approach for hybrid stores that serve both B2C and B2B buyers.
- Product-level hiding: Most granular. Useful when individual SKUs have negotiated pricing or when a product is on a temporary hold while pricing is being updated. You can also use this to make exceptions within a category that has a hide rule applied - one or two anchor products can remain publicly priced to establish category-level credibility.
The most effective real-world setup I see in B2B ecommerce is a layered approach: a global rule hides prices for NOT LOGGED IN, a category rule adds additional hiding for your highest-margin product lines even for some logged-in tiers, and product-level settings handle one-off exceptions. Most of the major extensions support rule priority systems that let you manage these overlapping rules cleanly.
What to Replace the Price With (And Why It Matters for Conversion)
The replacement text or button is where most store owners underinvest. A blank space where the price used to be is confusing and erodes trust. A cryptic "N/A" is worse. What you put in that space is your first conversion touchpoint with an unregistered visitor - treat it with the same care you'd give a landing page headline.
A few approaches that actually work:
- "Login to see price" with a direct link to the login/registration page. Clean, clear, sets the right expectation. Best for B2B stores where account creation is a normal part of the sales process. The key is making the link obvious and the registration form short - ask for the minimum information you need to create the account.
- "Request a Quote" with a popup form collecting name, email, company, and quantity needed. This is the highest-intent capture - you're getting a warm lead with purchase intent baked in. If you integrate this with your CRM or email sequences, every hidden-price inquiry becomes a pipeline entry. Configure your extension to send admin notifications instantly so inquiries get a response within hours, not days.
- "Contact Us for Pricing" with a phone number or a link to a contact form. Works well when your sales cycle involves a conversation anyway. Including a phone number in the replacement text adds a layer of credibility and gives high-intent prospects an immediate path to resolution.
- "Exclusive Pricing for Members" - this framing creates perceived value rather than just a barrier. The prospect feels like they're being offered something, not locked out of something. This psychological distinction matters more than it sounds; "locked out" creates frustration while "exclusive access" creates aspiration.
- Custom HTML with urgency: Some extensions let you put fully custom HTML in the price replacement field. You can include a short value proposition, a registration incentive ("Sign up for wholesale pricing"), and a styled button - all within the price display area.
The data your quote forms collect from hidden-price interactions is genuinely useful beyond just the individual inquiry. You're learning which products are generating inquiry demand from non-registered visitors, which informs both your catalog strategy and your outbound targeting.
The SEO Implications of Hiding Prices in Magento 2
This is the section most guides skip, and it's important. When you hide prices in Magento 2, there are SEO considerations you need to manage deliberately.
Structured data and rich snippets: Magento's product pages output schema.org Product markup including the Offer schema, which is what allows Google to show product prices in search results. When you hide prices using a frontend extension, the price may still be present in the page's structured data (JSON-LD or microdata) even though it's not visible on screen. This creates a mismatch that can trigger Google Search Console warnings.
The practical answer is to verify what your extension does to the structured data layer - not just the visual rendering. Some extensions only suppress the visible price HTML while leaving the structured data intact. Others suppress both. Run Google's Rich Results Test on a product page where pricing is hidden and check whether a price value still appears in the structured data output. If it does and you don't want it there, you'll need to either configure the extension to also strip the structured data price or handle it separately.
For stores using Google Merchant Center and running Shopping ads, this matters even more. The prices in your product feed need to match prices in your structured data markup - if your markup shows a price that doesn't match your feed (because it's hidden or conditional), you'll get data quality warnings from Merchant Center. If you're hiding prices from all public users including Googlebot, you may also lose product rich snippet eligibility in organic search. This is an acceptable tradeoff for pure B2B stores that don't rely on organic Shopping visibility, but it's a tradeoff you should make consciously.
Crawlability and indexing: Googlebot crawls as a guest user in most cases. If you hide prices from guests, Google won't see prices on those product pages. This means your product pages won't show price-in-SERP features for those products. For B2B stores where the keyword targets are more informational (product specs, part numbers, category pages) this is fine. For stores where price-comparison search intent drives meaningful traffic, it's a real cost.
What to do in practice: If you're a pure B2B store and don't rely on B2C price-comparison traffic, hide prices globally and accept that your products won't show price rich snippets in search. If you're a hybrid store, scope your price hiding to categories and groups that genuinely need it, and keep publicly visible prices on products that drive organic acquisition. This gives you SEO visibility where it matters while protecting proprietary pricing where it counts.
Free Download: 7-Figure Offer Builder
Drop your email and get instant access.
You're in! Here's your download:
Access Now →Hiding Prices on Comparison, Wishlist, and Related Product Blocks
One of the most common and costly implementation mistakes is treating price hiding as a product page-only concern. Prices surface in multiple places throughout a Magento store, and each one is a potential leak if your extension doesn't cover it.
The places you need to verify are covered:
- Product listing pages (category pages): Prices display in the product grid tiles. Your extension should suppress prices here, not just on the product detail page.
- Search results pages: Same issue - prices appear in search result product tiles.
- Comparison pages: Magento's native product comparison feature shows prices in a side-by-side table. If your extension doesn't suppress prices here, a guest can add products to the compare page and see prices they shouldn't. To disable the comparison feature entirely: go to Stores > Configuration > Catalog > Catalog > Product Listings and set Allow Product Comparison to No. Or verify that your hide price extension covers this page.
- Wishlist pages: Same risk - if a guest somehow accesses a wishlist shared by a logged-in user, prices may display.
- Related products, upsell, and cross-sell blocks: These appear on product detail pages and cart pages. FME's extension specifically calls out coverage for these blocks. Verify that your chosen extension covers them too.
- Mini cart and shopping cart: If a guest can add to cart (which means your Add to Cart suppression isn't working) they'll see the price in the cart. This is why suppressing Add to Cart simultaneously with the price is non-negotiable.
- Homepage and CMS page product blocks: If you have featured product blocks on your homepage, prices appear there too.
The testing protocol: after configuring your extension, create a checklist of every page type in your store and visit each one in an incognito window. Don't assume the product page configuration carries over to every context automatically - verify it explicitly.
Configuring Quote Request Management in Your Admin Panel
If you're using a quote form popup as your replacement action, the backend quote management workflow deserves serious attention. The extension captures the inquiry - but your process determines whether that inquiry converts.
Most of the major extensions (Amasty, Mageplaza, Plumrocket, BSSCommerce's Call For Price version) provide a dedicated quote request management grid in the Magento admin. From this grid you can:
- View all submitted requests with the product, requester contact info, quantity, and timestamp
- Respond directly via email from the admin panel without leaving the page
- Track which requests have been responded to and which are still open
- See aggregate reporting on which products are generating the most inquiry volume
The admin notification feature is the one to configure first. Most extensions will send an email to a configurable admin address when a new request comes in. Set this up before you go live - an inquiry that sits for 24 hours without a response has already lost significant conversion probability. The faster your response, the higher your close rate on these inquiries.
Mageplaza's reporting feature in particular is worth noting: it shows monthly request data with comparison against previous periods, plus top requested products and requesters. If you're using hidden-price inquiries as a deliberate lead generation channel, that reporting data tells you which products are driving the most inquiry demand - which is a useful signal for both catalog strategy and outbound targeting.
Step-by-Step: Installing a Hide Price Extension via Composer
For developers or store owners managing their own Magento installation, here's the standard installation process using Composer (the approach that keeps your installation maintainable):
- SSH into your Magento server and navigate to your Magento root directory.
- Run
composer require vendor/module-hide-price(replace with the actual package name from your vendor's documentation). - Run
php bin/magento setup:upgrade - Run
php bin/magento setup:di:compile - Run
php bin/magento setup:static-content:deploy - Run
php bin/magento cache:flush - Navigate to Stores > Configuration > [Extension Name] and configure your settings.
- Flush cache again after saving configuration changes.
If you're installing manually (not via Composer), copy the extension files to /app/code/Vendor/Module, then run the setup:upgrade, di:compile, and static-content:deploy commands as above. The Composer method is strongly preferred for ongoing maintainability - it makes updates and conflict tracking significantly cleaner.
One critical note: disable Magento's full-page cache before running setup:upgrade, and re-enable it after. Running upgrades with FPC enabled can cause caching conflicts that make it look like the installation failed when it actually succeeded. Run php bin/magento cache:disable full_page before the upgrade, then php bin/magento cache:enable full_page after.
Need Targeted Leads?
Search unlimited B2B contacts by title, industry, location, and company size. Export to CSV instantly. $149/month, free to try.
Try the Lead Database →Hide Price vs. Call for Price: What's the Difference?
You'll see both terms used interchangeably in the market, so it's worth clarifying. Hide Price and Call for Price extensions perform the same core function - hiding the price and replacing the Add to Cart button. The naming reflects different framing: Hide Price is store-owner framed (you're controlling visibility), Call for Price is customer-framed (they're being invited to contact you).
Some vendors sell them as separate products, where Hide Price is the basic version and Call for Price includes the quote form and request management features. If you see a vendor offering both, the Call for Price version is almost always what you actually want for a B2B store - it includes the inquiry capture and management features that make the strategy actionable, not just cosmetic.
The practical question is whether you need the inquiry management layer. If your goal is purely to gate pricing behind a login (show prices to registered users, hide from guests), the simpler Hide Price module is enough. If you want to actively capture leads from visitors who are interested but not yet registered, you need the quote form and admin notification workflow - which is the Call for Price feature set.
Multi-Store and Multi-Language Configurations
If you're running multiple Magento store views - different regions, different languages, or separate B2B and B2C storefronts on the same installation - price hiding rules need to be configured with store view scope in mind.
Most of the major extensions allow you to apply hide price rules per store view independently. This means you can hide prices on your B2B store view while keeping them visible on your B2C store view, even though both run on the same Magento installation. Mirasvit explicitly supports this. Plumrocket also supports per-store-view rules.
For international stores with region-specific pricing visibility strategies - for example, hiding prices in markets where you sell through distributors but showing them in markets where you sell direct - FME's country-based visibility conditions handle this without requiring separate store views.
Configuration tip for multi-store setups: always test each store view in a separate incognito window after making changes. Configuration scope inheritance in Magento can produce unexpected results where a website-scope setting overrides a store-view-scope setting or vice versa. Explicitly verify each store view behaves as intended.
Common Mistakes When Setting Up Price Hiding in Magento 2
- Hiding the price but not the Add to Cart button. A guest who can't see the price but can still add to cart will add to cart, get to checkout, and see the price there - which is a worse experience than never showing it at all. Always suppress both simultaneously.
- Not hiding prices on comparison and wishlist pages. Prices leak through these pages if your extension doesn't cover them. Verify that whichever extension you use handles all secondary page types, not just the product detail page.
- Leaving prices in structured data while hiding them visually. This creates a Google Search Console mismatch and can cause Merchant Center data quality issues. Verify what your extension does at the structured data layer, not just the visible HTML layer.
- Using generic replacement text. "Price Hidden" tells the prospect nothing useful. Give them a clear next action - a button, a phone number, a link. The replacement text is a conversion opportunity, not a placeholder.
- Not flushing cache after configuration changes. Magento caches aggressively. Always flush full page cache and reindex after changing extension settings, or you'll spend 20 minutes wondering why nothing changed. Test in incognito to get an uncached guest view.
- Not setting up admin notifications for quote requests. If inquiries are coming in and nobody's responding within a few hours, you're burning your highest-intent leads. Configure the notification email before going live.
- Applying this to a pure B2C store without testing the impact on conversion. If your customers are comparison shopping and expect to see prices immediately, hiding them will tank your conversion rate. Measure before committing to the strategy at scale. This only works well when there's a clear reason for the customer to want an account.
- Configuring global hide without thinking about the homepage. Featured product blocks, hero banners with product callouts, and homepage widgets often show prices. Make sure your extension covers these locations or configure them separately.
Free Download: 7-Figure Offer Builder
Drop your email and get instant access.
You're in! Here's your download:
Access Now →The B2B Lead Generation Angle Nobody Talks About
If you're running a B2B Magento store, the visitors who are willing to create an account or fill out a quote form to see your prices are your highest-quality prospects. They're self-identifying as buyers, not browsers. The friction is working as a filter, not just as a gate.
That account registration data - company name, email, job title - is your prospecting list. The problem is it's passive: you wait for people to find you and then jump through the hoop. If you want to build that prospect list proactively before they hit your store, you need outbound. The 7-Figure Agency Blueprint covers how to structure that kind of outbound-led pipeline for agencies selling into B2B ecommerce operators.
On the prospecting side: if you're a vendor, agency, or consultant targeting ecommerce operators as clients, you can identify Magento store operators and pull contact data at scale. ScraperCity's ecommerce store scraper lets you pull contact data from online stores - useful for building a targeted outreach list of ecommerce operators before they ever find your store organically. If you already have a list of store domains and need to find the owner's email address, the email finder tool closes that gap.
The quote form data you collect from hidden-price interactions also has outbound value. If someone filled out a quote form for a specific product category three months ago and you haven't closed them yet, that's a re-engagement target. Export that data into your CRM and build a follow-up sequence around it.
Integrating with Your Sales and Email Follow-Up
If you're using the quote form approach, the email addresses you collect from hidden-price inquiries need to go somewhere useful. The workflow that actually converts:
- Visitor fills out quote form on your Magento store.
- Inquiry fires an admin notification to your sales team and triggers an automated follow-up sequence to the prospect.
- The sales follow-up sequence sends the price, a relevant case study or reference customer, and a meeting booking link.
- If no response after 48 hours, a follow-up touchpoint goes out referencing the specific product they inquired about.
For managing that follow-up sequence, a CRM with built-in pipeline management like Close keeps it organized when you have multiple quote inquiries coming in simultaneously. The goal is to never let a high-intent hidden-price inquiry sit without a response for more than a few hours - speed of response is one of the strongest predictors of close rate on inbound leads.
The automatic response email your extension sends when a quote is submitted buys you time, but it's not a substitute for a real reply. Configure the auto-response to set expectations ("We'll get back to you within 4 business hours with pricing details") and include something useful in the meantime - a company overview PDF, a relevant case study, or a link to a product spec sheet. This keeps the prospect engaged while your sales team picks up the inquiry.
For writing the actual follow-up emails that convert these inquiries, the Discovery Call Framework is worth reviewing - the structure applies whether you're doing a sales call or writing the email that books one.
Choosing the Right Extension: Decision Framework
Most of the major extensions handle the core use case. The differentiators come down to your specific requirements. Work through these questions before choosing:
What's your primary use case?
- Just hide prices from guests and redirect to login: any basic extension works. Meetanshi, MageComp, or BSSCommerce are all fine and straightforward to configure.
- Hide prices plus capture quote requests with admin management: Amasty, BSSCommerce Call For Price, Mageplaza, or Plumrocket.
- Advanced analytics on which products are generating inquiry demand: Mageplaza's Advanced Report feature is the standout here.
What's your technical stack?
- Hyvä theme: Verify explicitly. Amasty, BSSCommerce, and MageMe all support Hyvä. Not all extensions do. Compatibility is sometimes a paid add-on rather than included in base pricing.
- Headless or PWA storefront: You need GraphQL support. FME Extensions explicitly supports this. Verify any other candidates expose their logic via GraphQL before purchasing.
- Multi-store with different rules per view: Mirasvit and Plumrocket both handle per-store-view rules cleanly.
What's your business complexity?
- Time-based rules: Mirasvit is the standout for schedule-based visibility.
- Country-based visibility: FME Extensions handles this natively.
- Complex B2B with company accounts: Amasty integrates with their Company Accounts extension for sophisticated rule targeting by company, not just individual customer group.
- Rule priority management across global/category/product levels: All the major vendors support this, but verify the priority logic matches your expectations before committing.
What's your maintenance situation?
- If you have an in-house developer who can handle updates: most vendors are fine.
- If you need long-term vendor support and update reliability: Amasty and Aheadworks have the longest track records. One real-world review notes that a competitor's plugin "no longer kept pace with Magento's core updates" - which is a real risk when you're overriding core pricing class rendering.
If you're an agency or developer helping a client implement this, scope out the full configuration before installation. Know whether you need quote form integration, specific customer group rules, or multi-store handling before you commit to a vendor. Switching extensions mid-project because you hit a feature gap is expensive - both in time and in potential data migration complexity if the extension stores quote request data in its own tables.
For agencies doing this kind of Magento implementation work at scale, the Agency Contract Template is a useful starting point for scoping extension work properly with clients - specifically for defining what's in scope for configuration versus custom development, and who owns the ongoing maintenance obligation.
Need Targeted Leads?
Search unlimited B2B contacts by title, industry, location, and company size. Export to CSV instantly. $149/month, free to try.
Try the Lead Database →Advanced Use Cases: Combining Hide Price with Other B2B Modules
Once you have basic price hiding working, there are several complementary modules that extend the strategy into a complete B2B pricing system:
Request for Quote systems: These go deeper than the popup form included in hide price extensions. A dedicated RFQ extension lets customers add multiple products to a quote cart, submit a detailed multi-line quote request, and negotiate pricing back and forth via the admin panel before converting to an order. If you're in a space where customers regularly order 20+ SKUs with negotiated pricing per line, a standalone RFQ module is worth the additional investment. BSSCommerce, Aheadworks, and Mageworx all offer dedicated RFQ extensions that can be used alongside a hide price module.
Customer group pricing: Hide price controls visibility; customer group pricing controls the actual price shown once a customer logs in. Combining both means different customer tiers see different prices - Retail customers see retail pricing, Wholesale customers see wholesale pricing, and guests see nothing. This is the complete B2B pricing architecture for most wholesale stores.
Dynamic pricing rules: Some advanced stores combine hide price extensions with dynamic pricing tools that adjust displayed prices based on quantity, customer purchase history, or market conditions. The hide price layer handles guest/group visibility, while the dynamic pricing layer handles what's shown to each tier once visibility is granted.
Private sale events: With Mirasvit's schedule-based rules, you can build time-windowed private sales where prices are visible only to logged-in customers during a specific date range. This creates urgency (the window closes) and exclusivity (only registered users participate) without requiring manual toggling of price visibility.
Advanced stores often combine hide price extensions with request for quote systems, customer group pricing, dynamic pricing rules, and private sale event capabilities to build a complete B2B purchase workflow. If your needs extend beyond simple price hiding, consider whether a comprehensive B2B suite that integrates multiple pricing tools would be more maintainable than assembling individual modules from different vendors.
Frequently Asked Questions
Can I hide prices only for guest users and show them to all logged-in customers?
Yes. All the major extensions support customer group rules including the NOT LOGGED IN group. Configure the rule to apply only to NOT LOGGED IN and leave all other customer groups (General, Wholesale, Retailer, etc.) with the default show behavior. You can show prices to registered customers and hide them from guests, typically with a "Log in to see price" link that redirects to your login or registration page.
Will hiding prices hurt my SEO?
It depends on how you implement it and what kind of traffic you're optimizing for. Hiding prices removes price-in-SERP rich snippet eligibility for affected products, and Googlebot crawls as a guest so it won't index prices on hidden pages. For pure B2B stores where organic Shopping traffic isn't a priority, this is an acceptable tradeoff. For hybrid stores, scope the hiding to specific groups and categories rather than applying it globally, and keep prices visible on products that drive organic acquisition. Always check your structured data output to make sure price hiding at the visual layer isn't creating conflicts in your schema markup.
What's the difference between Hide Price and Call for Price extensions?
They perform the same function - hiding the price and replacing the Add to Cart button. Hide Price is store-owner framed; Call for Price is customer-framed. Some vendors sell them as separate products where the Call for Price version includes the quote form and request management features. If you need inquiry capture, get the Call for Price version or a hide price extension that includes quote form functionality.
Do hide price extensions work on configurable products?
Yes, but the behavior varies by theme. On Luma theme, the actual hide price values for simple child products display when multiple options of the configurable product are selected (e.g., size and color). On Hyvä theme, the correct values display after selecting the first option. Most major extensions handle this correctly, but verify configurable product behavior in your specific theme during testing.
Can I apply hide price rules to cross-sell, upsell, and related product blocks?
Some extensions support this, some don't. FME Extensions specifically calls out coverage for cross-sell, upsell, and related product blocks. MageArray's extension also covers these blocks along with wishlist and compare pages. Verify your chosen extension's coverage explicitly - don't assume product page configuration carries over to these secondary blocks automatically.
What happens if I update Magento and the extension breaks?
This is the main reason to choose a vendor with a strong update history. Extensions that override core pricing classes (which is what hide price extensions do) are vulnerable to Magento core updates. Vendors like Amasty and Aheadworks have explicit version compatibility tracking and release updates when Magento updates. If you're running a custom module instead of a maintained extension, you're on your own for compatibility maintenance after every Magento release.
Putting It All Together: The Right Setup for Your Store Type
Here's the practical summary based on store type:
Pure B2B wholesale store (all buyers have accounts): Global hide for NOT LOGGED IN group. Quote form popup as replacement action. Admin notifications enabled. Integrate quote request data with your CRM. Use customer group pricing to show different rates to different tiers once logged in. Verify coverage on comparison, wishlist, and related product blocks.
Hybrid store (B2C catalog with B2B pricing tiers): Category-level hiding for your wholesale/custom SKUs. Keep B2C products publicly priced for organic search visibility. Configure group-specific messaging: guests see "Register for wholesale pricing," retail customers see retail prices, wholesale customers see their negotiated rates.
Quote-based custom products: Product-level hiding for configurable or custom-built SKUs. Replace price with a quote request form that collects enough information to generate a real quote (dimensions, materials, quantities, timeline). Tie form submissions directly to a CRM pipeline stage.
Agency or developer implementing for a client: Scope the requirement before choosing an extension. Confirm Hyvä or headless compatibility if relevant. Define who owns ongoing extension updates in your contract. The Agency Contract Template can help you document this scope cleanly. Consider recommending a vendor with a subscription-based support model so your client has a direct support path after you hand off.
The bottom line is that hiding prices in Magento 2 is a legitimate and often necessary B2B ecommerce strategy - but it only works if you implement it completely (price and Add to Cart suppressed, all page types covered, replacement text that converts) and integrate it into a sales workflow that actually closes the inquiries it generates. The extension is the easy part. The follow-up system is where most stores leave money on the table.
Ready to Book More Meetings?
Get the exact scripts, templates, and frameworks Alex uses across all his companies.
You're in! Here's your download:
Access Now →