【Shopify.dev和訳】Apps/Fulfillment/FulfillmentOrder migration
この記事について
この記事は、Apps/Fulfillment/FulfillmentOrder migrationの記事を和訳したものです。
記事内で使用する画像は、公式ドキュメント内の画像を引用して使用させていただいております。
Shopify アプリのご紹介
Shopify アプリである、「商品ページ発売予告アプリ | リテリア Coming Soon」は、商品ページを買えない状態のまま、発売日時の予告をすることができるアプリです。Shopify で Coming Soon 機能を実現することができます。
Shopify アプリである、「らくらく日本語フォント設定|リテリア Font Picker」は、ノーコードで日本語フォントを使用できるアプリです。日本語フォントを導入することでブランドを演出することができます。
フルフィルメントオーダー移行ガイド
Fulfillment リソースと Order リソースを別々に使用するのではなく、FulfillmentOrder リソースを使用すると、フルフィルメントを管理する方法をより細かく制御することができます。Fulfillment リソースと Order リソースを使用して注文を処理することは、従来の動作であり、最新のワークフローとは互換性がありません。すべてのお客様は、フルフィルメントを管理するために FulfillmentOrder を使用する必要があります。フルフィルメント注文には、次のような利点もあります。
- フルフィルメントを行うべき場所を決定するために、未達成のラインアイテムのグループの割り当てられた場所を取得することができます。
- フルフィルメントが必要なアイテムを決定する前に、SKU を照合したり、該当しないオーダーのアイテムをフィルタリングしたりする必要がなくなります。
- 販売者とアプリは、フルフィルメントプロセス全体のコミュニケーションを向上させるために、要求にメモを追加することができます。
- フルフィルメントとキャンセルの要求のプロセスが正式になりました。
FulfillmentOrder リソースでフルフィルメントを管理するようにアプリを移行するには、いくつかの追加権限を要求する必要があります。要求する必要のある権限は、構築するアプリの種類によって異なります。
既存のインストールでは、販売者がアプリを再インストールすることなく、追加の許可を要求できます。
アプリの許可の更新
- 要求する必要のある追加許可を決定します。これらは、お客様が構築するアプリのタイプによって異なります。
-
フルフィルメントサービスアプリの許可
- 自分のロケーションに割り当てられたフルフィルメント注文を管理するための
write_assigned_fulfillment_orders
の読み取りおよび書き込み許可
- 自分のロケーションに割り当てられたフルフィルメント注文を管理するための
-
注文管理アプリのための許可。
- 販売者管理されたロケーションに割り当てられたフルフィルメントオーダーを管理するための
merchant_managed_fulfillment_orders
に対する読み取りまたは書き込みの許可 - 販売者の代わりにサードパーティのフルフィルメント注文を管理するための
third_party_fulfillment_orders
に対する読み取りまたは書き込み権限
- 販売者管理されたロケーションに割り当てられたフルフィルメントオーダーを管理するための
- 新規インストールの場合は、OAuth プロセスの一部としてアプリが要求する許可に追加のスコープを含めます。
- 既存のインストールでは、以下で説明する
/admin/request_granular_access_scopes
エンドポイントを使用して、販売者がアプリを再インストールすることなく、追加のスコープを要求します。
既存のインストールへの追加スコープの要求
アプリの既存のインストールでは、販売者がすでにread_fulfillments
またはwrite_fulfillments
を付与している場合は、新しい許可への同意を求める必要はありません。代わりに、以下のエンドポイントを使用して、個々のショップのインストールに対して、きめ細かいアクセススコープのサブセットを要求することができます。
read_fulfillments
は持っているがwrite_fulfillments
は持っていない場合は、read_*
スコープのみを要求することができます。
POST /admin/request_granular_access_scopes.json
既存のインストールに、既存のアクセススコープの粒度の高いバージョンを追加します。要求の本文には、以下のリストにあるスコープの配列を含める必要があります。
- read_assigned_fulfillment_orders
- read_merchant_managed_fulfillment_orders
- read_third_party_fulfillment_orders
- write_assigned_fulfillment_orders
- write_merchant_managed_fulfillment_orders
- write_third_party_fulfillment_orders
既存のインストールに単一の粒度の高いアクセススコープを追加する
POST /admin/request_granular_access_scopes.json
{
"requested_scopes": ["write_assigned_fulfillment_orders"]
}
View Response
HTTP/1.1 200 OK
{
"access_scopes": [
{
"handle": "write_fulfillments"
},
{
"handle": "write_assigned_fulfillment_orders"
}
]
}
適切なスコープにアクセスできるようになると、Fulfillment Orders を注文管理アプリやフルフィルメントサービスアプリとして使用してフルフィルメントの管理を開始できます。
フルフィルメントサービスの移行
従来のフルフィルメントサービスと、フルフィルメントオーダーを利用したフルフィルメントサービスには、いくつかの違いがあります。これらの違いは以下の通りです。
- フルフィルメントが要求された場合、Shopify はフルフィルメントサービスのために保留中のフルフィルメントを自動的に作成しません。
- フルフィルメントオーダーがインポートされた場合、Shopify はフルフィルメントサービスに対して保留中のフルフィルメントではなく、成功したフルフィルメントを作成します。
Shopify とアプリの間の通信パターンは変更され、もはや fulfillment/create webhook に依存せず、コールバック URL への明示的な POST に依存します。このコールバック URL は、すべてのフルフィルメントおよびキャンセル要求を処理します。この URL は、GraphQL で fulfillmentServiceUpdate 変異を使用して登録できます。
mutation {
fulfillmentServiceUpdate(
id: "gid://shopify/FulfillmentService/5",
fulfillmentOrdersOptIn: true,
callbackUrl: "https://www.myapp.com/callback_url",
) {
fulfillmentService {
fulfillmentOrdersOptIn
}
}
FulfillmentOrder ベースのフルフィルメントを選択する前に、お客様のアプリは以下の要件を満たす必要があります。
- 割り当てられたすべてのフルフィルメントが完了していること(
PENDING
またはOPEN
の状態のものがないこと)。
緊急時のロールバック措置として、オプトインした後に FulfillmentOrder ベースのフルフィルメントをオプトアウトすることができます。しかし、これを行う前に、お客様のアプリが以下の要件を満たす必要があります。
- すべてのフルフィルメント要求が拒否されていること
- すべてのキャンセル要求が受け入れられること
- 以前に受理されたすべての進行中のフルフィルメント注文は、そのフルフィルメント注文を閉じるか、そのフルフィルメントを作成する必要があります。
assignedFulfillmentOrders
クエリが何の結果も返さない場合、FulfillmentOrder ベースのフルフィルメントから脱退することができるはずです。FulfillmentOrder ベースのフルフィルメントからの脱退は、一時的にしかお勧めできません。
Shopify アプリのご紹介
Shopify アプリである、「商品ページ発売予告アプリ | リテリア Coming Soon」は、商品ページを買えない状態のまま、発売日時の予告をすることができるアプリです。Shopify で Coming Soon 機能を実現することができます。
Shopify アプリである、「らくらく日本語フォント設定|リテリア Font Picker」は、ノーコードで日本語フォントを使用できるアプリです。日本語フォントを導入することでブランドを演出することができます。
Discussion