CS-Cart 2.1 - Advanced store locator, and prompt user to select their retail store during checkout?

My client wants a store locator page that lists the 500+ stores which carry his company's products. It needs to be searchable by U.S. ZIP code / radius. The store locator feature that is built into CS-Cart is nowhere near sufficient for this, at least as it ships out of the box.

Additionally, he would like to prompt the user during checkout to optionally either select the retail store where they saw his products, or suggest a local store which would be a good fit for the products. If they respond to this question, a random, one-time “free shipping” code will be automatically generated and applied to their order.

Any suggestions on how we can approach the development of this? We're fully capable of developing all of the above in straight PHP, but I don't have the slightest idea how we could cleanly integrate it into CS-Cart. We've never delved very far into the internals of the software, and frankly it doesn't make much economic sense for us to spend days or weeks getting up to speed on add-on development and hooks, just for this one project. (We don't do much else with CS-Cart.)

Thus, I am tempted to develop almost all of it entirely outside of the CS-Cart framework, and inject content onto the page using jQuery.

Is there a better way? Are there any add-ons that could speed development? Is there some way we could improve on the existing store locator database, or perhaps repurpose the affiliate system?

Thanks very much for any advice!

P.S. I'm also open to contracting this to a seasoned CS-Cart developer. If you're interested, please contact me here. You must have very clear communication skills, and work examples that show you have a strong command of the CS-Cart API and addon development.

Bump? Any ideas whatsoever?

I would “root” your code in a 'page'. Not knowing the UI for how someone is to enter their info makes me just guess.

But if you were to create a form in your 'page' that requested the zip code, then create a 'get_page_data' PHP hook.

In this hook you check to see if your REQUEST variable is set. If so, then append whatever you want displayed to the end of the page data passed in the hook. If REQUEST variable is not set, do nothing.

Your resulting page would end up with your zip code query line/box followed by whatever dynamic content you generated based on the zip code entered.

Thanks, tbirnseth. We're going to give that a shot.