CREATE AN ACCOUNT

Create a developer account so you can sign up for the partner program, you won't be able to create an app without it. 
https://developers.shopify.com/


CONFIGURE THE PRIVATE SHOPIFY APP

Go back to your Shopify Developer Account, log in, and create a private app here. Its pretty straightforward, and the configs are easy to figure out. 

https://app.shopify.com/services/partners/api_clients/new


SETUP AND DEPLOY THE SHOPIFY APP TO HEROKU:

Download the shopify app repo. The readme on their docs are really solid. Just follow the instructions, and it should work pretty seemlessly.

https://github.com/Shopify/shopify_app

Follow this tutorial to set up the private shopify app on heroku. The guy here is super helpful in getting it bootstrapped without any problems. 

https://vimeo.com/130247240

Once you have the app set up, you will need to figure out how to make AJAX calls from the Shopify API to the proxied app on heroku. Pay special attention to proxying your app and use a tool like ngrok or another tunneling service so you can develop locally. Get started here, but refer back to the Github ReadME for further documentation:

https://help.shopify.com/api/tutorials/application-proxies


SETTING UP A LOCAL DEVELOPMENT ENVIRONMENT ON SHOPIFY WITH MULTIPLE DEVELOPERS:

Forget about trying to develop a shopify theme in the traditional manner using git flow.  Throw it out the window.  When developing on Shopify, you will need to set up multiple themes so each developer can connect to a theme to test their code. 

Next, you have to set up a branching process with your team to manage all tested code on shopify and merge it into a master github repo.  Here is an example of the typical Shopify development workflow:

Developer 1 - Sets up a copy of the theme on his local machine. Set configurations to watch a specifc theme ID in the config.json file. Create branch B off of branch A (master), write code, theme watch command updates code on shopify, developer tests the code on shopify, commits code, and pushes branch B to github for pull request. 

Developer 2 - Sets up a copy of the theme on his local machine. Set configurations to watch a specifc theme ID in the config.json file. Create branch C off of branch A (master), write code, theme watch command updates code on shopify, developer tests the code on shopify, commits code, and pushes branch C to github for pull request.

Developer 1 or Developer 2 - Merges pull requests of Branch B and Branch C into branch A (master), fixes conflicts, and pulls this code locally. One of the developers should run the main theme as their develpoment branch so that once the code is merged on Github, that user can pushes this master branch code to the primary theme in for the shopify store.