Quote-only products
Let customers save products to a wishlist that they must contact you to buy: no price, no add to cart, skipped by Add all to cart. Pick the products in the app, or sync the list from a product metafield your ERP or feed maintains.
Some products are shown on a store but not sold online: made-to-order pieces, trade-only lines, anything where the answer to "how much" is a conversation. Customers can still plan with them. Mark those products quote only and they keep their place on wishlists, but the app never sells them.
Project planner plan required
Quote-only products are part of the Project planner plan. On the Free plan the page can be opened, but products can't be added, the metafield sync doesn't run, and a saved list is kept without being applied. See Plans, pricing & billing.
What changes for a quote-only product
- Wishlist cards show your label (by default "Contact for pricing") instead of the price, and the add-to-cart button is disabled with that label.
- Add all to cart adds the other items and skips quote-only ones without a message. A wishlist with only quote-only items has no Add all button.
- Shared wishlists and share emails treat them the same way.
- PDF quotes print the label in the price column and leave the line out of the subtotal, which is then labelled "Subtotal (priced items)".
- Adding to a wishlist from the product page or a collection still works as before.
Mark products quote only
- In your Shopify admin, open the B2B Wishlist Project Planner app
- Click Settings, then Manage quote-only products
- Click Add products and pick any number of products in Shopify's product picker (search, or select a whole collection's products)
- Change the Label on the right if "Contact for pricing" is not the wording you want, and click Save
Remove a product from the list to make it purchasable again. Changes apply to every wishlist, shared page and PDF on the next load; nothing is cached.
Sync the list from a metafield (ERP or product feed)
If an ERP or a product feed manages your catalog, picking products by hand does not scale. Let a product metafield decide instead:
- On the Quote-only products page, find ERP or feed sync and tick Sync this list from a product metafield
- Enter the Metafield as
namespace.key. Use one you already have (for examplecustom.contact_for_pricing), or have your feed setwishlist.quote_only - Enter the Value that means quote only, for example
true,1oryes. Capitals do not matter. Any other value, or no value at all, leaves the product purchasable - Click Save and sync
The app reads that metafield for every product in your catalog and adds the matching ones to the list, marked From metafield. A catalog of tens of thousands of products takes a few minutes. After that:
- When your feed changes a product, the list follows within about ten minutes. Everything is rechecked every night as well, and Sync now runs it on demand.
- Products stop being quote only when their metafield no longer has the value. They cannot be removed from the list by hand, because the next sync would add them back.
- You can still pick individual products by hand next to the synced ones.
- Turning the sync off removes the products it added and keeps the ones you picked.
The app only reads the metafield you name here. It never writes to it, so your ERP or feed stays the single owner of that value.
Hide the price on your product pages too
The app sets the product metafield wishlist.quote_only to true on every product you pick by hand (and removes it when you remove the product), so your theme can make the same decision without a second list to maintain. In your product template:
{% if product.metafields.wishlist.quote_only %}
<p class="price">Contact us for pricing</p>
{% else %}
{% render 'price', product: product %}
{% render 'buy-buttons', product: product %}
{% endif %}The exact snippet names depend on your theme; the check is the same everywhere. If you sync from your own metafield, check that one in your theme instead. The metafield also appears under Metafields on the product in your Shopify admin.
The app's list is the source of truth. Editing the metafield by hand in the admin does not change the app; add or remove the product in Settings → Quote-only products instead.
Quote-only is about selling, not stock. Products that are sold out keep showing their price and are handled by the usual out-of-stock behaviour.
If you have questions or need help, reach out through our contact form.
After adding to cart: drawer or cart page
Choose what happens when a customer adds wishlist items to the cart, learn how the widgets refresh your theme's cart drawer (Dawn, Horizon and others), and find the event theme developers can hook into.
How to share wishlists/projects
Customers can share their wishlists and project lists with others using a generated link - great for design clients, contractors, and purchasing teams.