If you are a developer and have been working with Shopify for a while now, you may have noticed that apps greatly extend your shop`s functionality. Most of them do really simple tasks, like displaying extra-content in hard to reach areas, or offer better analytics insights and others do more complicated stuff like simplify the checkout process, offer to translate your shop, or help you with your dropshipping store.
At some point you will find yourself thinking why should I pay those extra $$$ every month for an app that I can build myself. At least that was what I was thinking when I started building apps.
Shopify offers the possibility of creating 2 kinds of apps:
- Private apps. These apps are scoped only to your shop and can not be shared with others
- Public apps. These apps as the name states are public and can be published on Shopify app store free or for a price. At the moment of install, public apps go to an Oauth process and receive a unique access token that is used for API calls.
When you decide to create an app, you first have to decide if you will make it private or public and the exact scope of it. Create a mindmap to have a well defined structure.
Look through Shopify`s documentations to see what API endpoints you need to access in order for your app to do the job and remember them to request the propper access scopes.
After doing your preliminary research and have a good structure in mind it is time to start building the app.
First you have to create a Shopify partners account, or log in if you have one and create and name a new app from the dashboard. As programming language it is best to choose the language you are most familiar with, be it Ruby, PHP, NodeJS etc... The app must have a valid SSL certificate so you must host it in a propper location. Maybe the best is Heroku.
You now have chosen the app name, and desired language and it is time to code. First go to the documentation and get a grip on how to properly authenticate when the app is installed and test it out.
If it all works well, the rest is up to you to write the app so that it does the job. Consider performance and make it work fast and keep it simple so you do not make unnecessary API calls.
Your app is now almost done. It does it`s job on your store, but ask yourself if other users can use it. Create another store for testing purposes and try to install the app. If it all works well you are in luck, but it almost never work as expected on the first try, so back to coding and debugging.
Make sure it works with no flaws on all of your stores before moving to the next step.
Break the app. Yes I said that correctly, try and break your app. Click all the buttons, open it in all browsers, try different themes, do everything you might think an user might do. Ask a friend to do this as well. This is the best way to find out what bugs are hidden in your app and solve them.
Make sure there are no flaws in your app before submitting the app to Shopify. They do not like apps that do not work like they should.
Write a proper documentation, display tips inside your app`s pages so that users know what do do and where to go inside the app. Maybe even give the app for free to other developers for testing and gather reviews.
Your app is now complete and it is time to publish it to Shopify app store. This is maybe the hardest step of the five. It may be because it is a tedious process that takes usually around ten days or more. If the Oauth process is done right, and the app does not crash in any way on install it is a good sign that it will not be rejected at first.
After the QA team from Shopify does the preliminary testing of your app and trust me they test everything, you will get a response from them with necessary changes you might have to make before it can be published.
Be sure to make these changes in relatively short timespan, do not make mistakes, test your app again and again before replying to them.
During the review process do not make any changes to the app that may break it, because that may be a rejection motive. Also make sure your app does not get rejected for more than 2 times, because the third time you will get temporary ban from submitting apps.
I hope this guide was somewhat helpful and you will give great apps back to the community.