Hi, I thought I would provide some feedback on the end result of this inquiry. I'm pleased to say that Polished Geek was hired to provide this customization.
We've only had a handful of requests for pricing by location over the years, and each store owner had unique requirements for exactly how it needs to work. So the following is what was custom built for this particular client.
Polished Geek updated and modified our previous component and added several custom features. This is delivered and already in production on their client's live site now. Sorry I can't share the site, but since we were not hired directly by the end customer it's not appropriate for me to post it to this forum.
Here's what we built:
- When a site visitor arrives, we use geo location to determine their zip/state
- The zip/state location is used to display the appropriate price to the site visitor
- We display their geo location in a module on the page that also allows the site visitor to enter a different zip code and change their pricing location (in case they are using a VPN or something else that provides an incorrect IP location)
- If the site visitor has blocking on that prevents geo location from locating them, then no pricing is displayed and they are asked to enter their zip code first to view prices
- When the customer checks out, we verify the final pricing against their shipping address to ensure accuracy.
- If the price of an item increases due to their shipping location being different from the original zipcode-based price when added to the cart, we display a customer service message advising them that their price has changed due to location. We also add a small message under the final total, just above the Place Order (Finish) button on the checkout to make sure customers are aware that pricing has changed due to location.
- If the price of an item decreases after it was added to the cart, based on the actual shipping location, we don't display those messages. (No one ever complains about paying less!)
There is quite a bit more complexity to this than what I listed above. There are many use cases that have to be handled, including when a site visitor logs into an existing account and their most recent shipping address causes a location & price change. We have to handle these situations correctly and gracefully before and after items are added to the cart. Plus several other variations of how the site visitor might flow through the shopping and checkout experience.
I've mentioned zip code as the primary pricing feature above, and you might wonder why someone would want that vs. just having different prices by state. Zip codes are used to provide the flexibility to modify pricing by distinct areas within a state. The website owner using this customization is not limited to charging prices by state, but can easily break a state up into as many distinct groups of zip codes they want, and vary pricing within a state, without any other custom code being developed. It's just some configuration at that point and it all still works.
The business reason for supporting this pricing flexibility is the products being sold are for books of prepaid tickets to receive a service. Delivering that service can cost the client a different amount to deliver in various locations across each state, due to labor costs. This custom enhancement doesn't require you to have different prices by zip, it just gives you the power to do it.
This same HikaShop customization approach could be modified to provide different prices by any type of location.... city, zip/postal code, state, country.