Restrict Checkout Access

mbrahimi02
New Member
8 0 0

I would like to restrict access to checking out products on a store such that users can only buy from me if currently located in a specified location, for example New York. To be clear, I'm not trying to restrict shipping addresses as I want tourists and visitors to be able to purchase in the event their geolocation shows that they are in New York, as per our example.

I've already implemented such a thing with the Google Geolocation API as well as JQuery on my add product button, causing a redirect. However, I would like this on the entire checkout not product by product. Furthermore, because it's on the frontend, can't anyone tech savvy just spoof a location with JavaScript on their developer console? Ideally, I would like to implement a backend middleware for the sake of security, but there seems to be no way to extend Shopify like that. Even if there was such a thing, I'm still not sure how the geolocation would be determined without interference from the frontend.

Replies 2 (2)
PaulNewton
Shopify Partner
4211 303 901

 


@mbrahimi02 wrote:

Furthermore, because it's on the frontend, can't anyone tech savvy just spoof a location with JavaScript on their developer console?


Yes. Even if you have money to burn you cannot beat that reality unless they are physically present somewhere you control, such as a convention or dynamic billboard|adspace.

 

You may need the carrier service api to reject orders during checkout, or possibly be on shopifyPlus with a either a modifed checkout template or checkoutscripts.

 

Finally Combinable Discounts - EARLY ACCESS ONLY - Use Free Shipping With Other Discounts

Answers powered by coffee Buy Paul a Coffee for more answers or donate to eff.org
Problem Solved? ✔Accept and Like solutions to help future merchants
Confused? Busy? Buy a custom solution paull.newton+shopifyforum@gmail.com
mbrahimi02
New Member
8 0 0

In my honest opinion, I think the Shopify documentation is a little bit disorganized and too sparse in places. It's hard to find exactly what you need if it's even possible, and even if you manage to do some of the names of the APIs are too close to determine what you actually need. In any case, I looked into both of those and they don't really offer and real solutions from what I can gather. Again, my solution works but it's just really crude