Shopify Liquidとは|特徴や基本構文、学習リソースまで紹介

Shopify Liquidとは|特徴や基本構文、学習リソースまで紹介

Shopify Liquidは、Shopifyが開発したオープンソースのテンプレート言語で、オンラインストアの機能を柔軟に実装するために設計されています。HTML文書内にLiquid構文を直接記述することで、商品情報などの動的データを利用し、カスタマイズされたウェブページを作成できます。

Liquidは比較的理解しやすい構文を持ち、プログラミング経験が少ない人でも扱いやすい特徴があります。本記事では、Shopify Liquidの基本概念、主な特徴、そしてその学習に役立つリソースについて解説します。

Liquidとは

Liquid|Shopify.dev

出典:Liquid|Shopify.dev

Liquidは、Shopifyが開発したオープンソースのテンプレート言語です。HTML文書の中にLiquidの構文を使用してタグや変数を直接記述し、商品情報などのデータを利用して、動的なウェブページを作成するのに適しています。Shopifyでは、プラットフォーム特有のオブジェクトや変数も提供されており、これらを活用してeコマースサイトの機能を柔軟に実装できます。

Liquidの特徴

理解しやすい簡単な構文

プログラミング経験が少ない人でも比較的理解しやすい構文を持っています。

安全性が高い

ユーザーがサーバーサイドのコードを実行できないようになっており、セキュリティ面で優れています。

柔軟性が高い

変数、条件分岐、ループなどの基本的なプログラミング要素を提供し、複雑な処理も行えます。

テーマカスタマイズに最適

オンラインストアのデザインやレイアウトを効率的にカスタマイズできます。

ShopifyでのLiquidの役割

Shopifyにおいて、Liquidは以下のような重要な役割を果たしています

テーマのカスタマイズ

ストアのデザインや機能を柔軟にカスタマイズするために使用されます。

動的コンテンツの生成

商品情報、カート内容、顧客データなどの動的なコンテンツをウェブページに表示します。

ビジネスロジックの実装

条件分岐や繰り返し処理を使って、複雑なビジネスロジックを実装できます。

データとプレゼンテーションの分離

HTMLとデータを橋渡しし、コードの保守性を高めます。

パフォーマンスの最適化

サーバーサイドでレンダリングされるため、クライアントサイドのJavaScriptに比べて高速です。

マルチ言語対応

国際化(i18n)のサポートにより、多言語ストアの構築が容易になります。

Liquidでカスタマイズできる主な箇所

Liquidを利用することで、Shopifyテーマのカスタマイズやメール本文のカスタマイズ、領収書などの帳票のカスタマイズができます。Liquidでカスマイズできる主な箇所は以下になります。

テンプレートのコード編集

テンプレートのコード編集

テンプレートは、ストアの各ページの基本構造を定義します。Shopifyでは、product.liquid(商品ページ)、collection.liquid(コレクションページ)、index.liquid(ホームページ)などの主要なテンプレートが用意されています。これらのテンプレートを編集することで、ページの全体的なレイアウトやコンテンツの配置を変更できます。

テンプレートの編集では、HTMLとLiquidを組み合わせて使用します。例えば、商品ページのレイアウトを変更したり、新しい機能(関連商品の表示など)を追加したりできます。テンプレートの編集は慎重に行う必要があり、変更がストア全体に影響を与える可能性があることに注意が必要です。

カスタマイズされたLiquid(セクションブロック)

カスタマイズされたLiquid(セクションブロック)

カスタムLiquidは、テーマエディタで利用できるセクションブロックです。カスタムLiquidを利用することで、liquidファイルを直接編集することなく、任意の場所にliquidコードを挿入することができます。テンプレートの編集よりも影響範囲を抑えて、テーマをカスタマイズできるメリットがあります。

メールテンプレート

メールテンプレート

Shopifyでは、注文確認、出荷通知、アカウント作成などの自動メールのテンプレートをカスタマイズできます。メールテンプレートの編集により、ブランドの一貫性を維持し、顧客とのコミュニケーションを改善できます。

メールテンプレートでもLiquidを使用でき、注文情報や顧客情報を動的に挿入できます。例えば、{{ order.name }}で注文者名を表示したり、{% for line_item in order.line_items %}ループを使用して注文内容を表示したりできます。

Shopify Order Printer

Shopify Order Printer

Shopify Order Printerは、注文の請求書、納品書、ピッキングリストなどの帳票を出力できるShopifyアプリです。

Shopify Order Printerのテンプレートもまた、HTMLとLiquidを使用してカスタマイズできます。例えば、自社のロゴを追加したり、特定の注文情報のレイアウトを変更したりできます。{{ order.shipping_address.name }}で配送先名を表示したり、{{ order.total_price | money_with_currency }}で注文総額を表示したりできます。

下記のブログ記事ではOrder Printerに関して紹介しています。ご参考にしてください。

【完全無料】Shopifyで領収書や請求書を印刷できるアプリ「Order Printer」とは?

Liquidの基本構文

Liquidの基本構文は、変数と出力、オブジェクト、フィルター、タグ(制御フローとイテレーション)、そしてコメントアウトの5つの主要な要素で構成されています。

これらの基本構文を理解し適切に組み合わせることで、柔軟で動的なShopifyテーマを開発できます。

変数と出力

変数と出力は、Liquidの最も基本的な機能です。変数の値を出力するには、二重中括弧「{{ }}」を使用します。例えば、商品のタイトルを表示するには「{{ product.title }}」と記述します。

<記述例>

{{ product.title }}

新しい変数を定義する場合は、assign タグを使用します。変数のスコープは通常、それが定義されたテンプレート内に限定されます。

<記述例>

{% assign my_variable = "Hello, World!" %}

オブジェクト

Liquidでは、様々なオブジェクトを扱います。オブジェクトのプロパティにアクセスするには、ドット表記を使用します。

<記述例>

{{ product.title }}

{{ collection.products }}

Shopifyには、product(商品情報)、collection(コレクション情報)、cart(カート情報)、customer(顧客情報)などの主要なオブジェクトが用意されています。これらのオブジェクトを通じて、ストアの様々なデータにアクセスできます。

<主要なオブジェクト>

  • product: 商品情報
  • collection: コレクション情報
  • cart: カート情報
  • customer: 顧客情報
  • article: ブログ記事の情報
  • blog: ブログの情報
  • shop: ストア情報

フィルター

フィルターは、出力される値を修正(または、整形)するために使用されます。フィルターを適用するには、パイプ記号(|)を使用します。

<記述例>

{{ product.price | money_with_currency }}

複数のフィルターを連鎖させることも可能です。

<記述例>

{{ "hello" | capitalize | append: "!" }}

例えば、金額を通貨形式で表示するには money フィルターを使用し、文字列の先頭を大文字にするには capitalize フィルターを使用します。

<主なフィルター>

  • capitalize: 文字列の先頭を大文字にします。
  • money: 金額を通貨形式で表示します。
  • date: 日付をフォーマットします。

タグ(制御フロー、イテレーション)

タグは、テンプレート内でロジックを実装するために使用されます。条件分岐には if、elsif、else タグを使用し、繰り返し処理には for タグを使用します。これらのタグを使用することで、動的なコンテンツの生成や、コレクション内の各アイテムの処理などが可能になります。また、break や continue タグを使用してループの制御を行うこともできます。

<記述例:条件分岐>

{% if product.available %}

在庫あり

{% else %}

在庫切れ

{% endif %}

<記述例:ループ>

{% for product in collection.products %}

{{ product.title }}

{% endfor %}

コメントアウト

コードにコメントを追加するには、comment と endcomment タグを使用します。これらのタグで囲まれたコンテンツは、Liquidエンジンによって無視されます。単一行のコメントや複数行のコメントを記述できます。また、Liquidコードの解析を防ぐために raw と endraw タグを使用することもあります。

<記述例:単一行のコメントアウト>

{% comment %} 単一行コメント {% endcomment %}

<記述例:複数行のコメントアウト>

{% comment %}

これは

複数行の

コメントです

{% endcomment %}

<記述例:出力のコメントアウト>

{% raw %} 出力のコメント {% endraw %}

Shopify特有のLiquidオブジェクト

Shopifyでは、オンラインストアの開発に特化した独自のLiquidオブジェクトが提供されています。これらのオブジェクトを使用することで、ストアの様々な情報に簡単にアクセスし、動的なコンテンツを生成することができます。以下に、主要なShopify特有のLiquidオブジェクトについて説明します。

product

productオブジェクトは、個々の商品に関する情報を含んでいます。このオブジェクトを通じて、商品のタイトル、説明、価格、画像、バリアント(サイズや色などの選択肢)、在庫状況などにアクセスできます。例えば、{{ product.title }}で商品名を表示したり、{{ product.price | money_with_currency }}で価格を通貨表示付きで表示したりできます。productオブジェクトは主に商品詳細ページで使用されますが、商品一覧ページなどでも活用されます。

collection

collectionオブジェクトは、商品のグループ(コレクション)に関する情報を提供します。コレクションのタイトル、説明、画像の他、そのコレクションに含まれる商品のリストにもアクセスできます。{{ collection.title }}でコレクション名を表示したり、{% for product in collection.products %}ループを使用してコレクション内の全商品を表示したりできます。collectionオブジェクトは、カテゴリーページや関連商品の表示などで頻繁に使用されます。

cart

cartオブジェクトは、現在のショッピングカートの状態を表します。カート内の商品数、合計金額、個々のカート内アイテムなどの情報にアクセスできます。{{ cart.item_count }}でカート内の商品数を表示したり、{{ cart.total_price | money_with_currency }}で合計金額を表示したりできます。cartオブジェクトは、カートページやミニカートの実装、ヘッダーでのカート情報の表示などに使用されます。

customer

customerオブジェクトは、現在ログインしている顧客の情報を提供します。顧客の名前、メールアドレス、注文履歴などにアクセスできます。{% if customer %}と{% endif %}を使用して、ログイン状態に応じて表示を変更したり、{{ customer.name }}で顧客名を表示したりできます。customerオブジェクトは、パーソナライズされたコンテンツの表示やアカウントページの実装に使用されます。

article

articleオブジェクトは、ブログ記事の情報を提供します。記事のタイトル、本文、作成日、著者、コメントなどにアクセスできます。{{ article.title }}で記事タイトルを表示したり、{{ article.content }}で記事本文を表示したりできます。articleオブジェクトは、ブログ記事ページやブログ記事のリスト表示などで使用されます。

blog

blogオブジェクトは、ブログ全体の情報を含んでいます。ブログのタイトル、記事のリスト、コメント設定などにアクセスできます。{{ blog.title }}でブログタイトルを表示したり、{% for article in blog.articles %}ループを使用してブログ内の全記事を表示したりできます。blogオブジェクトは、ブログのインデックスページや、サイドバーでの最新記事リストの表示などに活用されます。

shop

shopオブジェクトは、ストア全体に関する情報を含んでいます。ストア名、説明、ロゴ、通貨設定、ポリシーページへのリンクなどにアクセスできます。{{ shop.name }}でストア名を表示したり、{{ shop.email }}で連絡先メールアドレスを表示したりできます。shopオブジェクトは、ヘッダーやフッター、あるいはストア全体で共通して使用される情報の表示に活用されます。

条件分岐と制御構造

Shopify Liquidでは、様々な条件分岐と制御構造を使用して、動的なコンテンツを作成し、ロジックを実装することができます。以下に主要な構造とその使用方法を説明します。

if、elsif、else

if文は最も基本的な条件分岐構造です。特定の条件が真の場合にのみコードブロックを実行します。elsif(else if)を使用して複数の条件をチェックし、elseを使用してどの条件も満たさない場合の処理を指定できます。

例えば、商品の在庫状況に応じて異なるメッセージを表示する場合、次のように記述できます:

{% if product.available %} <p>在庫あり</p> {% elsif product.variants.first.inventory_quantity < 5 %} <p>残りわずか</p> {% else %} <p>在庫切れ</p> {% endif %}

この構造を使用することで、様々な条件に基づいてコンテンツを動的に変更できます。

下記のブログ記事では、Shopifyで在庫数を表示する方法を紹介しています。ご参考にしてください。

Shopifyで在庫数を表示する方法 3選|Shopifyアプリも紹介

case/when

case/when構造は、複数の条件を評価する必要がある場合に便利です。特に、単一の変数に対して複数の値をチェックする場合に適しています。

例えば、商品のタイプに基づいて異なる説明を表示する場合:

{% case product.type %} {% when 'Tシャツ' %} <p>快適な着心地の100%コットン製Tシャツです。</p> {% when 'ジーンズ' %} <p>耐久性のある丈夫なデニム製ジーンズです。</p> {% else %} <p>高品質の商品です。</p> {% endcase %}

この構造により、コードをより簡潔に保ちながら、複数の条件を効率的に処理できます。

for ループ

forループは、配列やコレクション内の各項目に対して繰り返し処理を行うために使用します。これは商品リストの表示や、メニュー項目の繰り返しなど、多くの場面で活用できます。

例えば、コレクション内のすべての商品を表示する場合:

{% for product in collection.products %} <div class="product"> <h2>{{ product.title }}</h2> <p>{{ product.price | money }}</p> </div> {% endfor %}

forループには、limit、offset、reversedなどの便利なパラメータも用意されており、表示する項目数の制限や、逆順での表示などが可能です。

複数条件の設定

複雑な条件分岐が必要な場合、複数の条件を組み合わせることができます。andやorを使用して条件を結合したり、括弧を使用して条件のグループ化を行うことができます。

例えば、特定の条件下でのみ特別オファーを表示する場合:

{% if customer.tags contains 'VIP' and cart.total_price > 10000 or product.tags contains 'セール' %} <p>特別オファー対象商品です!</p> {% endif %}

このように、複数の条件を組み合わせることで、より細かな制御が可能になります。

データの操作と変換

Shopify Liquidでは、様々なデータ操作と変換が可能です。これらの機能を活用することで、より柔軟で動的なコンテンツを作成できます。以下に主要な操作と変換方法を説明します。

配列とオブジェクトの操作

Liquidでは、配列やオブジェクトを効率的に操作するための多くのフィルターと技法が用意されています。

配列の操作では、firstlastsizejoinなどのフィルターが便利です。例えば、商品のタグを表示する場合:

{% if product.tags.size > 0 %} <p>タグ: {{ product.tags | join: ", " }}</p> {% endif %}

オブジェクトの操作では、whereフィルターを使用して特定の条件に合う項目をフィルタリングできます:

{% assign featured_products = collections.all.products | where: "tags", "おすすめ" %}

また、sortフィルターを使用して配列やオブジェクトをソートすることも可能です。

日付と時刻の扱い

日付と時刻の操作は、注文履歴や投稿日時の表示などで重要です。Liquidには日付フォーマットを変更するためのdateフィルターが用意されています。

<p>注文日: {{ order.created_at | date: "%Y年%m月%d日" }}</p>

また、nowタグを使用して現在の日時を取得し、操作することもできます:

{% assign one_week_from_now = 'now' | date: '%s' | plus: 604800 | date: "%Y-%m-%d" %} <p>1週間後の日付: {{ one_week_from_now }}</p>

文字列操作

文字列操作は、テキストデータの加工や表示形式の調整に役立ちます。主要なフィルターにはcapitalizedowncaseupcasestriptruncateなどがあります。

例えば、商品説明を短縮して表示する場合:

<p>{{ product.description | truncate: 100, '...' }}</p>

また、replaceフィルターを使用して文字列の一部を置換することもできます:

{{ product.title | replace: '限定版', '<span class="highlight">限定版</span>' }}

数値計算

Liquidでは、基本的な数学演算子(+、-、*、/、%)を使用できます。また、plusminustimesdivided_byなどのフィルターも用意されています。

例えば、割引価格を計算する場合:

{% assign discount_percentage = 0.1 %} {% assign discounted_price = product.price | times: 1.0 | minus: product.price | times: discount_percentage %} <p>割引価格: {{ discounted_price | money }}</p>

さらに、roundceilfloorフィルターを使用して数値を丸めることもできます。

リソースと学習材料

Shopify Liquidの習得と活用には、多様なリソースと学習材料が利用可能です。これらは主に公式ドキュメント、チートシート、コミュニティフォーラムの3つに分類されます。

これらのリソースを効果的に活用するためには、公式ドキュメントを基礎として常に最新の情報を確認し、チートシートを日常的な開発作業の効率化に役立てることが重要です。コミュニティフォーラムでは、質問する前に同様の問題がすでに議論されていないか検索し、問題解決だけでなく定期的に新しい技術やトレンドを把握することも大切です。

公式ドキュメント

Liquid|Shopify.dev

出典:Liquid|Shopify.dev

Shopifyの公式ドキュメントは、Liquidを学ぶ上で最も信頼性の高い情報源です。

Shopify Liquid リファレンスでは、Liquidの全オブジェクト、フィルター、タグの詳細な説明と使用例が掲載されています。特定の機能や構文について調べる際に非常に有用で、alphabetical indexを使用すると素早く目的の情報を見つけられます。

Shopify テーマ開発ガイドは、テーマ開発の基本から応用まで段階的に学べる構成になっています。テーマ開発の全体像を把握し、ベストプラクティスを学ぶのに適しています。

さらに、Shopify Design Guidelinesでは、Shopifyのデザイン原則や推奨されるUXパターンが紹介されています。ユーザーフレンドリーなテーマを作成する際の指針として参照すると良いでしょう。

チートシート

Shopify Cheat Sheet

出典:Shopify Cheat Sheet

チートシートは、頻繁に使用する構文や機能を素早く参照するのに役立ちます。

Shopify Cheat Sheetは、Liquidの基本構文、オブジェクト、フィルターがコンパクトにまとめられています。デスクトップに保存したり、印刷して手元に置いておくと便利です。

コミュニティフォーラム

Shopify コミュニティ

出典:Shopify コミュニティ

コミュニティフォーラムは、他の開発者と知識を共有し、具体的な問題解決策を見つけるのに役立ちます。

Shopify コミュニティは、Shopify公式のフォーラムで、開発者、マーチャント、Shopifyスタッフが参加しています。具体的な問題や疑問について質問したり、他の人の質問と回答を参照したりできます。

Stack OverflowのShopifyタグは、より技術的な問題や、Liquidと他の技術を組み合わせる際の問題解決に役立ちます。

また、Redditのr/shopifyサブレディットでは、Shopify関連の幅広いトピックが議論されており、最新のトレンドや他の開発者の経験談を知るのに適しています。

最後に

Shopify Liquidは、オンラインストアのデザインやレイアウトを効率的にカスタマイズするのに便利な言語です。基本的な変数操作から複雑な条件分岐まで、様々な機能を提供し、動的で柔軟なウェブページの構築を可能にします。

Liquidの学習と活用には、公式ドキュメント、チートシート、コミュニティフォーラムなど、多様なリソースが利用可能です。これらのリソースを効果的に組み合わせることで、Shopify Liquidの理解を深め、効果的なテーマ開発のスキルを磨くことができます。

ブログに戻る
1 6
  • Shopify Liquidとは|特徴や基本構文、学習リソースまで紹介

    Shopify Liquidとは|特徴や基本構文、学習リソースまで紹介

    Tsunライターチーム

    Shopify Liquidは、Shopifyが開発したオープンソースのテンプレート言語です。本記事では、Shopify Liquidの基本概念、主な特徴、そしてその学習に役立つリソースについて解説します。

    Shopify Liquidとは|特徴や基本構文、学習リソースまで紹介

    Tsunライターチーム

    Shopify Liquidは、Shopifyが開発したオープンソースのテンプレート言語です。本記事では、Shopify Liquidの基本概念、主な特徴、そしてその学習に役立つリソースについて解説します。

  • Shopify Polarisとは? 効率的なShopifyアプリ開発に!

    Shopify Polarisとは? 効率的なShopifyアプリ開発に!

    Tsunライターチーム

    Shopify Polarisは、Shopifyのエコシステムにおいて重要な役割を果たす包括的なデザインシステムです。本記事では、Shopify Polarisの概要やメリット、デメリット、Polarisを活用したShopifyアプリの事例、Shopify Polarisを使用する際のヒントとコツを紹介します。

    Shopify Polarisとは? 効率的なShopifyアプリ開発に!

    Tsunライターチーム

    Shopify Polarisは、Shopifyのエコシステムにおいて重要な役割を果たす包括的なデザインシステムです。本記事では、Shopify Polarisの概要やメリット、デメリット、Polarisを活用したShopifyアプリの事例、Shopify Polarisを使用する際のヒントとコツを紹介します。

  • 【Tips】Shopify の GraphQL Admin API で顧客総数を取得する

    【Tips】Shopify の GraphQL Admin API で顧客総数を取得する

    小笠原 京平

    Shopifyの GraphQL Admin API の小ネタです。 Shopifyの顧客総数を取得したい場合のクエリは、いざ探そうと思ってもパッと見つからないのでメモしておきます。 対象読者 Shopify GraphQL Admin API を使ったことがある方 顧客総数を取得するクエリ 2023-07 バージョンから CustomerSegmentMemberConnection に変更があったため、2023-07より前と以降で若干クエリが異なります。 ※ changelog 2023-07以降 { customerSegmentMembers(first: 1, query: "") { totalCount } } 2023-07より前...

    【Tips】Shopify の GraphQL Admin API で顧客総数を取得する

    小笠原 京平

    Shopifyの GraphQL Admin API の小ネタです。 Shopifyの顧客総数を取得したい場合のクエリは、いざ探そうと思ってもパッと見つからないのでメモしておきます。 対象読者 Shopify GraphQL Admin API を使ったことがある方 顧客総数を取得するクエリ 2023-07 バージョンから CustomerSegmentMemberConnection に変更があったため、2023-07より前と以降で若干クエリが異なります。 ※ changelog 2023-07以降 { customerSegmentMembers(first: 1, query: "") { totalCount } } 2023-07より前...

  • Shopify Vite Plugin でテーマ拡張機能の開発体験を改善する

    Shopify Vite Plugin でテーマ拡張機能の開発体験を改善する

    小笠原 京平

    今回は Barrel が提供する Shopify Vite Plugin を導入して、テーマ拡張機能の開発体験を改善する方法をご紹介します。 対象読者 テーマ拡張機能の開発経験がある方 はじめに Shopifyのテーマ拡張機能 (Theme app extensions) はShopify アプリ開発において、ストアフロントに機能を追加するための機能です。 Liquid、JavaScript、CSSなどを使って開発することができますが、通常のアプリ開発と比較すると、ローカルでの開発体験はそれほどよくありません。 そこで、今回は Shopify Vite Plugin を導入して、開発体験を改善していきます。 Shopify Vite Plugin とは Barrel が提供する Vite用プラグインです。ViteをShopify テーマ開発に組み込んで開発体験を改善することを目的として作られていますが、テーマ拡張機能においてもその恩恵を受けることができます。...

    Shopify Vite Plugin でテーマ拡張機能の開発体験を改善する

    小笠原 京平

    今回は Barrel が提供する Shopify Vite Plugin を導入して、テーマ拡張機能の開発体験を改善する方法をご紹介します。 対象読者 テーマ拡張機能の開発経験がある方 はじめに Shopifyのテーマ拡張機能 (Theme app extensions) はShopify アプリ開発において、ストアフロントに機能を追加するための機能です。 Liquid、JavaScript、CSSなどを使って開発することができますが、通常のアプリ開発と比較すると、ローカルでの開発体験はそれほどよくありません。 そこで、今回は Shopify Vite Plugin を導入して、開発体験を改善していきます。 Shopify Vite Plugin とは Barrel が提供する Vite用プラグインです。ViteをShopify テーマ開発に組み込んで開発体験を改善することを目的として作られていますが、テーマ拡張機能においてもその恩恵を受けることができます。...

  • Shopify Admin API GraphiQLとは? 使い方やメリット・デメリットを解説

    Shopify Admin API GraphiQLとは? 使い方やメリット・デメリットを解説します

    小笠原 京平

    ShopifyのAdmin APIにはGraphQLを用いたAPIがあります。手軽に試す方法としてGraphiQL (GraphQLではなくGraphiQLなのに注意) というIDEがありますので、今回はShopify GraphiQLの使い方やメリット・デメリットを解説します。 GraphiQLとは GraphQL公式が運営しているオープンソースプロジェクトです。GraphQLをブラウザ上でインタラクティブに操作・実行することができます。 グラフィカル (/ˈɡrafək(ə)l/) と発音します。(graphicalと同じ発音) GraphQLとは GraphQLはAPIのためのクエリ言語であり、既存のデータでクエリを実行するためのランタイムです。 GraphQLはAPI内のデータの完全で理解しやすい説明を提供し、クライアントに必要なものだけを要求する力を与え、APIを長期的に進化させることを容易にし、強力な開発者ツールを可能にします。 引用: GraphQL | A query language for your API Shopify GraphiQLの使い方 Shopify GraphiQLは各ストアにアプリをインストールするだけで使えますが、Shopify Devサイト上でデモを触れるので、まずは触ってみましょう! https://shopify.dev/docs/apps/tools/graphiql-admin-api Workshopをやってみよう! Shopifyが作成した「Learn...

    Shopify Admin API GraphiQLとは? 使い方やメリット・デメリットを解説します

    小笠原 京平

    ShopifyのAdmin APIにはGraphQLを用いたAPIがあります。手軽に試す方法としてGraphiQL (GraphQLではなくGraphiQLなのに注意) というIDEがありますので、今回はShopify GraphiQLの使い方やメリット・デメリットを解説します。 GraphiQLとは GraphQL公式が運営しているオープンソースプロジェクトです。GraphQLをブラウザ上でインタラクティブに操作・実行することができます。 グラフィカル (/ˈɡrafək(ə)l/) と発音します。(graphicalと同じ発音) GraphQLとは GraphQLはAPIのためのクエリ言語であり、既存のデータでクエリを実行するためのランタイムです。 GraphQLはAPI内のデータの完全で理解しやすい説明を提供し、クライアントに必要なものだけを要求する力を与え、APIを長期的に進化させることを容易にし、強力な開発者ツールを可能にします。 引用: GraphQL | A query language for your API Shopify GraphiQLの使い方 Shopify GraphiQLは各ストアにアプリをインストールするだけで使えますが、Shopify Devサイト上でデモを触れるので、まずは触ってみましょう! https://shopify.dev/docs/apps/tools/graphiql-admin-api Workshopをやってみよう! Shopifyが作成した「Learn...

  • ブログ記事 Shopifyの必須Webhooks (Mandatory Webhooks)とは? GDPRや対応例など

    Shopifyの必須Webhooks (Mandatory Webhooks)とは? GDPR...

    小笠原 京平

    今回はShopifyアプリ開発を始めたときに詰まるポイントの1つ「必須Webhooks」について解説します。実装をしていなかったり、実装が不十分なためにレビューが通らなかった経験をされた方は多いんじゃないでしょうか?レビューで詰まらないためにも、ぜひご確認ください! Webhooksとは? Shopifyの必須Webhooksを説明する前に、Webhooksについて理解しましょう。Webhooksとは、Webアプリケーションと連携するために用いられるイベント通知の仕組みです。Webhooksを使うことで、あるWebアプリケーションで特定のイベントが起きたときに、データを受け取ったり、何かしらの動作をすることが可能になります。 エンジニアにとって身近な例でいうと、GitHubにコードをプッシュしたときに自動でビルドやテストをするときにWebhooksが使われています。 ShopifyのWebhooks そんなWebhooksはShopifyでも使うことができます。Shopifyアプリ開発では、Shopify Admin APIからWebhooksを使うことができます。また、アプリ以外でもShopify管理画面からWebhookを作成することもできます。 ShopifyのWebhooksにはHTTPSのエンドポイントのほか、Amazon EventBridgeやGoogle Cloud Pub/Subといったメッセージングサービスを使うこともできます。購読するイベントやマーチャントによっては瞬間的に大量のWebhooksを処理する必要があるため、スケールさせやすいメッセージングサービスを使ってWebhooksを処理することをおすすめします。 必須Webhooks (Mandatory Webhooks) とは? 必須Webhooksとは、Shopifyアプリを開発するときに必ず実装しなければならない3つのWebhooksのことです。この3つのWebhooksはGDPRに対応するために必要なWebhooksで、EU加盟国に関わらず、すべてのShopifyアプリはGDPRに準拠しなければなりません。必須Webhooksを実装していない場合、アプリレビューで却下されます。 (3つの必須Webhooks以外のWebhooksは任意で実装すればOKです。) また、必須Webhooksの3つはHTTPSのエンドポイントでのみ作成可能です。上述したEventBridgeやPub/Subを利用することはできません。 GDPRとは? GDPR(General Data Protection Regulation:一般データ保護規則)は、ヨーロッパ連合(EU)の個人情報保護法規で、2018年5月25日から施行されています。これは、EU全域での個人情報のプライバシーを保護し、データの取り扱い方に関して個々の人々により多くの制御権を付与するためのものです。 GDPRは、EU市民または居住者の個人データを処理する全ての組織に適用されます。これには、EU内外の組織も含まれ、EUの市民や居住者のデータを処理する場合、世界のどこにその組織があろうともGDPRの規定を守る必要があります。 GDPRの主な目的は、個人が自分の個人データをどのように収集、保存、使用されるのかを知り、そしてその制御をする権利を持つべきであるという考え方を強化し、統一化することです。これは、個人情報の透明性、アクセスの権利、修正の権利、忘れられる権利(データ削除の権利)、データ移行の権利など、いくつかの重要な権利を個々の人々に付与します。 参考: ChatGPT 必須Webhooksの対応例 上記で説明したように、必須WebhooksとはGDPRに準拠するためのWebhooksなので、顧客情報、ストア情報をデータベースなどに保存しているかどうかで対応方法が変わります。...

    Shopifyの必須Webhooks (Mandatory Webhooks)とは? GDPR...

    小笠原 京平

    今回はShopifyアプリ開発を始めたときに詰まるポイントの1つ「必須Webhooks」について解説します。実装をしていなかったり、実装が不十分なためにレビューが通らなかった経験をされた方は多いんじゃないでしょうか?レビューで詰まらないためにも、ぜひご確認ください! Webhooksとは? Shopifyの必須Webhooksを説明する前に、Webhooksについて理解しましょう。Webhooksとは、Webアプリケーションと連携するために用いられるイベント通知の仕組みです。Webhooksを使うことで、あるWebアプリケーションで特定のイベントが起きたときに、データを受け取ったり、何かしらの動作をすることが可能になります。 エンジニアにとって身近な例でいうと、GitHubにコードをプッシュしたときに自動でビルドやテストをするときにWebhooksが使われています。 ShopifyのWebhooks そんなWebhooksはShopifyでも使うことができます。Shopifyアプリ開発では、Shopify Admin APIからWebhooksを使うことができます。また、アプリ以外でもShopify管理画面からWebhookを作成することもできます。 ShopifyのWebhooksにはHTTPSのエンドポイントのほか、Amazon EventBridgeやGoogle Cloud Pub/Subといったメッセージングサービスを使うこともできます。購読するイベントやマーチャントによっては瞬間的に大量のWebhooksを処理する必要があるため、スケールさせやすいメッセージングサービスを使ってWebhooksを処理することをおすすめします。 必須Webhooks (Mandatory Webhooks) とは? 必須Webhooksとは、Shopifyアプリを開発するときに必ず実装しなければならない3つのWebhooksのことです。この3つのWebhooksはGDPRに対応するために必要なWebhooksで、EU加盟国に関わらず、すべてのShopifyアプリはGDPRに準拠しなければなりません。必須Webhooksを実装していない場合、アプリレビューで却下されます。 (3つの必須Webhooks以外のWebhooksは任意で実装すればOKです。) また、必須Webhooksの3つはHTTPSのエンドポイントでのみ作成可能です。上述したEventBridgeやPub/Subを利用することはできません。 GDPRとは? GDPR(General Data Protection Regulation:一般データ保護規則)は、ヨーロッパ連合(EU)の個人情報保護法規で、2018年5月25日から施行されています。これは、EU全域での個人情報のプライバシーを保護し、データの取り扱い方に関して個々の人々により多くの制御権を付与するためのものです。 GDPRは、EU市民または居住者の個人データを処理する全ての組織に適用されます。これには、EU内外の組織も含まれ、EUの市民や居住者のデータを処理する場合、世界のどこにその組織があろうともGDPRの規定を守る必要があります。 GDPRの主な目的は、個人が自分の個人データをどのように収集、保存、使用されるのかを知り、そしてその制御をする権利を持つべきであるという考え方を強化し、統一化することです。これは、個人情報の透明性、アクセスの権利、修正の権利、忘れられる権利(データ削除の権利)、データ移行の権利など、いくつかの重要な権利を個々の人々に付与します。 参考: ChatGPT 必須Webhooksの対応例 上記で説明したように、必須WebhooksとはGDPRに準拠するためのWebhooksなので、顧客情報、ストア情報をデータベースなどに保存しているかどうかで対応方法が変わります。...

1 6

編集プロセス

EコマースやShopifyの初学者にとって、できるだけ “やさしく” “わかりやすく” “正確に” 難しいコマース用語やマーケティング用語、ストア構築から販売までの仕組み・ノウハウを伝えることを心がけて、記事コンテンツを作成しています。

掲載情報に関して

掲載している各種情報は、株式会社Tsunが経験および、調査した情報をもとにしています。できるだけ“最新“かつ“正確“な情報の掲載に努めておりますが、内容を完全に保証するものではありません。当サイトによって生じた損害について、株式会社Tsunではその賠償の責任を一切負わないものとします。掲載情報に誤りがある場合には、お手数ですが株式会社Tsunまでご連絡をいただけますようお願いいたします。