xhls
1
Shopify flowでコンビニの支払い期限切れた注文を在庫に戻すフローを組みたいと思っています。
KOMOJUから提供された下記資料通りに組んだのですが、うまくワークしませんでした。
Run historyから注文を確認したところ、支払いなしの注文に対してfalseを返しているようでした。
・Unpaid(支払いが行われていないかどうか)がtrueの場合、支払いなし
・Unpaid(支払いが行われていないかどうか)がfalseの場合、支払いあり
と理解していたのですが、こちらが逆になりますでしょうか?
もし違っていた場合に、支払い済みのお客様のオーダーをキャンセルしてしまうため、質問させていただきました。
よろしくお願いいたします。
Qcoltd
2
・Unpaid(支払いが行われていないかどうか)がtrueの場合、支払いなし
・Unpaid(支払いが行われていないかどうか)がfalseの場合、支払いあり
と理解していたのですが、こちらが逆になりますでしょうか?
逆というわけではないように思われました。
おそらく、Komojuのコンビニ払いは支払いステータスが「保留中の決済」になるかと思います。
私は、Komojuを導入していませんので、同様に「保留中の決済」となる銀行振込で試してみました。
質問者様と同様に、支払いステータスが「保留中の決済」の時、
order.unpaidはfalseになりました。
しかし、
クレジットカードで即時決済を行った場合も、同様に、
order.unpaidはfalseになりました。
したがって、
order.unpaidの値は、
支払いが完了しているかどうかでは変化しない可能性があります。
海外のShopifyコミュニティの投稿に興味深いものがありました。
https://community.shopify.com/c/shopify-apis-and-sdks/graphql-orders-fullypaid-true-returns-orders-pending-payment/td-p/564473
Shopify Flowは、基本的に、APIの仕様に則っていたと記憶していますので、
上記の投稿の情報をShopify Flowの話にも適用できるかと思います。
上記の投稿によると、
pending(保留中の決済)の時、order.unpaidはfalseとなる、
そうです。
これがバグかどうかはともかく、
「保留中の決済」は、order.unpaidがfalseになるというのは間違いないということだけは言えそうです。
そうしますと、
order.unpaidを条件分岐として利用するのは危険そうです。
Komojuのヘルプページにある通り、
https://komoju-ja.helpscoutdocs.com/article/636-shopify-flow
STATUSを利用されるのが良いかと思います。
しかし、
Komojuのヘルプページは少し古いようですね。
現在は、下記を使われるのが良いのではないかと思います。
order.displayFinancialStatus
ご参考まで。
(キュー田辺)
xhls
3
order.unpaidの値が支払い状況で変化しない可能性は考えておらず、盲点でした。
order.displayFinancialStatusを使用し、下記の設定で無事に解決いたしました。
ご返信ありがとうございました。
2 Likes