【Shopify.dev和訳】Apps/Shopify POS/Product recommendations ext
この記事について
この記事は、Apps/Shopify POS/Product recommendations extensionの記事を和訳したものです。
記事内で使用する画像は、公式ドキュメント内の画像を引用して使用させていただいております。
Shopify アプリのご紹介
Shopify アプリである、「商品ページ発売予告アプリ | リテリア Coming Soon」は、商品ページを買えない状態のまま、発売日時の予告をすることができるアプリです。Shopify で Coming Soon 機能を実現することができます。
Shopify アプリである、「らくらく日本語フォント設定|リテリア Font Picker」は、ノーコードで日本語フォントを使用できるアプリです。日本語フォントを導入することでブランドを演出することができます。
プロダクトレコメンデーションの拡張
POS 製品推奨拡張機能をアプリに追加して、マーチャントが Shopify POS 内から製品推奨にすばやく簡単にアクセスできるようにすることができます。
製品または顧客がカートに追加された後、製品の推奨事項がスマートグリッドに表示されます。推奨事項には、顧客プロファイルまたは製品の詳細を表示するときにもアクセスできます。
要件
- 開発ストアを作成しました。
- パブリックアプリまたはカスタムアプリを作成しました。
- アプリを Shopify POS に埋め込みました。
アプリの拡張機能を構成する
パートナーダッシュボードから POS 製品推奨拡張機能を構成できます。
- パートナーダッシュボードに移動します。
- サイドバーで、アプリをクリックします。
- アプリ名をクリックします。
- 拡張機能をクリックします。
- ShopifyPOS をクリックします。
- POS 製品の推奨事項の管理をクリックします。
- POS 製品推奨拡張エンドポイントの構築に使用される URL パスを入力します。
- 保存をクリックします。
たとえば、アプリのベース URL がでhttps://myapp.com
あり、URL path
がpos-extension-api
である場合、拡張機能は次のエンドポイントを使用します。
https://myapp.com/pos-extension-api/recommendations
https://myapp.com/pos-extension-api/recommendations_shown
https://myapp.com/pos-extension-api/action_taken
エンドポイントを作成します
アプリがアプリ拡張機能を介して Shopify と通信できるようにするには、アプリのプライマリドメインで標準化された API エンドポイントをホストする必要があります。これらのエンドポイントは、Shopify POS が関連するアクションを実行するときに呼び出されます。
エンドポイント要件
次の表は、POS 製品推奨アプリ拡張機能の要件を示しています。
ルール/懸念 | タイプ/要件 |
---|---|
API フォーマット | REST |
リクエストメソッド | POST |
コンテントタイプ | JSON |
セキュリティメカニズム |
セッショントークン。セッショントークンは、すべてのリクエストでAUTHORIZATION ヘッダーで提供されます。トークンを使用すると、リクエストが Shopify からのものであることを確認し、リクエストを行っているショップのドメインを提供できます。 |
プロトコル | HTTPS (アプリドメインには有効な SSL 証明書が必要です) |
リクエストへの対応
recommendations
エンドポイントへのすべてのリクエストは 3 秒以内に応答する必要があります。そうしないと、Shopify は通話をタイムアウトし、マーチャントにエラーを返します。これは、Shopify POS エクスペリエンスが遅くなるのを防ぐためです。
ベースエンドポイント
アプリは、POS カートアプリ拡張機能の 3 つの API エンドポイント呼び出しをサポートする必要があります。これを行うには、Shopify によって呼び出される完全な URL を形成するために、アプリのベース URL に追加されるパスセグメントを提供する必要があります。パートナーダッシュボードからアプリ拡張機能を構成することで、パスセグメントを追加できます。
アプリ拡張アーキテクチャ
POS 製品推奨拡張機能は、次の 3 つのエンドポイントに基づいています。
recommendations
recommendations_shown
action_taken
以下のすべてのエンドポイントの詳細については、POS 製品推奨拡張エンドポイントを参照してください。
推奨エンドポイント
Shopify POSrecommendations
は、次のアクションに応答してアプリのエンドポイントにリクエストを送信します。
- 販売者は商品をカートに追加します。
- カートの顧客が変わります。
- マーチャントは製品の詳細を表示します。
- マーチャントは顧客プロファイルを表示します。
リクエストには、Shopify にデータを返すときにアプリが使用できるサポートされているテンプレートが含まれています。アプリの応答には、選択したテンプレートと、ShopifyPOS でそのテンプレートにデータを入力するために必要なデータが含まれます。レコメンデーションエンドポイントへのリクエストは、レコメンデーションがマーチャントに表示されることを意味するものではありません。recommendations_shown
要求は、そのイベントを通知するために送信されます。
以下は、recommendations
エンドポイントへのリクエストの例です。
{
"request_uuid": "b6fb9cf1-92fd-4ef5-888e-cfe5fb795d75",
"surface": "cart",
"customer_id": 1234,
"elements": [
{
"product_id": 456,
"variant_id": null
},
{
"product_id": 789,
"variant_id": 333
}
],
"supported_templates": ["grouped_product_variant_list"],
"locale": "en-us"
}
以下は、選択したテンプレートタイプと、カスタムタイトルでグループ化された製品またはバリアントのリストを含む応答の例です。回答は、「よく一緒に購入する」グループと「関連製品」グループの下で推奨事項を提供します。これらのグループのタイトルは、選択したものに設定できます。
{
"template": "grouped_product_variant_list",
"title": "3 recommended products",
"groups": [
{
"title": "Frequently bought together",
"elements": [
{
"product_id": 999,
"variant_id": null
},
{
"product_id": 987,
"variant_id": 444
}
]
},
{
"title": "Related products",
"elements": [
{
"product_id": 654,
"variant_id": null
}
]
}
]
}
次の例は、返された応答がどのようにレンダリングされるかを示しています。
Recommendations_shown エンドポイント
Shopify POSrecommendations_shown
は、マーチャントがスマートグリッド、顧客プロファイル、または製品の詳細の推奨タイルをタップすると、アプリのエンドポイントにリクエストを送信します。
このリクエストは、マーチャントに表示される推奨事項の完全なリストに対応しています。
リクエストには、元のリクエストとともにrecommendations
エンドポイントに送信されたものと同じrequest_uuid
値が含まれています。
以下は、recommendations_shown
エンドポイントへのリクエストの例です。
{
"request_uuid": "b6fb9cf1-92fd-4ef5-888e-cfe5fb795d75"
}
このリクエストに応答する必要はありません。その目的は、あなたの推薦がマーチャントに示されるかどうか、そしていつ示されるかをあなたに知らせることです。
action_taken エンドポイント
Shopify POS はaction_taken
、マーチャントが推奨製品の 1 つをカートに追加した場合、およびそのカートが販売を完了した場合に、アプリのエンドポイントにリクエストを送信します。
リクエストには、元のリクエストでrecommendations
エンドポイントに送信されたものと同じrequest_uuid
値が含まれています。また、Shopify POS がカートに追加されている商品、または推奨商品が販売されたことを通知していることを示すaction
フィールドも含まれています。
以下は、action_taken
エンドポイントへのリクエストの例です。
{
"request_uuid": "b6fb9cf1-92fd-4ef5-888e-cfe5fb795d75",
"action": "added_to_cart",
"elements": [
{
"product_id": 987,
"variant_id": 444
}
]
}
以下は、販売されている推奨製品を示すこのリクエストの別の例です。
{
"request_uuid": "b6fb9cf1-92fd-4ef5-888e-cfe5fb795d75",
"action": "order_created",
"order_id": 654
}
このリクエストに応答する必要はありません。その目的は、推奨製品がカートに追加されて販売されたかどうか、またいつ販売されたかを通知することです。
検証を実装する
アプリ拡張リクエストが Shopify からのものであることを確認するには、AUTHORIZATION
すべてのリクエストのヘッダーで提供されているセッショントークンを検証します。詳細については、セッショントークンを使用した埋め込みアプリの認証を参照してください。
次のステップ
- アプリが Shopify に送信するテンプレートとアクションの応答フィールドと可能な値など、POS 製品推奨アプリ拡張エンドポイント呼び出しごとに Shopify がアプリに送信するフィールドについて学習します。
Shopify アプリのご紹介
Shopify アプリである、「商品ページ発売予告アプリ | リテリア Coming Soon」は、商品ページを買えない状態のまま、発売日時の予告をすることができるアプリです。Shopify で Coming Soon 機能を実現することができます。
Shopify アプリである、「らくらく日本語フォント設定|リテリア Font Picker」は、ノーコードで日本語フォントを使用できるアプリです。日本語フォントを導入することでブランドを演出することができます。
Discussion