Make Purchases only available for certain questions

New Member
5 0 0



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! 

Replies 2 (2)

Shopify Partner
6339 580 1350


@mcgeegrant wrote:

What would be the most efficient way to give access to our email list while restricting other buyers?  

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. 


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. 


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.

Save time & money ,Ask Questions The Smart Way

Confused? Busy? Get the solution you need

Problem Solved? ✔Accept and Like solutions to help future merchants

Answers powered by coffee Buy Paul a Coffee for more answers or donate to

Shopify Partner
300 14 80

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.