Shopifyのローカル開発環境を準備する(Mac)

Shopifyのローカル開発環境を準備する(Mac)

ローカル開発環境を準備することが何回かあったため手順をまとめます
2021年6月に発表されたShopifyCLIではなく、ThemeKitでの手順です。
online Store2.0を使用している場合はShopifyCLIを使用してください。
ThemeKit 1.3.0 darwin/amd64

Shopify接続するためのAPIキー・パスワードを生成する

アプリ管理

プライベートアプリを管理する

新しいプライベートアプリを作成する

必要事項を入力して権限を付与する
非アクティブなAdmin API権限を表示する

テーマテンプレートとアセットを表示または管理する
「読み取りおよび書き込み」を選択
保存する

アプリを作成する

これでAPIキー、パスワードが生成されます

ThemeKitをインストールする

$ brew tap shopify/shopify
$ brew install themekit
brew tapでshopifyが公開しているリポジトリをインストールできるようにする

テーマをダウンロードする

すでにShopifyアカウント内に存在するテーマをダウンロードする。
既存のテーマにアクセスするためにはテーマIDを取得する必要がある。

オンラインストア

アクション

コードを編集

上記操作でエディタが開かれる。そのページのURL末尾の数字がテーマID
https://your-shop-name.myshopify.com/admin/themes/00000000000
↑00000000000の部分

テーマをダウンロードするためのディレクトリに移動し、テーマをダウンロードする。以下コマンドでconfig.ymlが生成される。

$ theme get --password={api password} --store=your-shop-name.myshopify.com --themeid=00000000000
↑{api password}には最初のプライベートアプリ作成で入手した「パスワード」を入れる

以上で開発を開始することもできるが、以下で環境を整える

リモート上で開発環境を作る

オンラインストア

現在のテーマ アクション

複製
developなどの名前に変更する

.env

STORE_NAME = "your-shop-name.myshopify.com"
STORE_PASSWORD = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
THEME_ID = "11111111111"

PROD_THEME_ID = "0000000000"

config.yml

development:
  store: ${STORE_NAME}
  password: ${STORE_PASSWORD}
  theme_id: ${THEME_ID}
  ignore_files:
  - config/settings_data.json
  - .env

production:
  store: ${STORE_NAME}
  password: ${STORE_PASSWORD}
  theme_id: ${PROD_THEME_ID}
  ignore_files:
  - config/settings_data.json
  - .env

theme deploy時に設定の上書きを防止するために、ignore_filesにconfig/setting_data.jsonを追記しておくとよい

.gitignore

.envを除外しておく

package.json

デプロイとダウンロードのコマンドをスクリプト化しておく

{
  "scripts": {
    "deploy:develop" : "theme deploy --vars .env --env=development",
    "deploy:prod" : "theme deploy --vars .env --env=production",
    "theme_download" : "theme download --vars .env --env=production"
  }
}

すでに公開されている本番環境へのdeploy時は、--allow-live オプションをつけろというエラーが出るが、本番環境へ誤ってデプロイしてしまうのを防止するためスクリプトには含めずに都度記載することにする。