Tragic Tragic Software & Cloud Solutions | San Diego • Seattle Blog

Building a dynamic international store locator with Drupal

Reading Time:< 3 Min
Published:September 10, 2015
Last Modified:July 20, 2022


White Labs Inc. Pure Yeast and Fermentation
Global yeast producer/distributor based in San Diego, CA


White Labs uses highly customized customer relationship management (CRM) software to manage their global customer list. Their website, built in Drupal, had a store listing page that listed all White Labs retail customers who sell yeast to the public. However, the website was not dynamicly synced with the CRM which meant the store listing content was constantly out of date and it was extremely tedious and time consuming to update manually. In addition, the international locations were very poorly handled and became interspersed with U.S. cities.


  • We needed to coordinate with White Lab's internal engineering teams in order to brainstorm and architect a solution.
  • White Labs' substantial customer list could cause performance issues if updated too frequently.
  • The customer density varies greatly by state and county, which meant the solution needed to be easily scalable.
  • We were tasked with creating a simple, clean locator to allow users to easily find their nearest store, domestically or internationally.


During our ongoing responsive redesign of the White Labs website we took some time to re-imagine the store locator in a much more functional and user friendly manner. The new design features tabs for users to choose whether they are browsing for domestic or international stores. The main landing page also features a U.S. map that shows a count of the number of yeast store locations in each state. When a user selects a state, the U.S. map slides away and a custom google map appears with all of the pertinent store locations listed. There is also an advanced search that allows for more fine tuned filtering of the locations, and even allows users to search for stores that carry a specific yeast strain.

In order to engineer this solution, we worked with White Labs' CRM engineering team to create a CSV export of all of the White Labs customers to a private FTP server. Tragic Media leveraged Drupal's Location module for all of the store location data, and then we architected a custom gmap module to handle the custom map display. The module connects to the remote FTP location and imports a fresh customer CSV file into the website once per week. During this import all locations are removed and re-imported so that the website store list is kept perfectly synced with the information in the CRM. This allows for stores to be added/removed/updated in a single update. We decided to only run the import once per week because of the possible performance implications of importing (and removing/adding) so much location data daily.

We added a custom Drupal search form with a custom ajax endpoint for filtering the locations. This makes searching fast and easy without the need for a page refresh and the google api calls are heavily cached to cut down on service usage. Searching by zip uses a proximity search to display results within 20 miles of the entered zipcode. This allows for more accurate results than the default gmap functionality. We also did some custom Javascript to allow the search results to be bookmarked and/or shared with others.


The end product is a sleek store locator landing page (soon to be responsive) that allows users to quickly and easily search for and find a White Labs yeast supplier anywhere in the world. The best part is that the White Labs content administrators can now rest assured that their store content is being kept up-to-date without the need for them to painstakingly monitor and curate all of the store locations.

#Code View All