Make Purchases only available for certain questions

Topic summary

Goal: restrict presale purchases to subscribers on the email list.

Proposed approaches:

  • Tag-based access + cart permalink: Tag subscribed customers in Shopify, email them a cart permalink (a link that preloads items in the cart), and verify orders by presence/absence of the tag. Variants include theme customizations, using gating apps (e.g., Locksmith), token/NFT gating, or even a separate store.
  • Caveat: Most of the above are frontend barriers and can be bypassed via the Shopify AJAX API; they don’t provide true backend product-level authorization.

Shopify Plus (server-side enforcement):

  • Build a custom app using Checkout/Cart Validation via Shopify Functions to block checkout unless conditions are met. Example: check buyerIdentity for customer tags (hasAnyTag) tied to the email list.
  • Alternative: store eligible emails in metafields (e.g., on a discount) and compare buyerIdentity.customer.email; tags are noted as more scalable.

Status and next steps:

  • No final decision reported. If strict enforcement is required, use Shopify Plus validation. Otherwise, implement tag + permalink and/or an app-based gate, accepting it’s a “raised barrier” rather than foolproof.
Summarized with AI on December 30. AI used: gpt-5.

Hello,

My company is doing a presale event where we are only allowing customers who have signed up for our email list to make purchases at this time.

What would be the most efficient way to give access to our email list while restricting other buyers? Can I send a separate product page only accessible via email and send that out to our list?

Please let me know how I could accomplish this.

Thank you!

Tag all the customers in shopify for the campaign, create a cart permalink and send it through email , check orders for that tag or lack of tag.

https://help.shopify.com/en/manual/products/details/cart-permalink

Beyond that plenty of existing topics on this for “membership” sites, “content gating” etc etc

Either through theme customizations or with apps , or a 2nd store.

For theme customizations see common wholesale customizations that just use a tag or metafield on the customer.

You can contact me directly by email in my signature for customization services or setup.

For apps see locksmith, there’s also token gating ala NFT’s.

https://apps.shopify.com/locksmith

https://help.shopify.com/en/manual/products/digital-service-product/nfts#tokengated-commerce

Keep in mind these are mainly frontend fixes to raise the barrier of entry most of which can be bypassed due to the shopify ajax api since there is no backend validation of product-based authorization that is a separate process you would need to figure out if it’s critical only certain people can make a purchase or receive an item.

If you’re on Shopify Plus, you can create a custom app that uses Cart/Checkout Validation API Functions to automatically block checkout based on specific conditions.

Because this code runs on Shopify’s servers, it’s foolproof.

I recommend assigning a specific tag to all customers who have signed up for your email list, and then reading input.cart.buyerIdentity.customer?.hasAnyTag().

Alternatively, you can store your entire email list in metafields on the discount node itself, and then check to see if input.cart.buyerIdentity.customer?.email is in that list.

The option using customer tags is far more scalable, though.

https://shopify.dev/docs/api/functions/reference/product-discounts/graphql/common-objects/buyeridentity

Best,

Tobe