見出し画像

Shopifyのセクションのきほん

Section セクションの特徴

セクションは、モジュール化されたカスタマイズ可能なページの要素で、特定の機能をもっています。
セクションはスニペットに似ていますが、セクションの一番の特徴はテーマエディタ上でカスタマイズできることです。

いくつかの機能の概要を簡単に今回で記事ではご紹介します。

① セクションはテーマのテンプレートに静的に含めることも、テーマエディタからテーマのトップページに動的に追加することもできます。

② セクションは{% section 'section_name' %} Liquidタグを使ってテンプレートファイルに含まれ、セクションファイルにプリセットがある場合は自動的にトップページに追加されます。

③ セクションは3つのLiquidタグをサポートしていますが、その該当のセクションファイル以外の場所で使用できません。


Section セクションの3つのLiquidタグ


セクション内でサポートされている3つのLiquidタグは以下になります。

{% schema %}
{% javascript %}
{% stylesheet %}

④ セクション内で固有に CSS を追加するための {% stylesheet %} タグがありますが、デフォルトではセクションはメインのスタイルシート(例: theme.scss.liquid)から見栄え(スタイル)を読み込みます。

Shopifyのセクションのつくりかた

画像9

①「新しいsectionを追加する」をクリックすると、SchemaStylesheetJavaScriptタグが土台のような形として自動的に生成されます。

Schema(スキーマ)タグの中にJSONを追加していきます。
このJSONによってテーマエディタがどのようにコンテンツを読み込むのかを定義されます。言葉だけの説明だと分かりにくい部分もあるので、実際のコードを見てみましょう。

スクリーンショット 2020-09-14 10.06.15

それでは具体的なコードを見てみましょう。

スクリーンショット 2020-09-14 10.21.04

(上の画像をクリックすると、拡大画像で見ることができます。Sectionsフォルダの中にsimple-textbox.liquidというファイル名でつくりました。)

<div id=“textsection”>
 <div class=“simpletext”>
   <h1>{{ section.settings.text-box}}</h1>
   <h3>{{ section.settings.text}}</h3>
  
 </div>
</div>


{% schema%}

{
 "name": "Text Box",
 "settings": [
   {
     "id": "text-box",
     "type": "text",
     "label": "Heading",
     "default": "タイトル"
   }, {
     "id": "text",
     "type": "richtext",
     "label": "Add custom text below",
     "default": "<p> ここにテキストを入力してください。 </p>"
   }
 ],
 "presets": [
   {
     "name": "テキストボックス",
     "category": "テキスト"
   }
 ]
}

{% endschema%}

{% stylesheet%}{% endstylesheet%}
{% javascript%}{% endjavascript%}

(↑画像ではなくて、コピペできる実際のコード)

画像5

(上の画像をクリックすると、拡大画像で見ることができます。)

Presetsを使って動的セクションとして組み込む

上の画像のように先程の{{% schema %}} から{{% endschema %}}の箇所に以下のコードを追加します。


"presets": [
   {
     "name": "テキストボックス",
     "category": "テキスト"
   }
 ]

Presetsを追加するのは、動的セクションとしてShopifyのカスタマイズエディタに組み込むためです。

Presetsを追加すると、Shopifyのカスタマイズエディタの画面(「テーマ」 →「カスタマイズ」→「セクション」→「セクションを追加」の箇所です。 )に表示されるようになります。

画像6

(上の画像をクリックすると、拡大画像で見ることができます。)

「テキストボックス」をクリックすると、Schemaで一番最初に登録した① 設定の名前 → Text Boxが下のように問題なく表示されてますね。

画像3

この「Text Box」をクリックすると、下のスクリーンショット画像のように表示されるかと思います。

画像4

(上の画像をクリックすると、拡大画像で見ることができます。)

{{% schema %}} から{{% endschema %}}までのコードと見比べてみると、
どこのJSONのプロパティがShopifyのカスタマイズエディタのどこの箇所と対応しているのか少しずつ見えてきます。

上の例ではプレーン(平易)なテキストボックスリッチなテキストボックス{{% schema %}}から{{% endschema %}}JSONを書いて、動的セクションとしてShopifyのカスタマイズエディタに組み込みました。

プレーンテキストやリッチテキスト以外にも要件に応じて様々な入力タイプを選ぶことができます。それらの入力タイプの種類にはimage_picker, radio,  video_urlやfontなど様々なものがあります。

他の入力タイプの例: image_picker 画像

image_picker 画像

画像7

(上の画像をクリックすると、拡大画像で見ることができます。Sectionsフォルダの中にlogo-image.liquidというファイル名でつくりました。)

スクリーンショット 2020-09-15 18.06.21

<p><img src="{{ section.settings.logo | img_url: 'large' }}" alt="logo"></p>

{% schema %}
 {
 "name": "Logo",
 "settings": [
   {
     "type": "image_picker",
     "id": "logo",
     "label": "Logo image"
   }
 ],

"presets": [
   {
     "name": "ロゴ画像",
     "category": "画像"
   }
 ]
}
{% endschema %}

{% stylesheet %}
{% endstylesheet %}

{% javascript %}
{% endjavascript %}

(↑画像ではなくて、コピペできる実際のコード)

画像8


image_picker(画像)の入力タイプでセクションをつくる手順は基本的にプレーンテキストやリッチテキストの時と同じ要領です。

まとめ:Schemaに必要な3つのKey(キー)

{% schema %}にJSONで次の3つの必要なKey(キー)を追加します。

① "name"
② "settings"
③ "presets"

そうするとShopifyのカスタマイズエディタからセクションを動的に追加できるようになります。

他の色々な入力タイプの種類に関しては英語の情報にはなりますが、Shopifyの公式ドキュメントに詳しく載っています。以下をご参照ください。

Basic input setting types
https://shopify.dev/docs/themes/settings#basic-input-setting-types

 
今回はShopifyの「Section セクションのきほん」について書きました。
Section セクションの基本を理解する上で何かの手助けにしてもらえると嬉しいです😊


Twitterでも軽くですが、発信しておりますので
自由にフォローしてください。

画像11

Nirvana Lab.ではShopifyでのECサイトの制作・構築、Shopifyのテーマカスタマイズ、他社ECプラットフォームからのShopifへの移行だけでなく
翻訳・ローカライゼーションもに対応しておりますので、まずは何でもお気軽にご相談くださいませ。

https://nirvana-lab.com/portfolio/


いいなと思ったら応援しよう!