LoginSignup
6
6

More than 3 years have passed since last update.

[Shopify] Visual Studio で Shopify Themeを管理開発

Last updated at Posted at 2019-10-02

普段からVisual Studio (VS)使っている私からすると、
ShopifyのTheme(テーマ)もVSで管理・構築したい!

ということで今日はVisual StudioでShopify Theme (Liquid Files) を管理する方法をまとめました。

Visual Studio Pro Versionを使用していますが、Visual Studio CodeでもVisual Studio For Macでも同じフローになります。

Liquid?

LiquidはShopifyのTheme開発で使われるテンプレート言語になります。

詳しいことはこちらを参照
:point_right_tone2: https://help.shopify.com/en/themes/liquid

例えばこんな表記で

{{ product.title }}

商品のタイトルを表示することができます。

そしてこんな表記もできます。

{% if product.available %}
<h2>Price: $99.99</h2>
{% else %}
<h2 class="sold-out">Sorry, this product is sold out.</h2>
{% endif %}

商品の在庫があったら、値段を表示、なければ、売り切れましたと表示する。
なんていう表現も簡単にできます。

開発手法と環境

Shopifyが提供資料によると
Themeの開発環境と手法は下記があります。

  1. Slate
  2. Shopify Theme Kit
  3. Online Editor

Slate

Slateツールを使うと、ローカルで開発をすすめ、自身の開発ストアーにプッシュできるとのこと。
詳細はこちらをご参照
:point_right_tone2: https://shopify.github.io/slate/docs/about

Shopify Theme Kit

Shopify Theme Kitは、Themeのダウンロード、アップロードなどを自動で行うことができる便利なツールです。
詳細ドキュメントはこちら
:point_right_tone2: https://shopify.github.io/themekit/

Online Editor

Online Editorはちょいとした変更や、ほぼテンプレートのまま行くということであれば
便利です。が、チームで開発であったり、リッチなIDE体験となると適切ではないかもしれません。

Visual Studio + Azure Dev Op.

今日はさらなる開発環境・構築手法として Visual Studio + Azure Dev Op.を試してみます。

:point_right_tone3: https://help.shopify.com/en/api/reference/online-store/theme#index-2019-10
上記資料にある /admin/api/2019-10/themes/#{theme_id}.json を使いGit で管理したファイルをZip化してShopify上にあげます(更新します)。

既存のテンプレートファイルのダウンロード

まずは既存のテンプレートをローカルにダウンロード。

image.png

Download theme fileをクリック。メールでファイルが送られてくるとこのとで(正確にはダウンロードのリンクが送られてくる)、メールを確認し、ダウンロード。

Azure Dev Op. にて新しいRepository作成

image.png

左のナビゲーションメニューよりRepos New Repositoryで新しいRepositoryを作成します。

ローカル環境の準備

Visual Studioから新しいRepositoryにアクセス、ローカル環境を用意します。

image.png

解凍したテンプレートファイルを移動

ローカル環境に解凍したテンプレートファイルを移動し、変更内容を確認します。

image.png

変更のコミット(追加のコミット)

変更をコミットします。

image.png

プッシュする

マスターですが・・そのままプッシュします。
Azure Dev Op側にファイルがプッシュされているか確認をします。

image.png

これでGit環境はいったん整いました。ブランチ切ってここからグループ開発を始めていきます。
次はマージされたmasterブランチをShopifyにプッシュしています。

Shopify Admin APIを使えるようにする

次の流れは更新したファイルをZip化、テーマをShopifyサーバーにアップロードします。そのためにはまずPrivate App構築からAPIのKeyを取得する必要があります。

image.png

Theme template and assetsRead and writeに設定します。

image.png

セーブをするとAPI Keyとパスワードを取得することができます、またExample URLも表示されますので、このURLを後ほどそのまま使います。

image.png

CI環境を用意する

Zipファイルを作成

次はmasterにマージされたテーマファイルをShopify環境に反映させます。 左メニューのPipelinesからNew Release pipelineを選択

image.png

Zipファイルを作成するタスクを作ります。

image.png

次にmasterが更新されるたびに自動でzipファイルが作成されるよう、ワークフローを作ります。

image.png

Enable continuous integrationをチェックして保存します。これでmasterが更新されるたびに自動的にzipファイルが生成されます。

生成したZipファイルを公開する

生成したZipファイルは公開されている必要がありますので、Blobにあげておきます。

image.png

サービスコネクションを作成

次はリリース時に使うAPIのコネクションを用意します。Settings > Pipelines > Service Connectionで新しいサービスコネクション=APIのエンドポイントを設定します。さきほどPrivate Appを作成したときにでてきたUrlをそのまま使います。

image.png

URLはこちら(このフォーマットでServer URL部分に記入)
:point_down_tone2:

https://{username}:{password}@{shop}.myshopify.com/admin/api/2019-10/themes.json

リリースパイプラインを作成

最後にPipelines > Release からNew release pipelineをクリックし、先ほど生成してZipを更新します。

image.png

リリースのパイプラインはソースとリリース作業に分かれていますので、下記イメージ左部分にあるソースをまず指定します。 今回はリリースを手動としています。自動にする場合はArtifactsのところにある⚡マークをクリック。Continuous deployment triggerをEnableすると自動的にリリース作業も行うことができます。

image.png

連動するビルドを指定します。

image.png

最後にAgentless jobTaskに追加、そこでInvoke REST APIを選択。今回はThemeの更新となるのでPUTで下の図右側にあるようにHeadersBodyを指定します。

image.png

リリース

あとはこの右上のリリースボタンを押すだけです。
image.png

リリース内容を確認、正常に更新ができました。

これでテーマを開発していく環境が整いました。次はLiquid FileをVisual Studioで開発していく上で超便利なプラグインの紹介をします。

Shopifyの開発に関しての記事は下記を予定しています

6
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
6