Shopify Flowを利用する

外部連携を行うためにVIPが提供するShopify Flowの機能詳細についてまとめました。

ドキュメント

冪等性について

検討事項

Omni Hubより前にVIPをインストールしていた際にどうやってポイントをずらすことなく連携するかは要検討。BAKEさんは大丈夫なので、そういうマーチャントさんが出た時に再検討する
  • 連携中のポイント付与及び利用を停止して、その間に移行を行う。
  • ポイント移行を行っている間の時間に注文した顧客IDだけポイントをFlowを使って再連携する
顧客のポイント保有情報を送る

このトリガーはアクション経由で発火されます。アクションが受け取った顧客IDのポイント情報を送信します。

送信されるデータ

  • 利用可能ポイント
  • 付与予定ポイント
  • 保有ポイント
  • 総獲得ポイント
  • 総利用ポイント
  • 確保中ポイント
顧客IDでポイント情報のトリガーを発火する

特定の顧客IDでその顧客のポイント情報を取得したい時に利用することができるアクションです。このアクションを実行すると渡された顧客IDのデータがトリガーで送信されます。

必要なインプット

  • Shopifyの顧客ID (gid://shopify/Customer123456 のフォーマット)

ポイントの説明

利用可能ポイント

Flow Property Name: Points Approved (Number)

顧客に付与が確定されていて、利用することができるポイントです。

付与予定ポイント

Flow Property Name: Points Pending (Number)

顧客に付与が予定されているポイントです。付与が確定され次第、利用可能ポイントに含まれます。

保有ポイント

Flow Property Name: Points Total (Number)

顧客が保有しているポイント総数です。これは 利用可能ポイント + 付与予定ポイント と同じ数値になります。

総獲得ポイント

Flow Property Name: Points Lifetime (Number)

顧客がこれまでに獲得したポイント総数です。既に期限が切れているポイントや消費したポイントは含まれず、顧客に対して追加されたポイントの総数となります。

総利用済ポイント

Flow Property Name: Points Spent (Number)

顧客がこれまでに利用したポイント総数です。

確保中ポイント

Flow Property Name: Points Hold (Number)

顧客がオンラインストアやモバイルアプリから利用しようとしているポイントです。確保中のポイントが存在する場合、そのポイント数と同額のディスカウントがShopify上で作成されています。二重支払いを防ぐために、確保中のポイント分は利用可能ポイントからマイナスされます。確保中のポイントは顧客が明示的にUI上で解除するか、ディスカウントを利用しないまま10分が経過したタイミングで解放され、0に戻ります。

トリガー

ポイントが変更された時に最新のポイント情報を送信する (次回以降の提供)

このトリガーは顧客のポイントに変更があった場合に発火されます。変更後の顧客の最新ポイント数を送信します。

送信されるデータ

  • 利用可能ポイント
  • 付与予定ポイント
  • 保有ポイント
  • 総獲得ポイント
  • 総利用ポイント
  • 確保中ポイント
利用可能ポイントが変更された時に差分を送信する

このトリガーは顧客の利用可能ポイントに変更が起きた時に発火されます。

送信されるデータ

  • 対象の顧客
  • このポイント変更の対象となる顧客がトリガーに含まれます。 Flowがトリガーに指定されたCustomerIDから顧客を設定してくれます。

  • 変更のトピック
    • points/add/order
    • Shopifyの注文作成イベントでポイントが付与された。付与予定から付与済みになった場合もこのトピックになる。

    • points/add/sign_up
    • Shopifyの顧客作成イベントでポイントが付与された。

    • points/add/manual
    • VIP管理画面からマーチャントによってポイントが付与された。

    • points/add/hold
    • 確保されていたポイントが解放され、減算された分のポイントが戻された。

    • points/sub/flow
    • Shopify Flowのアクションからポイントが消費された。

    • points/sub/expire
    • ポイントの有効期限がすぎてポイントが失効した。

    • points/sub/hold
    • Shopifyのチェックアウト、もしくはモバイルアプリやShopify POSからポイント利用を行うためにポイントが確保されて一時的に減算された。

    • points/sub/refund
    • 注文作成イベントで付与済みになった分のポイントが返金により戻された。

    • points/sub/manual
    • VIP管理画面からマーチャントによってポイントが減算された。

  • 変更されたポイントの差分
  • 加算分のポイントは正数、減算分のポイントは負数で送信されます。

  • 変更されたポイントの差分の絶対値(次回以降の提供)

アクション

ポイントの消費を行う

顧客のポイントを消費することができるアクションです。

必要なインプット

  • ポイント消費の理由 (「商品購入」など、アプリやウェブサイトに表示される)
  • Shopifyの顧客ID (gid://shopify/Customer123456 のフォーマット)
  • 消費するポイント数
ポイントの付与を行う (次回以降の提供)

顧客にポイントを付与することができるアクションです。

必要なインプット

  • ポイント付与の理由 (「返品分」など、アプリやウェブサイトに表示される)
  • Shopifyの顧客ID (gid://shopify/Customer123456 のフォーマット)
  • 付与するポイント数