
Shopify lets you hide prices on product pages from non-logged-in visitors. The most common methods are: a theme setting (which hides the buy button but not the price), a custom Liquid code edit (which hides the price but requires a developer and breaks on theme updates), and a dedicated B2B app like PortalSphere (which hides prices by account type, requires buyer registration and approval, and shows each account its own tiered pricing after login). For wholesale merchants, the app-based approach is the most complete because it controls who sees what based on account approval, not just login status, and works on any Shopify plan without Shopify Plus.
Three reasons come up constantly in wholesale forums and Shopify App Store reviews:
Partially. Shopify's newer themes (like Dawn) include a setting to hide the Add to Cart button for visitors who are not logged in. This protects the purchase path but does not hide the price itself: the dollar amount stays visible on product and collection pages. Anyone, including competitors and retail shoppers, can still read every price on your catalog without logging in.
Shopify Plus merchants can use native B2B price lists to set account-specific pricing that only shows after a buyer logs into a company account. If you are not on Plus, that feature is unavailable. For the most complete comparison of native vs. app-based approaches, see our guide to the best Shopify wholesale apps.
Most Shopify themes include a toggle in the theme editor labeled something like "Restrict checkout to logged-in customers" or "Require account to purchase." When enabled, the Add to Cart button is replaced with a "Log in to purchase" prompt for non-authenticated visitors. The price is still visible. This works for stores that want to restrict purchasing without hiding the catalog, but it does not solve the wholesale gating problem.
A developer can edit your theme's Liquid templates to replace the price display with a "Log in to see prices" message for any visitor without an active session. This works at the code level, so it hides the actual dollar amount. The downside: theme updates overwrite the edit, requiring the developer to re-apply it every time you update your theme. It also treats every logged-in account identically, so a retail customer who creates a standard account sees the same prices as your top wholesale buyer. There is no approval step and no per-account pricing.
An app like PortalSphere handles price hiding at the account level, not just the login level. It replaces prices with a "Request wholesale access" prompt for non-approved visitors, and shows each approved account its own negotiated pricing after login: different tiers for different account types, different rates for different volume bands, all without a custom Liquid edit and without Shopify Plus.
The full setup takes less than a day on your current Shopify plan, no developer required. Here is the sequence:
Install from the Shopify App Store and follow the onboarding steps. PortalSphere overlays your existing catalog without touching your theme code, so your retail storefront keeps working exactly as it does today.
In the PortalSphere dashboard, turn on price hiding. From this point, any visitor without an approved wholesale account sees a "Request wholesale access" message instead of a price. The Add to Cart button is also hidden for those visitors. Retail customers with a standard Shopify account continue to see the standard retail price after login.
Create a "Wholesale Application" page with PortalSphere's registration form, which collects business name, resale certificate or tax ID, business type, and expected order volume. Link to this page from the "Request wholesale access" message buyers see on product pages. Now visitors who want pricing have a clear next step, instead of leaving your site.
In the pricing dashboard, create tiers (bronze, silver, gold, or whatever naming works for your brand) or set pricing individually per account. When an approved buyer logs in, PortalSphere serves the correct price for their account automatically. A retail visitor logging in with a standard account sees retail pricing. An approved wholesale account sees their rate. No overlap and no discount codes drifting into the wrong hands.
Open your store in an incognito browser. Confirm the prices are hidden, the registration link appears, and a standard retail login does not reveal wholesale pricing. Then log in with a test wholesale account and confirm the correct tier pricing shows, the Add to Cart button is active, and MOQs enforce correctly if you have them set up. The full B2B portal guide covers MOQ and net terms setup for the next steps after price gating is live.
Yes. A dedicated B2B app like PortalSphere hides prices without any Liquid code changes. You configure it from the app dashboard, and it works across all product and collection pages automatically. No theme editor access or developer is required.
No, for wholesale-only catalogs. If your goal is to sell wholesale through approved accounts rather than rank for individual product prices, hiding prices from non-authenticated visitors does not remove the product from Google's index. Google can still crawl and index your product names, descriptions, and images. The product pages exist; the price is just gated. If SEO-driven retail traffic is important for a product, keep it visible at retail pricing and hide only the wholesale rate.
With PortalSphere, visitors see a "Request wholesale access" prompt in place of the price and the Add to Cart button. The prompt links to your wholesale registration form. Visitors who have a standard retail account see the retail price after login. Visitors with an approved wholesale account see their wholesale tier pricing after login.
Yes. PortalSphere runs your wholesale channel on the same store and same theme. Retail customers experience your store exactly as before. Wholesale accounts log in and see their gated pricing, MOQs, and net terms. There is no need for a second store or a subdomain. The guide to running B2B and B2C from one Shopify store covers how the two channels coexist in practice.
Not with an app-based approach. PortalSphere applies price gating at the app layer, not by editing Liquid template files, so theme updates do not affect it. Code-based edits to theme files are the ones that break on updates and require a developer to re-apply.
No. Shopify Plus is required for Shopify's native B2B price list and company account features. PortalSphere adds equivalent gating, tiered pricing, registration approval, and net terms on Shopify Basic, Grow, and Advanced plans as well as Plus.
14-day free trial, no credit card. A specialist sets it up on a draft of your store before it goes live.