Hunting GPS Maps – Revamped

Hunting GPS Maps offers individuals hunting maps uniquely different from any other products out there. What makes Hunting GPS Maps products unique is the fact that Hunting GPS Maps has taken the time needed to find the best data from the most reliable sources (often as many as 15 sources are used per map); focusing mainly on providing accurate land ownership information (public as well as private).

The amount, quality and organization of used data really rounds up the provided service.


Montana Mapping & GPS (owners of Hunting GPS Maps) initially approached us early in the spring of 2012 with a desire to take their business to a new level. After the formalities were taken care of (courtesy of our Sales Manager, Aron Stanic), the Honolulu team dived right into the consulting/development phase of the project.

Little under three months later (the end of August), the new site was successfully launched; a solution based on the Magento e-commerce platform.

Coming from a completely in-house built solution the challenges were numerous, although nothing our team of experts couldn’t successfully handle.

  • A new design suitable for e-commerce has been conceived and implemented (courtesy of our frontend developer, Stanislav Mihic).
  • Customer, product and order information has been transferred into Magento.
  • Features from the old custom solution have been preserved.
  • A handful of custom features have been developed specifically for Hunting GPS Maps (courtesy of our backend developers, Branko Ajzele and Matej Krivak).
  • Site’s SEO has been greatly improved (courtesy of our Head of ICG, Toni Anicic).

The rest of this article will showcase some of the custom features that were developed specifically for Hunting GPS Maps.

Custom Features

Notice: in this article, “product” and “map” are often used as synonyms.

1. “GPS Maps by State” Menu Item

The need for this kind of functionality came up during the design/development phase of the project. We took an innovative approach while designing the site’s main menu in order to emphasize the fact that Hunting GPS Maps products are usually state specific.

In order to support all the products (even regional maps covering multiple states) a couple of tricks, related to handling of Magento’s collection models, were needed.

The final result is a list of states for which there is at least one recommended product (map), outlined by the state’s image.

2. Interactive USA Map

Interactive USA Map has been implemented on the “GPS Maps” and “Computer Maps” category pages, complementing the “GPS Maps by State” functionality. As a basis for the implementation of this functionality the “United States, CSS & jQuery Clickable Map” commercial plugin was used; our custom logic tied this plugin with the Hunting GPS Maps business rules.

3. Hunting Maps as Magento Products

One of the core Hunting GPS Maps products are their downloadable hunting maps (available for both PC and Mac operating systems). Unlike Magento’s built-in downloadable product, Hunting GPS Maps products are “live”.

Customers must be able to download, unlock and update each of the products (maps) that they purchased. Additionally, since the map size can vary from a couple of hundred MBs to several GBs (FYI, we’re using Amazon S3 as the storage solution), it soon became apparent that using Magento’s built-in downloadable product was out of the question.

We ended up using Magento’s configurable product(s) to represent each unique Hunting GPS Maps product (e.g. HUNT California for Garmin). This choice enabled us to represent each product type (e.g. “SD / Micro SD”, “Download”, and “Free Trial”) as an associated product. On top of Magento’s configurable product(s), we’ve added the required business logic.

Besides being downloadable, some of the maps were also locked, meaning that we needed to implement a licence key generator. The generation of the licence keys is done by an UNIX shell script/application called from Magento through an API call.

Additional features include: the ability to purchase extra licence keys, and the ability to update the map(s) to the latest version (either for free or with a custom discount).

To implement the “Map Update(s)” functionality, we reused Magento’s Shopping Cart Rules. By programmatically creating and applying the needed shopping cart rules, we’ve managed to come up with a solution that’s able to support free as well as paid updates (through on-the-fly modification of the product’s price). The creation and application of the rule has been made completely transparent to the customer.

The applied shopping cart rule ultimately ends up as a custom discount, with a proper label.

4. Map’s Changelog

Since Hunting GPS Maps products are versioned, we’ve came to a conclusion that in order to fully represent each product, an implementation of a changelog system was needed.

The changelog is one of those features that customers tend to focus upon during the purchase of a new version. The implementation of this functionality ended up being divided into two parts:

  1. An attribute on the product itself which stores the latest changes.
  2. A separate Magento Admin interface that enables fine-grained manipulation of changelog entries.

On the product view page we simply render all the appropriate changelog entries (conveniently located under the “Changelog” tab, e.g. changelog for HUNT Montana for Garmin).

5. Dealer Locator

This functionality has been developed from the ground up. In order to achieve maximum flexibility, we’ve decided to represent each dealer as a separate Magento customer (assigned to a special “Dealers” customer group).

The fact that in Magento each customer can have multiple addresses only worked in our favor since it enabled us to represent each physical store as a separate customer address.

To truly implement a dealer “locator” system, we needed to save the coordinates of each physical store (to support the “Find Nearest Dealer” functionality). Using the Google Maps API, getting the coordinates of a specific location (address) is a breeze; just call the appropriate API method and if the address information is valid you will receive its coordinates as a response.

Once we had the dealers and their addresses (physical stores) all that was left was to implement the logic responsible for calculating the distance (a simple matter of creating the appropriate SQL query).

If you’re interested in implementing your own “Dealer Locator” feature, please take a look the article written by our very own Branko Ajzele 🙂

6. Customer Notes

This feature was developed specifically to aid the Magento Admin users. The implementation was merely a question of creating an appropriate tab/section under the Magento Admin “Manage Customers” screen and tieing it to a CRUD enabled grid.


Although we cannot give you exact site traffic and sales figures (due to NDA), we can happily say that the client was not disappointed with the new Magento based solution, quite the contrary 🙂

A pleasurable and fruitful collaboration between Inchoo and Montana Mapping & GPS has resulted in another successful project.

We’re looking forward to everything that’s yet to come 🙂

You made it all the way down here so you must have enjoyed this post! You may also like:

Reinventing the running game for a German retailer shop4runners Maja Kardum
, | 0

Reinventing the running game for a German retailer shop4runners

External database connection in Magento Damir Serfezi
Damir Serfezi, | 4

External database connection in Magento

Changing default category sort direction in Magento Marin Grizelj
Marin Grizelj, | 1

Changing default category sort direction in Magento

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <blockquote cite=""> <code> <del datetime=""> <em> <s> <strike> <strong>. You may use following syntax for source code: <pre><code>$current = "Inchoo";</code></pre>.

Tell us about your project

Drop us a line. We'd love to know more about your project.