Shopify Apps that You Can Build at HackVan (or Home!)

Joey Devilla

HackVan, the Vancouver edition of HackDays -- the cross-Canada hackfest in which developers of all skill levels are challenged to use one or more of the sponsors' APIs and build a cool new app in a day -- takes place today! The apps will be judged by a panel of distinguished people from the Vancouver tech scene, and if you were at last year's HackVan, you know the prizes are pretty sweet.

Here's a compressed version of today's itinerary: At 9:30 a.m. Pacific time, each of the sponsors will present their APIs, after which the developers will form teams (if they haven't already) and come up with ideas for an app they can build by the deadline, which is around 5:00 p.m.. At 5:30, teams will present their apps to the judges, who will then deliberate and announce the top teams and honorable mentions at 7:30.

We know that coming up with an app idea on short notice isn't easy, especially when you combine it with forming a team with people you might not know, using APIs that may be unfamiliar to you and trying to get something working in a day (well, part of a day, actually). In order to make life easier (and with the not-so-ulterior motive of getting you to use the Shopify API at HackVan), we've come up with a list of apps that you might want to try building, whether you're at HackVan or "just want to play the home edition".

Product Comparison


Customers often have a general idea of what they want to buy. It gets tricky when it comes down to choosing a specific item, especially once they've narrowed down their choices. The harder it is for a customer to compare his or her narrowed-down choices, the more likely he or she is going to give up and not make a purchase.

This app idea is an attempt to solve that problem. It would allow customers to select two (or possibly more) items and see them side by side, perhaps along with the description and price of item. If you want to get fancy, you could highlight something about an item, such as which one is the cheaper one, or which one was bought by more customers.

For this app, you'll definitely use the Shopify API's product resource, which lets you retrieve information about one, several or all products in a shop. Each product object has properties that you'll want to use in this app, such as:

  • the body_html property, which contains the description of the item, complete with HTML formatting
  • the variants array, which holds info about the different variations of the product. One of the properties of each variant object is price, which you'll need, especially if you're highlighting price differences
  • the images array, which contains image objects. Each image object has a property called src which specifies the location of a product image stored within Shopify.
  • If you're taking on the additional challenge of showing which product is the more popular one, you'll want to use the orders resource, which you can use to get a list of all orders placed at the shop. You would then comb through the orders to count purchased products in order to determine which one was more popular.  

User Surveys

Just after their customers' money, the thing that shopowners want is customer feedback. Without this information, they're just guessing at what their customers want and what's working for them and what isn't. 

One way many shopowners can get this feedback is by sending surveys to customers who've recently bought something from their shops. Keep in mind that you don't want this survey to be too long, because customers will simply ignore it, or worse, choose not to go to that shop again!

You'll want to use the Shopify API's order resource for this one. You can use it to get information about one, several or all orders placed at the shop. One of the properties of an order object is email, which is the email address of the customer who placed the order. You might also want to use other properties, such as the line_items array to get an idea of what they customer bought and the total_price property to determine how much he or she spent (and possibly tailor the survey, based on these values).

Naturally, you'll only want to send the survey to people whose orders have already been shipped. Check the order's fulfillment_status!

Follow-up Email

In a world where there are so many places online to buy stuff, customer service can set you apart. Good customer service and treating the customer well creates return customers. One aspect of good customer service is the follow-up, which can often just be a quick email saying, "hey, thanks for shopping with us".

If you're new to the Shopify API or a developer just getting started, you might want to try developing this app. It should email customers who've recently made a purchase at the shop a quick "thank you" note. As an added bonus, you might want to include a discount code in the email to entice the customer to use the shop again.

As with the "User Surveys" app mentioned above, you'll want to use the Shopify API's order resource for this app. Each order object has an email property containing the email address of the person who made the purchase, a line_items array containing the items they purchased, and fulfillment_status property to tell you if the order has been completely shipped.

Store Status via Voice

Shopowners want to stay on top of their stores' current status. They check their shops' admin pages constantly, seeing if new orders have come in, if any items are out of stock, what's getting shipped, and so on.

There are times when a shopowner can't check his or her shop's admin pages visually -- while driving or walking about. To solve this problem, we suggest an app that uses voice technology (such as the great technology from our friends at Twilio) to report highlights and alerts about their shop status. Two important pieces of information that shopowners would like to know are: orders that have just come in, and if an item has become out of stock.

You can check stock of levels of each item using the Shopify API's product resource. Each product object has a variants array, and each variant object has two properties: inventory_policy, which tells you if Shopify tracks the stock levels of that variant, and inventory_quantity, which tells you how many of those items are in stock if Shopify tracks its stock levels.

To see which orders have recently come in, use the Shopify API's order resource.

Customer Image/Text Uploads

Some shopowners want to sell customizable items. This app would allow them to upload an image or customer text, which would then be incorporated into the item's design, such as putting the customer's picture or name on a t-shirt, mug or other item.

For this app, you'll definitely want to put some kind of annotation in an order object, probably in the note field.

Minimum Quota

In some cases, a shopowner doesn't want to fulfill an order for an item until s/he gets a minimum number of orders for that item. This often happens in cases where the item is hard to come by or if the wholesaler for that item has a similar quota.

The idea behind this app is to not fulfill any orders for specific items until a predetermined number of orders of that item appear in the shop. Only when that number has been reached or exceeded will those orders be fulfilled.

You'll definitely want to use the Shopify API's order resource for this one.