表題の通り、SOY Shopで自動注文無効プラグインを作成しました。

と記載したものの、自動で注文を無効にすることの一体何が良いのかわからないと思います。


ここでSOY Shopのクレジットカード決済周りの仕様を紹介すると、


pay_jp_usage_soyshop2

SOY ShopでPAY.JPクレジットカード支払いモジュールを作成しました


公開側の画面で商品をカートに入れ、注文の手続きを行い、支払い方法をクレジットカード支払いにして更に手続きを進める。


pay_jp_usage_soyshop3


カートの中身や手続きの内容の確認の画面の次にカード番号の入力画面になりますが、ここでカードで支払いをせずに画面を閉じると、注文状態が仮登録でデータベースに挿入されつつ、商品の在庫が手続き分だけ減ります。


上記の仕様にしている理由は、カード番号の入力の操作というのは少々時間を要していて、カード番号の入力中に他のお客様が注文して、商品の在庫がなくなることを防ぐ為に、クレジットカードで支払いをされる方向けに在庫を確保しておく事にしています。


ここで一つ問題があって、クレジットカード支払いを完了させる前にブラウザを閉じると、注文が確定していないにも関わらず在庫だけが減るという問題が残ります。

この問題を回避するために、自動注文無効プラグインというものを作成しました。


このプラグインで出来ることは、注文状態の仮登録を無効注文に自動で変更するまでの時間設定で任意の時間より前の仮登録の注文をすべて無効にします。

クレジットカード支払いの入力から支払いを5分だと仮定して、今より5分前の仮登録注文はすべて無効にして、仮登録で減少した商品の在庫を戻す事が出来るようになります。


今回対応分を含んだパッケージは下記のサイトからダウンロード出来ます。

https://saitodev.co/soycms/soyshop/