The Shopify documentation is very thorough. That said, however extensive documentation is, there is always room for confusion.
Let’s take the set up for ThemeKit. You’ve created your private app in both your development site in your Shopify partners account, and also the live site
development: password: 16ef663594568325d64408ebcdeef528 theme_id: "123" store: can-i-buy-a-feeling.myshopify.com proxy: http://localhost:3000 ignore_files: - "*.gif" - "*.jpg" - config/settings_data.json production: password: 16ef663594568325d64408ebcdeef528 theme_id: "456" store: can-i-buy-a-feeling.myshopify.com timeout: 60s readonly: false
What issues might confuse you. Let’s work through them;
Theme Id
What is it? My first thought was that I had to generate this ID myself, but of course it has to be unique and therefore generated on the Shopify end.
My next thought was that I had to apply for a unique theme id for my new theme. That’s not true either, you’d only submit a theme for approval if you were wanting it to be sold on the Theme Store.
The Theme Id is the id given to the theme in the Shopify store. If you click on Online Store -> Themes
and click the Customize button, you’ll see the Theme Id in the url.
Deploying
Imo the docs on certain themekit commands are lacking at the moment – as I write this (on 17th Dec 2018) there are only 2 commands listed;
-a --allenvs -n --nodelete
It also says you can specify individual files to deploy, which makes a lot of sense if you’ve got a big theme. You don’t want to be deploying the whole thing every time you change one file.
theme deploy layout/theme.liquid theme deploy templates/page.liquid
What it doesn’t tell you is how to deploy a specific environment. Deploying your theme to your dev site in your Partners account whilst working on it, and then into Production when you are happy.
It does tell you how to do it in the command line help. You just just type theme into the command line to see that. If you leave the environment flag off it will deploy to development by default. The following command allows you to deploy to production;
theme deploy config/settings_schema.json -e production