Webhookイベント
現時点では、Pioと同期を保つうえで重要となるイベントは4つあります。これらの通知は、主に在庫およびフルフィルメントの作成・更新に関連するものです。
-
inventory_log.create:Pio上の商品在庫ログに新しいエントリーがあり、このフックに登録・サブスクライブしている場合、登録したフックのtarget_url宛てにPOSTリクエストが送信されます。ペイロードはこちらで確認できます。 -
inventory_levels.update:Pio上の商品在庫数が更新され、このフックに登録・サブスクライブしている場合、登録したフックのtarget_url宛てにPOSTリクエストが送信されます。ペイロードはこちらで確認できます。
GET /products/:product_idを使用し、商品の最新在庫情報を直接取得することもできます。
-
fulfillments.create:このイベントにサブスクライブしており、注文のフルフィルメントが作成された場合、登録したフックのtarget_url宛てに、こちらで定義されたフルフィルメントペイロードとあわせてPOSTリクエストが送信されます。 -
fulfillments.update:注文が出荷処理されると、複数の状態を経由します。このイベントにサブスクライブしており、注文のフルフィルメントが更新された場合、登録したフックのtarget_url宛てに、こちらで定義されたフルフィルメントペイロードとあわせてPOSTリクエストが送信されます。 -
receivables.update:廃止が予定されています。例はこちらを参照してください。 -
receivables.status_change:廃止が予定されています。例はこちらを参照してください。 -
purchase_orders.update:注文が更新された場合に送信されます。通常、格納処理中に商品が注文と一致した際に生じます。これにより、注文のうち一部の商品が受領されたことが通知されます。例はこちらを参照してください。 -
purchase_orders.sync:ユーザーが注文の同期をリクエストした際に受信します。注文内容をPioと自動で同期する仕組みがない場合であっても、Pioの在庫が不足している際に、手動で変更を取得できます。例はこちらを参照してください。 -
external_transfers.create:転送元と転送先のいずれか一方または両方が外部ロケーションである場合、cause = EXTERNAL_TRANSFERを持つproduct_inventory_logエントリーが作成されます。external_transfers.createは、その外部ロケーションを所有するインテグレーションのみに送信されます。転送元と転送先の両方が外部ロケーションである場合、2つのログエントリー(各ロケーションに1つずつ)が作成され、各ログエントリーに対してexternal_transfers.createというWebhookが送信されます。ただしこれは、各外部ロケーションを所有するインテグレーションにのみ送信されます。つまり、転送元と転送先の外部ロケーションが異なる場合、各インテグレーションで受信されるWebhookはexternal_transfers.create1件のみです。同じインテグレーションに属する場合は、external_transfers.createというWebhookを2件(各ロケーションに対して1件ずつ)受信します。例はこちらを参照してください。