How to Add "Call for Price" to Selected Shopify Products
Hide the price on the products that need it, without hiding your whole catalog.
01The Problem With Most "Call for Price" Advice
Search for how to hide a Shopify product's price and almost everything you find assumes you're building a full B2B storefront: every price hidden, every customer required to apply for a wholesale account, an entire quote-and-approval workflow layered on top of your store. That's a real feature Shopify supports, and it's the right answer if you're actually running a B2B or wholesale operation.
It's the wrong answer if you just have a handful of products, custom furniture, made-to-order items, high-ticket equipment, anything priced per-project, where a fixed price doesn't make sense but the rest of your catalog is normal retail. Installing a full B2B app or restructuring your store for ten products out of five hundred is more system than the problem calls for.
This is the smaller, more common version of the problem: hide the price and add-to-cart button on specific products only, replace it with a way for the customer to reach you, and have a real path for that inquiry to become an order.
02The Two Ways to Actually Build This
There are two real approaches, and the right one depends on how many products are involved and whether you want this tied into your existing sales process.
- A dedicated app: fast to install, usually built for hiding pricing store-wide or by customer tag, and it comes with its own generic quote inbox and a recurring fee for a feature that is otherwise a few conditional lines in your product template.
- A custom build: a product-level flag plus a conditional block in your existing product template, with quotes routed to a Draft Order in your Shopify admin instead of a separate app inbox.
For a small, fixed set of products, the custom build usually ends up being both cheaper over time and better integrated, since the quote lands as a real, editable order in Shopify rather than a message in an app's separate dashboard.
03Step 1: Flag the Right Products
The cleanest way to mark which products should show "call for price" is a metafield, a custom field Shopify lets you attach to any product. Create a boolean metafield, something like a custom.call_for_price field, and metafields are always accessible in your theme's Liquid code once defined.
Once that field exists, your team can flag or unflag any product from the standard Shopify admin, no code changes required for day-to-day use. That's the part that makes this maintainable: the technical build happens once, and every future product just gets a checkbox toggled.
04Step 2: Make the Product Template Check the Flag
In the section of your theme that renders price and the add-to-cart button, wrap that markup in a conditional that checks the metafield. When the flag is on, that section renders a "Request a Quote" block instead of the price and buy button. When it's off, the page behaves exactly as it does today.
Keep this as a small addition to your existing product section rather than a separate page template. Online Store 2.0's section and block model means this conditional can live inside the same section every other product already uses, so you're not maintaining two different product page layouts.
05Step 3: Build the Actual Path From Inquiry to Order
This is the step app-based solutions and DIY tutorials both tend to skip: what happens after someone submits the quote request. A form that just emails you a message is only half a system.
The other half is Shopify's draft order feature, which lets a merchant create a manual order with a custom price on any line item, exactly the tool for turning a quote into a real, payable order once you and the customer agree on a number. Instead of a separate quote-management dashboard, the request becomes a draft order your team edits and sends as a normal Shopify checkout link.
That matters because it means your existing order history, customer records, and fulfillment process all still work normally. The product just skipped the "browse and buy at a listed price" step and went straight to a negotiated one.
06Step 4: Decide Where the Request Form Lives
Some stores put the quote form directly in place of the buy box. Others use a button that opens a modal, keeping the page layout closer to a normal product page. Either is reasonable; the choice is mostly about how much of a departure from your normal product page you want a flagged product to feel like. Whichever you pick, build it as a block inside the existing section rather than a one-off custom page, so it inherits your site's normal styling and stays easy to adjust later.
07When the App Is the Right Call, and When It Isn't
An app makes sense if you're testing the idea, only need it on a couple of products temporarily, or don't mind quotes landing in a separate inbox instead of your Shopify order list.
A custom build is worth it once you know this is permanent, want the request tied into draft orders and your existing order workflow instead of a separate app dashboard, want it styled to match your theme instead of an app's default widget, or want the flag applied by customer tag as well as by product, matching wholesale accounts to specific catalog behavior without paying a recurring app fee for it indefinitely.
08Conclusion
Hiding price on a handful of products doesn't require rebuilding your store as a B2B platform. A metafield to flag the right products, a conditional check in your existing product section, and draft orders to turn the resulting quote into a real order covers the actual problem most merchants have, without the ongoing cost or generic workflow of a store-wide app.
Frequently Asked Questions
Do I need a B2B app to hide prices on a few Shopify products?+
What's the difference between hiding price site-wide versus per product?+
How does a price quote actually turn into an order?+
Does this work on any Shopify plan, or only Shopify Plus?+
How long does a build like this take?+
Want This Wired Into Your Real Sales Process?
This is a small build with a lot of edge cases: which products, which customer groups, how the quote turns into a real order. If you want it wired into your actual sales process instead of a generic app inbox, that's what our Shopify development team handles.
