2023.12.07[Thu]

Shopifyテーマの中で、テーマのどこからでも参照できる値をセットする

  • Shopify

目次

こんにちは。
ディレクターの田辺です。

「Shopifyテーマの中で、テーマのどこからでも参照できる値をセットする」という本記事のタイトルが、自分でも意味不明だと思うので、まず、その解説をさせてください。

Shopifyのテーマは、JSONとLiquidで構成されています。

そして、Liquidは、商品一覧ページのためのLiquid、商品詳細ページのためのLiquidのように、役割ごとにLiquidファイルが存在します。

例えば、全てのページにおいて「株式会社Q」という特定の文言をページごとに異なる位置に表示したいとき、どうすれば良いでしょうか?
全てのLiquidファイルに「株式会社Q」をハードコーディングする、というパワープレイもありですが、もう少しスマートなやり方がいくつかあります。

私が今回紹介するのは、「テーマ設定」を活用する方法です。

テーマ設定とは

ストア管理画面 > オンラインテーマ > テーマ > カスタマイズ
からアクセスできるテーマカスタマイズ画面にテーマ設定はあります。
下図の画面です。

この「テーマ設定」で設定した内容は、どのLiquidファイルからでも参照できます。

テーマ設定をカスタマイズする方法

コード編集画面 > 設定 > settings_schema.json
を編集することで、テーマ設定に任意の項目を追加できます。

では、共通文言、という項目を追加してみます。

追加した内容は下記です。

  {
    "name": "共通文言",
    "settings": [
      {
        "type": "text",
        "id": "common_text"
      }
    ]
  },

下図のようになります。

あとは、上記の項目に、何らか文言を設定し、「保存」するだけです。

テーマ設定の内容を参照にする方法

テーマ設定で設定した内容をLiquid上から参照するのは簡単です。
今回例として設定してみた「共通文言」であれば、Liquidファイル内に下記のように記載するだけです。

 {{ settings.common_text }}

まとめ

テーマ設定を利用する以外にも、JavaScriptを駆使して、1箇所に書いた「全ページで共通して使用したい値」を全ページで参照することも可能かと思います。

しかし、テーマ設定の方が、「誰でも編集可能」ですし、「Liquidで処理したい」場合にはこの方法しかない、と思っています。

「メタフィールド」でも良さそうですが、実は、全てのLiquidから参照できるようなメタフィールドは、少なくとも通常のストア操作の範囲では作成できません。

意外にもスマートに「Shopifyテーマの中で、テーマのどこからでも参照できる値をセットする」方法は少ないのです。

それでは。

Share

Shopify Flowの活用方法Shopify 2023年11月の新情報