クレジットカードのモジュールを使った場合のバグですが、 購入画面からクレジットカード決済のリンクに遷移すると、EC-CUBE的には、「決済処理中」という受注レコードが作成されます。
この状態で、カード決済を完了させないまま、注文をやめてしまうと、「決済処理中」のままの受注がそのまま残ってしまいます。
これが、お客様がマイページで購入履歴を見るときにも、決済途中でやめてしまった(注文完了していない)履歴が残ってしまいます。 注文していないのに、購入履歴に出るのは、紛らわしいですし、おかしいですよね。
また、管理画面のホーム(ログイ後最初に見る画面)でも、「新規受付一覧」が表示されますが、ここにも「決済処理中」の注文も表示されてしまいます。
「昨日の売上高」「今月の売上高」の合計金額にも「決済処理中」の注文まで含まれて計算されてしまいます。
これは使いづらい・・・。
どう考えてもバグだと思うのですが、「EC-CUBE的にはこれは仕様であり、バグではない」そうです。
使いづらいので、ここをフロント側のマイページにも管理画面のホームにも表示させないようにします。(本当は集計も変えないといけないのですが、ちょっと面倒なので今回はパスします)
class/pages/mypage/LC_Page_Mypage.phpの129行目あたりを修正
1 |
$where = 'del_flg = 0 AND status!=7 AND customer_id = ?'; |
SQL文に AND status != 7と追記することで、statusが7(決済処理中)の場合は除外する設定にします。 これで、マイページには表示されないようになりました。
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.phpの105行目あたり
1 |
. 'WHERE del_flg = 0 AND status!=7 ' |
これも同様に、SQL文でstatusが決済処理中な物を除外します。
data/class/pages/admin/LC_Page_Admin_Home.tplの247行目あたり
1 |
del_flg = 0 AND status != 7 AND status <> ? |
ここを
1 |
del_flg = 0 AND status != 7 AND status <> 7 |
とへんこうすれば、OKです。