Setting up Shopify on Theme Kit

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