Shopify flowで支払い期限切れの注文を在庫に戻したい(Unpaidの変数について)

Shopify flowでコンビニの支払い期限切れた注文を在庫に戻すフローを組みたいと思っています。

KOMOJUから提供された下記資料通りに組んだのですが、うまくワークしませんでした。

Run historyから注文を確認したところ、支払いなしの注文に対してfalseを返しているようでした。

・Unpaid(支払いが行われていないかどうか)がtrueの場合、支払いなし

・Unpaid(支払いが行われていないかどうか)がfalseの場合、支払いあり

と理解していたのですが、こちらが逆になりますでしょうか?

もし違っていた場合に、支払い済みのお客様のオーダーをキャンセルしてしまうため、質問させていただきました。

よろしくお願いいたします。

・Unpaid(支払いが行われていないかどうか)がtrueの場合、支払いなし

・Unpaid(支払いが行われていないかどうか)がfalseの場合、支払いあり

と理解していたのですが、こちらが逆になりますでしょうか?

逆というわけではないように思われました。

おそらく、Komojuのコンビニ払いは支払いステータスが「保留中の決済」になるかと思います。

私は、Komojuを導入していませんので、同様に「保留中の決済」となる銀行振込で試してみました。

質問者様と同様に、支払いステータスが「保留中の決済」の時、

order.unpaidはfalseになりました。

しかし、

クレジットカードで即時決済を行った場合も、同様に、

order.unpaidはfalseになりました。

したがって、

order.unpaidの値は、

支払いが完了しているかどうかでは変化しない可能性があります。

海外のShopifyコミュニティの投稿に興味深いものがありました。

https://community.shopify.com/topic/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

ご参考まで。

(キュー田辺)

order.unpaidの値が支払い状況で変化しない可能性は考えておらず、盲点でした。
order.displayFinancialStatusを使用し、下記の設定で無事に解決いたしました。

ご返信ありがとうございました。

2 Likes