【EC-CUBE4系】最低購入金額を設定する

EC-CUBE4系で、最低購入金額を設定する仕組みを実装します。
カートに商品を入れた時と購入確認画面で商品の小計を計算して、
最低購入金額以下であれば、購入ができないような仕組みにします。

また、今回は複数の届け先には非対応のサイトを対象にしていますが、
大半の処理はそのまま使えるので、ぜひ参考にして頂ければと思います。

まず、管理画面 > 基本設定 > 店舗設定 に
最低購入金額を設定する項目を作るため、
データベースを拡張し、テンプレートにフォーム項目を設定します。

まずはtraitの実装です。

実装できたら、次はこの定義をデータベースに反映します。

データベースに反映ができたら、
テンプレート(shop_master.twig)を編集します。

これで最低購入金額がデータベースに登録できるようになります。

次はカートページや購入確認ページで、
金額のチェックをするProcessorを作ります。
複数の送り先に対応させる場合は、ここの処理を変更してください。

あとは、このProcessorをカートページと購入確認ページで動作するよう、
purchaseflow.yamlを編集します。

これでそれぞれのページで、購入商品が最低金額に達していない場合は、
min_purchase_errorに設定してある金額が入るようになったので、
あとはその値を画面に表示して、
ユーザに最低金額に達していない旨を知らせたり、
それを使って、購入ボタンを押せないようにしたり、
カートページに戻してあげたりすればOKです。

ABOUTこの記事をかいた人

フリーランスとして働く、フルスタックエンジニア 初崎 匠のサイト。仕事のことから趣味のアニメーション制作、英語学習など、様々なことを通じて、少しでも多くの人が幸せになれるような価値を提供できるよう挑戦し続けます。