Creative Commons photo by paul (dex). Click to see the original.
HackDays -- the gatherings that bring together Canada's brightest geeks to build projects in a single day -- kicks off 2012 with a session in Toronto on Saturday, February 12th. This one's an interesting one, as it's a part of the extended Social Media Week, the global multi-city conference taking place from February 13th through 17th. Here's a quick explanation of what Social Media Week, and this year's theme, Empowering Change Through Collaboration, are all about:
In keeping with the idea behind Social Media Week and HackDays' spirit of building stuff with readily-available APIs, the theme of this Toronto HackDay is "Apps for Good". Take the APIs -- including Shopify's ecommerce API -- to build applications that can change the world around us for the better. You'll have a day to do it, and the best apps, as determined by a panel of judges, will be awarded prizes (the prizes are usually pretty sweet: we've handed out MacBook Airs and iPads to the winners).
Shopify will be there! More specifically, I'll be there, representing Shopify, along with some other Shopifolks, to help run the event, help participants with the Shopify API and generally provide moral support to everyone there. We'll also be sponsoring the event and providing a prize for the best use of our API.
If you're looking to take on a hacking challenge and put your skills to the test, meet your fellow geeks and build an app for the greater good, HackDays Toronto is for you!
Shopify has some big customers with online stores that need apps written for them. We've been getting a lot of custom work requests from customers who need applications for their ecommerce website's fulfillment workflow - that is, making sure the right things get put into the right boxes, and sending them to the right people for the right price. We also get requests for other things that online shops need: analytics, promotions, CRM-integration-jazz, or some kind of automatic client-retention. But for now, I'd like to talk about fulfillment.
Fulfillment: it's that part of the shopping cart transaction where the order has been placed and paid for, and now it's time to send something to the customer. This sort of app is a web application that will typically talk to a couple of APIs:
The Shopify API, which will have the relevant data from the shop, most notably information about the order that was placed,
and some fulfillment API, which the app will use to get the order to the customer.
If you're looking for some contract programming work writing software that does useful stuff for reliable customers and you're a reliable, responsive type who can be counted on to write stuff that people need to make their businesses go, Shopify would like to pay you for your services. The application you're writing will be interacting with APIs, which means that you're free to use the programming languages, frameworks and technologies you prefer, as long as you can solve the problem. And because this project is about fulfilling ecommerce orders and not socially networked cat pictures, this contract will pay nicely.
Is this the sort of development you can do? If so, drop me a line at firstname.lastname@example.org and let's talk.
We’ve been profitable for a while now, so landing this money wasn’t about survival; it’s about ambition. We’re aiming to be the number one ecommerce platform, so we’re using the money to fuel our growth: more staff, more stuff, and more services.
As we like to say, “When the train comes in, everybody rides!” And by everybody, I’m including developers who build on the Shopify platform.
The idea behind the Shopify Fund is very simple: we want to support developers who build apps for the Shopify platform by giving them money so that they can work full-time for a few weeks on those apps without having to worry about paying their bills.
And I’ve got a million dollars to make it happen! Say it with me: One. Meeeellion. Dollars.
Many of us at Shopify, myself included, have worked at small or one-person development shops, so we know what it’s like to have to pick and choose projects in order to stay afloat. We hope that the Shopify Fund will make that choice easier and make it possible for you to build apps for our great ecommerce platform and fill your wallet at the same time.
The Shopify API and App Store
(This section’s for developers who aren’t familiar with Shopify. Feel free to jump ahead if this is old news to you.)
Those of you new to Shopify might not be aware that it’s not just a hosted ecommerce system, but also a platform that offers a RESTful API. This API gives you the capability to programmatically perform many of the actions that a shopowner can perform from his or her control panel. With the API, you can automate tasks to make shopowners’ and customers’ lives easier, provide shopowners with different views and insights into their shops’ data, integrate Shopify with a world of online services and generally expand that capabilities of Shopify shops.
Shopify also provides a place for developers to sell their Shopify apps: the Shopify App Store. It’s a one-stop shop that:
Makes it easy for shopowners to browse, purchase and install apps for their Shopify shops
Makes it easy for developers to reach a market of over 15,000 active shopowners and make money (there’s an 80/20 revenue share; you get 80% of the sale price of your app, Shopify gets 20%)
In 2010, almost half of our active shopowners had installed at least one app.
How the Shopify Fund Works
If you’re a developer with an idea for a Shopify app, we’d like to hear from you! Drop us a line at email@example.com and we’ll evaluate your idea. If we think it’s worth funding, we’ll provide an advance in the neighbourhood of $5,000 to $10,000 (and hey, maybe more if we think it’s going to be big) on future sales in the App Store.
If this sounds like a literary advance, that’s because that’s the model we’re using – but a little bit nicer. Here’s a quick description of how it works:
If we think your app idea’s a good one and we fund it, we’ll give you half the advance up front.
Once you finish the app, you get the other half of the advance.
Your app goes in the store. Until the app’s sales reach the amount of the advance we gave you, the revenue share is 50% for Shopify, 50% for you. That’s right, you’ll still be making some money!
One the app’s sales reach the amount of the advance we gave you, the revenue share goes back to the standard 20% for Shopify, 80% for you.
If you have programming skills but can’t think of any Shopify app ideas, check out the App Wishlist in our wiki. It’s full of ideas, and one of them might be right up your alley.
If you still can’t think of any Shopify app ideas but have killer programming skills and would like to work on a Shopify app, we’d still like to hear from you. We might be able to assign you to a project of our choosing.
…be sure to check out the new Shopify Fund page and if you’re interested, drop us a line at firstname.lastname@example.org to find out more or to propose an app that you’d like to have us fund!
Keep an eye on this blog as well: we’re going to be talking about building apps on the Shopify platform for the next little while.
Shopify is a pretty capable ecommerce platform on its own, and for a lot of shopowners, it's all they need for their shops. However, there are many cases where shopowners need features and capabilities that don't come "out of the box" with Shopify. That's what apps are for: to add those extra features and capabilities to Shopify.
Apps make use of the Shopify API, which lets you programatically access a shop's data -- items for sale, orders and so on -- and take most of the actions available to you from a shop's control panel. An app can automate a tedious or complex task for a shopowner, make the customer's experience better, give shopowners better insight into their sales and other data, or integrate Shopify with other applications' data and APIs in useful ways.
Here are some apps that you can find at the Shopify App Store. These should give you an idea of what's possible:
Jilt: This is an app that makes shopowner's lives easier. It helps turn abandoned carts -- they arise when a customer shops on your store, puts items in the cart and then for some reason never completes the purchase -- into orders. It sends an email to customers who've filled carts but never got around to buying their contents after a specified amount of time. It's been shown to recover sales that would otherwise never have been made.
Searchify: Here's an app that makes the customer experience more pleasant. It's an autocompleting search box that uses the data in your shop that lets customers see matching products as they type. The idea is that by making your shop easier to search, you'll get more sales.
Beetailer: A good example of taking the Shopify API and combining it with other APIs. It lets your customers comment on your shop's products and share opinions about them on social media sites like Facebook and Twitter. You can harness the power of word-of-mouth marketing to get people to come to your store!
Shopify apps offer benefits not just for shopowners and their customers, but for developers as well. Developers can build custom private apps for individual shopowners, or reach the 16,000 or so Shopify shopowners by selling their apps through the App Store. The App Store is a great way to get access to some very serious app customers: after all, they're looking for and willing to spend money on apps that make their shops more profitable. Better still, since a healthy app ecosystem is good for us as well, we'll be more than happy to help showcase and promote your apps.
If you've become convinced to write an app, read on, and follow this series of articles. I'll explore all sorts of aspects of Shopify app-writing, from getting started to selling and promoting your apps. Enjoy!
Once you're there, click on the Become a partner button. That will take you to the Become a Shopify Partner form, a single page in which you provide some information, such as your business' name, your URL and if you're into Shopify consulting, app development or theme design as well as some contact info:
When you submit this form, you're in the club! You're now a Shopify partner and ready to take on the next step: creating a test shop.
Step 2: Create a New Test Shop
Test shops are a feature of Shopify that let you try out store themes and apps without exposing them to the general public. They're a great way to familiarize yourself with Shopify's features; they're also good "sandboxes" in which you can safely test app concepts.
The previous step should have taken you to your Shopify partner account dashboard, which looks like this:
It's time to create a test shop. Click on the Test Shops tab, located not too far from the top of the page:
You'll be taken to the My Test Shops page, where you manage your test shops. It looks like this:
As you've probably already figured out, you can create a new test shop by either:
Clicking on the Create a new Test Shop button near the upper left-hand corner of the page
Clicking on the big Create your first Test Shop button in the middle of the page. I'm going to click that one...
You should see this message near the top of the page for a few moments:
...after which you should see the My Test Shops page now sporting a test shop in a list.
Test shops are given a randomly-generated name. When you decide to create a real, non-test, customer-facing shop, you can name it whatever you want from the start.
In this example, the test shop is Nienow, Kuhlman and Gleason (sounds like a law firm!). Click on its name in the list to open its admin panel.
Step 3: Launch Your Test Shop
Here's what the admin panel for a newly-created shop looks like:
If you're wondering what the URL for your shop is, it's at the upper left-hand corner fo the page, just to the right of the Shopify wordmark. Make a note of this URL; you'll use it often.
Just below that, you'll see your shop's password:
(Don't bother trying to use this password to get to my test shop; I've changed it.)
You're probably looking at that big text and thinking "7 steps? Oh Shopify, why you gotta be like that?"
Worry not. Just below that grey bar showing the seven steps you need to get a store fully prepped is a link that reads Skip setting up your store and launch it anyway. Click it:
This will set up your test store with default settings, a default theme and even default inventory. You'll be taken to the admin panel for your shop, which looks like this:
This is the first thing shopowners see when they log into their shops' admin panels.
Now, let's add an app!
Step 4: Add an App
Click on the Apps tab, located near the upper right-hand corner of the page. A menu will pop up; click on its Manage Apps menu item:
You'll be taken to the Installed Applications page, shown below:
For the purposes of this exercise, a private app -- one that works only for this shop -- will do just fine. Click on the click here link that immediately followed the line Are you a developer interested in creating a private application for your shop?:
You'll get taken to the Shopify API page, which manages the API keys and other credentials for your test shop's apps:
For each app in a shop, there's a corresponding set of credentials. Let's generate some credentials now -- click the Generate new application button:
The page will refresh and you'll see a big grey box containing all sorts of credentials:
Here's a closer look at the credentials:
You now have credentials that an app can use. Guess what: we're ready to make some API calls!
A Quick Taste!
Here's a quick taste of what we'll do in the next installment: play around with the Shopify API. Just make sure you've gone through the steps above first.
The Shopify API is RESTful. One of the benefits of this is that you can explore parts of it with some simple HTTP GET calls, which you can easily make by typing into your browser's address bar. These calls use the following format:
You could type in the URL yourself, but I find it's far easier to simply copy the Example URL from the lost of credentials for your apps and editing it as required:
For example, if you want some basic information about your shop, copy the Example URL, paste it into your browser's address bar and change orders.xml to shop.xml. Press Enter; you should see results that look something like this:
Nienow, Kuhlman and GleasonBoston185 Rideau StreetK1N 5X82011-07-22T14:43:21-04:00falseUSnienow-kuhlman-and-gleason1524.myshopify.com937792555 555 5555
How about the products in your shop? There are some: since we skipped the full setup, your test shop comes pre-populated with some example products. Copy the Example URL, paste it into your browser's address bar and change orders.xml to products.xml. You should get a result that looks something like this:
The text you see here is a Product Description. Every product has a price, a weight, a picture and a description. To edit the description of this product or to create a new product you can go to the Products Tab of the administration menu.
Once you have mastered the creation and editing of products you will want your products to show up on your Shopify site. There is a two step process to do this.
First you need to add your products to a Collection. A Collection is an easy way to group products together. If you go to the Collections Tab of the administration menu you can begin creating collections and adding products to them.
Second you’ll need to create a link from your shop’s navigation menu to your Collections. You can do this by going to the Navigations Tab of the administration menu and clicking on “Add a link”.
Perhaps it’s an app that phones customers or sends them an SMS message when their order has been shipped. Or voice notification to a bricks-and-mortar store that tells the staff that a customer is coming to pick up their order. With a little creativity, some coding and our APIs, you can write an app that’s both useful and cool enough to win one of our prizes…
First prize is from Shopify: it’s Edward from Shopify’s preferred rig! A hot-rodded 11-inch Macbook Air with 256GB solid-state drive and 1.8 GHz CPU along with a gigantic 27-inch Apple Cinema Display. Small and light for when you’re on the go, a nice big screen for when you’re at home, the office of wherever you decide to keep the display and plenty of horsepower to build apps.
Second prize comes from Twilio and it’s a robot hacker’s dream: a stacked LEGO Mindstorms swag bag with the NXT 2.0, a bundle of touch, light and sound sensors, and a Bluetooth dongle to keep your creations connected. I, for one, welcome our new LEGO robot overlords.
Third prize is a joint Shopify/Twilio effort: a Kindle Fire, the newest multi-touch full-color hotness from the world of ebook readers.
We try to keep things simple – it’s about building cool apps, not being buried in regulations!
Entries must be submitted by 11:59 PM PST Sunday December 11th.
Earlier this week, a security flaw known as Heartbleed was published that affects approximately two-thirds of all websites that use SSL encryption. This issue greatly impacts ecommerce websites because every online store that accepts credit cards must use SSL encryption.
Since its disclosure, there have been many news reports about Heartbleed and how it’s affecting websites, software and services across the internet. We want to provide more details on Heartbleed and how it affects ecommerce merchants. Most importantly, we want to stress that merchants and their customers using Shopify are safe from Heartbleed.
Every now and again, I get asked this question: “Okay, I’ve heard of Shopify, but what does Shopify actually do?” The answer I give depends on who’s asking:
The shortest, quickest, clearest, layperson-friendliest answer is something along the lines of “Shopify is a web app that lets you run your own online shop.”
I tell people interested in selling stuff online (as well as people whose inclinations are more towards business) that the stores for Angry Birds, Epic Meal Time, Evisu Jeans, Foo Fighters, General Electric, LMFAO, Penny Arcade and Pixar are all powered by Shopify.
And finally, for more technically-inclined people, I say “It’s an easy-to-use, themeable hosted ecommerce platform that’s extensible through an API.”
Let talk about Shopify’s API. It lets you write apps that add functionality to or extend the capabilities of a shop. Most of the things that a shopowner can do from the admin panel can be done programmatically via the API; the API also makes it possible for you to get information from a shop so that you can integrate it with other services. You can write an app that will be used only by your shop, or you can write one for use by any shop, which you can sell to shopowners at the App Store.
The API designed to be simple and straightforward. You can call it using either XML or JSON, and it exposes different parts of a shop – such as products (things you sell in a shop), orders (orders placed by customers) and collections (groups of products within a shop) – as resources, each with its own URL and you manipulate the resources using the HTTP verbs GET, POST, PUT and DELETE. We’ve made it as RESTful as possible.
What sort of apps have been written? There are about 100 in the App Store, and they do all sorts of things. Apps that have been featured recently on the Shopify Blog and Shopify Technology Blog include:
Some of it will be used to hire the best developers, designers and businesspeople out there.
Some of it will be used to fund strategic partnerships and make some acquisitions.
Some of it – one million dollars’ worth – will be used to create the Shopify Fund.
That’s right, it’s one. Meeeellion. Dollars.
The purpose of the Fund is to encourage the development of Shopify apps. Apps make everyone happy:
Shopowners: because they extend the capabilities of their shops.
Customers: because when a shop is running well, they get the stuff they want.
You, the developer: because you write software for a living.
Not only was I a software developer, I played one on TV!
Most of us at Shopify, myself included, come from a development background, and we've all done freelance and contract work. We know what it's like to worry about where this month's rent is coming from and to juggle and prioritize clients. Wouldn’t it be nice if you had a nice big client that paid you enough to concentrate full-time on a single project?
We want to be that big client! We created this fund to create a mutually beneficial arrangement: you get paid enough to work full-time on a Shopify app for a few weeks without having to take on other contracts and still make a living, and we get apps that extend the capabilities of our platform.
How Much Money are We Talking About Here?
We expect that most of the projects will range from a couple of weeks’ to a couple of months’ worth of work. We’re looking at a ballpark figure of about $5,000 – $10,000 per app. The amount will vary with the scope and complexity of your project.
How Do You Get In on Some of This Action?
There are two ways that you can get in on the Shopify Fund:
If you're a developer with an idea for an app and we think it's a good one, we'll pay you to develop it.
If you're a developer with the talent to build apps but no idea of what to write, take a look at our App Wishlist and see if there’s an app idea you’d like to implement. If you can prove to us that you can deliver, we’ll pay you to develop it.
If you fall into either one of these categories and would like to get funded, visit the Shopify Fund page and fill out the form. We’re accepting submissions until Wednesday, November 30th.
After the submissions close on November 30th, we’ll spend December and a little bit of January reviewing the submissions. App development and funding will start around mid-January.
What Happens If You Get Funded?
I like to describe the funding as being "like the advances paid to book authors, but nicer".
Suppose your app gets selected (or you get selected to write an app) and we decide to fund your project with $5,000. Here's what happens:
At the start of the project, we'll pay you the first half of the “advance”. In this example, that amount is $2,500.
You work on your app. We'll check in with you regularly during this time.
When the app's done, you'll get the second half of the “advance” -- the other $2,500.
Your app goes into the Shopify App Store. For every sale of the app, the revenue share between you and Shopify will be 50/50; you receive 50% and we receive 50%. This 50/50 revenue sharing will continue until Shopify’s total of the 50% share equals the advance we gave you (or in other words, until your app rakes in a total of $10,000).
Once our 50% share is equal to the advance we gave you, the revenue share changes to Shopify's standard 80/20 ratio for sales in the Shopify App Store: you receive 80% and we receive 20%.
See what I mean by “like a literary advance, but better”? With a literary advance, you don’t earn any money until your sales have paid off the advance. With the Shopify Fund, you’re always taking in money, even while you’re “paying off the advance”.
How Do I Find Out More?
If you have any questions or comments, please feel free to drop us a line at email@example.com! We’d be very happy to answer your questions.
Ouch. If only the delivery person had the access code, he could’ve opened the gate and not simply chucked the monitor over it.
Enter Buzzy, the app that acts like a “disposable automated doorman”. If you live in a building with one of those buzzer systems that rings your apartment’s phone and you’re expecting a delivery (hopefully from a Shopify-powered shop!), Buzzy can give the delivery person an access code to open the lobby door. Buzzy integrates with Shopify so that an access code is activated when a product is shipped and deactivated when the product is delivered.
Buzzy is the creation of Ottawa-based developer Sam Wilson, who dropped by the Shopify office earlier this week to pose for his victory photo (see left). We liked it because it was an excellent fusion of both Shopify (online shops, which necessitate delivery) and Twilio (phone apps) and solved a problem that many people have: the delivery guy not being able to get past that locked lobby door. It was clearly the most ambitious, clever and original of the app submitted to the contest, so there wan’t much debate over which submission would win first prize.
Nothing helps a shop do better business than customer feedback. That’s what CallBack is for: it lets shopowners create automated phone surveys. After an order is fulfilled, CallBack calls a customer on the phone and presents him/her with a quick survey.
The video below shows how CallBack works:
CallBack's developers were Josh and Steve Conley. In addition to being a useful app, we also liked CallBack it was rare in one key area: while most apps used the Twilio API to turn the phone into an output-only device, CallBack uses the phone as both an input device (for customer answers to the survey) as well as an output device (for providing the survey instructions and questions).
As the winners of second prize, Josh and Steve will get a Lego Mindstorms swag bag featuring NXT 2.0, a bundle of touch, light and sound sensors, and a Bluetooth dongle.
Third Place: Helpline
Sometimes, you just need to talk to someone when looking for help in a store. We think the same thing happens in online shops – wouldn’t it be nice to get help from a real live human being?
Helpline does just that. It adds a “click-to-call” button to your shop’s product pages so that customers can talk to someone from your shop about specific products. As a shopowner, Helpline will let you know what product they’re currently looking at before they have the chance to tell you.
We’d like to thank everyone who participated in the contest and submitted an app. Hopefully, it gave you a chance to check out the Shopify and Twilio APIs and perhaps think of new uses for them, either separately or together!
We’d also like to thank the folks at Twilio for inviting us to help out with their developer contest. At Shopify, we’re big fans of Twilio and see it as a natural fit for all sorts of mash-ups with Shopify.
Keep an eye on this blog: in the new year, we’ll be talking a lot of Shopify app development, and one of the topics will be Shopify/Twilio mashups. And keep an eye on Twilio’s contest page – they’ve often got some kind of competition going!
Have you always wanted to migrate to Shopify but never wanted to take the time to actually upload all of your products? Have you told friends on other ecommerce platforms they should switch to Shopify, only to hear that it’s too much work to change platforms? Well, now there’s no excuse, just use Importer!