thumbnail

親注文の支払い確定時に子注文を支払い済みにする方法|Shopify Flow


本ページでは、親注文の決済状況が「支払い済み」になったときに、ひも付く子注文も自動で「支払い済み」にするShopify Flowの設定手順をご案内します。

以下のFlowファイルをインポートするとShopify Flowを設定できます。

親注文の支払い済み時に子注文を支払い済みにする.flow
4.9KB


子注文の決済状況が「保留中」になっていて、そのまま発送してよいか判断できない場合に使います。

以下の支払い方法では、決済の確定が購入後になるため、子注文が「保留中」と表示されることがあります。

  • d払い

  • auかんたん決済

  • ソフトバンクまとめて支払い

  • 楽天ペイ

  • 銀行振込

  • 代金引換

  • コンビニ決済

子注文の決済ステータスが「決済保留中」と表示されるケース

親子注文機能ガイド > 子注文の決済ステータスが「保留」と表示されるケース 概要 --- 本ページでは、親子注文を利用している際に子注文の決済ステータスが「決済保留中」と表示される原因と対応方法をご案内います。 1.子注文の決済ステータスが「決済保留中」と表示されるケース --- 子注文は、親注文が作成された時点の決済ステータスで生成されます。 その後、親注文で決済が成功しても子注文側の決済ステータスは更新されません そのため、子注文は「決済保留中」のまま表示されることがありますが、実際の決済とは無関係です。 区分 表示される内容 何が起きているか(原因) 実際の状態 店舗側の対応 親注文の決済履歴 - 決済保留中 - → 直後に支払い確定 決済方法の仕様により、決済結果が段階的にShopifyへ返却されている 決済は正常に完了している 対応不要 子注文の決済ステータス - 「決済保留中」のまま表示される 親注文作成時点の決済ステータスを引き継ぐため、後から更新されない 請求処理は親注文のみで行われており、未決済ではない 対応不要 結論として、親注文側で決済が成功していれば未請求にはな


eギフトは支払い方法にかかわらず、購入直後にeギフトURLが発行されます。

後払い決済を利用した場合、支払いが確定する前に受取者がeギフトを受け取れる可能性があります。そのため、All in giftでは後払い決済の支払い方法を非表示にすることを推奨しています。設定方法は、以下のヘルプページをご確認ください。

銀行振込・代金引換・コンビニ決済の非表示設定:eギフト

概要 --- eギフト購入時に、銀行振込・代金引換(Cash on Delivery)・コンビニ決済を支払い方法から非表示にできます。これにより、eギフトに適さない支払い手段をお客様に表示せず、スムーズな購入体験を提供できます。 注意点 - その他の決済方法を個別に非表示にする機能は提供しておりません。 - 決済方法を個別に選択して非表示にすることはできません。 - 本機能を有効にした場合、上記3つの決済方法がすべて非表示となります。 ポイント - 通常注文では全ての支払い方法が表示されます - こちらの設定を有効化した場合、eギフト購入時には決済代行会社に関わらず決済方法名に「銀行振込」または「コンビニ」を含む決済方法は非表示となります。 - 設定は後から無効化することが可能です 設定手順の概要 --- 1. Shopify GraphiQLアプリをインストール 2. GraphiQLで支払い方法のカスタマイズを作成 3. 設定の確認 ご利用イメージ --- 例:銀行振込・代金引換をご利用時 - 通常購入時(eギフト以外):銀行振込・代金引換も選択可能 - eギフト購入時:銀行振込・


以下の順でブロックを配置します。

  1. トリガー:Order paid

  2. Condition(親注文かどうか):True のみ継続

  3. Get order data(子注文の取得)

  4. For each(子注文を1件ずつ処理)

  5. Condition(処理対象の子注文かどうか):True のみ継続

  6. Send Admin API request(子注文を支払い済みにする)


事前に、Shopify管理画面 > アプリ > Flow に進み、ワークフローを作成 から新規ワークフローを作成してください。以降、各ステップのブロックを順に追加します。

ワークフローの起点です。注文が支払い済みになると起動します。

項目

設定値

トリガー

Order paid

起動した注文が親注文の場合のみ、処理を続けます。

項目

設定値

条件

order.tags に 親注文 が含まれる

True の場合

ステップ3へ進む

False の場合

何もしない(終了)

注意点:この条件は必ず設定してください

子注文が支払い済みになると、子注文でも Order paid トリガーが起動します。この条件があることで、子注文では処理が止まり、同じ処理が繰り返されるのを防げます。

親注文にひも付く子注文を検索して取得します。

項目

設定値

検索クエリ

tag:"{{order.legacyResourceId}}:子注文"

取得件数の上限

100

{{order.legacyResourceId}} には、親注文のID(数字)が入ります。

ステップ3で取得した子注文を、1件ずつ処理します。

項目

設定値

繰り返す対象

ステップ3で取得した注文の一覧

以下をすべて満たす子注文のみ、支払い済みにします。

条件

設定値

キャンセルされていない

cancelledAt が空

支払い済みではない

displayFinancialStatus が PAID ではない

子注文を支払い済みにします。

項目

設定値

Mutation

orderMarkAsPaid

Mutation input(入力値):

Plaintext
{
  "input": {
    "id": "{{getOrderDataForeachitem.id}}"
  }
}

※ getOrderDataForeachitem は、For each で処理中の子注文を表す変数名です。環境によって名称が異なる場合は、Flowの変数選択から該当する注文の id を選んでください。


運用を始める前に、以下の手順でテストを行ってください。

  1. ワークフローを オン にする

  2. 決済状況が「保留中」になる支払い方法(銀行振込など)で、テスト注文を行う

  3. 親注文と子注文が生成され、子注文の決済状況が「保留中」になっていることを確認する

  4. 親注文を手動で支払い済みにする

  5. 子注文がすべて「支払い済み」になることを確認する

ケース

原因

対応

子注文が支払い済みにならない

子注文の決済状況が「保留中」ではない

orderMarkAsPaid は未払いの注文にのみ使えます。子注文の決済状況を確認する

一部の子注文だけ支払い済みにならない

子注文が100件を超えている

取得件数の上限を超えた子注文は、手動で支払い済みにする

ワークフローが起動しない

親注文が「支払い済み」ではなく「一部支払い済み」になっている

親注文の決済状況を確認する。Order paid は全額が支払われたときに起動します


  • 本Flowは、ShopifyのAdmin APIアクション(orderMarkAsPaid)を使用します

  • タグを手動で変更すると、親子注文のひも付けが崩れ、自動処理されない場合があります

  • 設定後は ワークフローをテスト で動作を確認してから、ワークフローを オン にすることを推奨します