How can I force customers to login to see prices in my ecommerce design?

Topic summary

Goal: hide product prices from visitors until they log in, preferably via theme code rather than apps due to conflicts.

Key caveat: a responder notes published product prices remain accessible via Shopify’s AJAX API (/products/handle.json) and often via theme schema in HTML. Fully preventing exposure requires a custom storefront. CSS/Liquid only hides visually.

Proposed approach (code-only):

  • Wrap all price outputs with a Liquid check: {% if customer %} …price… {% else %} login prompt {% endif %}.
  • Also hide purchase actions for visitors (e.g., Add to Cart and quantity) using CSS like: form[action=“/cart/add”], .product__block__quantity { display: none !important; }.
  • Apply this across templates/sections where prices render (e.g., product-price.liquid, main-product, collection cards, homepage sections), not just product pages.

Progress: one user confirmed the Liquid + CSS worked on product pages after tailored selectors were provided for their theme/URL. Prices still show on collection and home pages; further placement is needed there.

Alternatives: Locksmith app and other “hide price/login” apps were suggested; original poster reported app conflicts. A link-based tutorial was shared (noted as under construction); another user later couldn’t access a different link.

Status: partially solved; implementation across all views remains open.

Summarized with AI on December 23. AI used: gpt-5.

I did read the post there are lots of apps, "all of the apps I’ve tried " doesn’t mean all apps ever.