Shopify 新APIにおける期限の取扱い
Shopify の新しい API では、注文 (order) と決済 (payment/transaction) は、別個の概念として取り扱われています。そのため、注文と決済のステータスは必ずしも連動していません。
Shopify における決済には 72 時間の期限が設けられています。しかしこの期限は決済にのみ適用されるため、注文には反映されません。したがって、注文作成から 72 時間が経過すると、 Shopify の決済は "期限切れ" になりますが、注文はキャンセルされず有効のまま残ります。
結果、以下のような挙動が生じます:
- 注文作成から 72 時間が経っても、注文自体は有効なため、決済が期限切れだったとしても確保されている在庫は放出されません。 (在庫に戻りません。)
- Shopify 上で決済が期限切れとなった場合、購入者は当該注文に対してマイページや注文詳細ページから再度支払いを行えるようになります。再支払に成功すると、その注文は支払い済み未発送の状態になります。
- Shopify 上で期限切れの決済として扱われていても、 KOMOJU 側では有効な決済となっている場合、当該決済に対して入金が行われると、有効な入金として Shopify の注文が支払い済み未発送の状態に切り替わります。特筆すべきこととして、 KOMOJU のコンビニ決済の有効期限はデフォルトで支払い番号発行から 3 日目の終日としておりますので、日付が変わった直後の決済などは最長で 96 時間弱有効となります。結果、 Shopify の決済は期限切れ・ KOMOJU の決済は入金待ちの状態となる期間が 24 時間程度ある場合があり、この間は期限切れ決済に対し入金が完了する可能性がございます。
対策としては、以下が有効です:
- 決済の期限切れと同じタイミングで注文のキャンセル処理を行う。これにより、決済の期限が切れたタイミングで在庫を放出し、当該注文へのそれ以降の入金ができないようになります。キャンセル処理を行う方法としては、 Shopify の管理画面で手動でキャンセルする方法と、 Shopify Flow を使用して自動でキャンセルする方法の 2 つがあります。
- KOMOJU で設定する支払い期限を 2 日に変更する。これにより、 KOMOJU の決済が先に期限切れるようになり、 Shopify 上での決済期限切れより後に注文への入金ができてしまうのを防ぐことができます。詳細はこちらをご覧ください: 【コンビニ】支払い期限を変更する方法
なお、 2022 年 7 月末で Shopify の旧 API (HPSDK) は停止されています。