docs
- Shopify CLI for themes
- [Shopify] CLIを使ってローカルでテーマを構築する方法|TORUBLOG
- Shopify CLIとGitHubを使ってテーマ開発を行う方法 | 株式会社Alquimista
- 【Shopify】テーマ開発の流れ(GitHub&Shopify CLI for themes)|ARCHETYP Inc.|note
注意点
- 管理画面上のすべてのデータ・設定が反映されるわけではない
- 以下はテストサイトには反映されない
- テーマ / カスタマイズで設定したウィジェット
- 以下はテストサイトには反映されない
事前準備
Shopify CLIをインストール
brew tap shopify/shopify
brew install shopify-cliテーマ構築
ストアにログイン
shopify login --store xxxxx.myshopify.com- 事前に Shopify 管理画面にログインする
xxxxxはショップドメイン- ログイン後にブラウザで
Authenticated successfully. You may now close this page.と表示があればOK
テーマファイルを取得
- 事前に Shopify 管理画面から、
既存テーマの複製 -> 新しいテーマ名を命名しておく - リモートリポジトリからローカルへコピー
cd テーマをコピーするディレクトリパス
shopify theme init 新しいテーマ名テーマをプレビュー
cd テーマをコピーしたディレクトリパス
shopify theme serveテーマファイルの取得/プレビューそれぞれカレントディレクトリが変わるので注意!
cd /Users/usr/Desktop/Shopify
shopify theme init テーマ名
cd /Users/usr/Desktop/Shopify/テーマ名
shopify theme serve1分ほど待つとターミナルに下記が表示される
┏━━ Viewing theme… ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
┃ * Syncing theme #123456789012 on xxxxx.myshopify.com
┃ 100%
┃
┃ Serving .
┃
┃ Please open this URL in your browser:
┃http://127.0.0.1:9292
┃
┃ Customize this theme in the Theme Editor, and use 'theme pull' to get the changes:
┃ https://xxxxx.myshopify.com/admin/themes/123456789012/editor
┃
┃ Share this theme preview:
┃ https://xxxxx.myshopify.com/?preview_theme_id=123456789012
┃
┃ (Use Ctrl-C to stop)
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ (65.53s) ━━http://127.0.0.1:9292がローカルサイトの URL- サイト表示がリアルタイム更新される(ホットリロード)
- 無料トライアル中などショップ close の状態では利用不可
Share this theme preview:の下段がプレビュー共有用の URL- ホットリロードされない
プレビューを終了
Ctrl+Cログアウト
shopify logoutその他
サンプルデータ生成
// ダミー商品を作成(デフォルト:5点)
shopify populate products
// ダミー商品を作成(20点)
shopify populate products --count 20
// *このままではサイトに表示されない
// *「商品管理」から「利用可能なチャネルを追加」エラーなど
css のキャッシュが消えない
{{ 'hoge.css' | asset_url | stylesheet_tag }}で生成される css には、バージョン情報のパラメーターが付く- これによって古いスタイルが消えないことがある
- ブラウザのキャッシュをクリアしても変わらない
解決法
shopify logoutでログアウト → 再ログインで解決した- プレビュー用 URL のパラメーター
preview_theme_idが変わる点に注意
会員機能・決済など
- ログインや決済はローカル接続
http://127.0.0.1:9292ではできない模様- 本番 URL へリダイレクトされる