バージョン選択

フォーラム

メニュー

オンライン状況

54 人のユーザが現在オンラインです。 (45 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 54
もっと...

サイト内検索

質問 > 管理機能 > 売上集計に【新規受付】・【決済処理中】・【入金待ち】が売上として算出されてしまう

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
istn
投稿日時: 2012/3/11 15:29
対応状況: −−−
常連
登録日: 2011/11/10
居住地:
投稿: 31
売上集計に【新規受付】・【決済処理中】・【入金待ち】が売上として算出されてしまう
[EC-CUBE]  2.11.4正式版
[レンタルサーバ] さくらインターネット スタンダードプラン
[OS] FreeBSD 7.1-RELEASE-p16 i386
[PHP]  PHP 5.2.17
[データベース] MySQL 5.5
[WEBサーバ] Apache/1.3.42 (Unix) mod_ssl/2.8.31 OpenSSL/0.9.8e

お世話になっております。

管理画面の売上集計に関してですが、受注ステータスが【新規受付】・【決済処理中】・【入金待ち】も売上の計算に含まれてしまい、銀行振込等で入金がなかった人も計算されてしまいます。
さらに、クレジットカード決済で決済画面でやめてしまった人等が【決済処理中】で止まってしまいそちらも売上に計算されてしまい、正常な金額が表示されません。
この解決法をご教授頂けましたら幸いです。
MPV
投稿日時: 2012/3/11 21:29
対応状況: −−−
仙人
登録日: 2011/3/27
居住地:
投稿: 309
Re: 売上集計に【新規受付】・【決済処理中】・【入金待ち】が売上として算出されてしまう
istn様 初めまして。

売上集計機能のSQLの条件は確認されましたでしょうか?

例えば、期間別集計の場合
data/class/pages/admin/total/LC_Page_Admin_Total.php
の条件は以下の通りです。


    $where .= " AND del_flg = 0 AND status <> " . ORDER_CANCEL;


これをistn様が望まれる条件に変更するというのでは
いかがでしょうか?

ちなみに、管理画面のTOPページに表示される売上は
data/class/db/dbfactory/SC_DB_DBFactory_MYSQL.php
(istn様はMYSQLのようなので)内にSQL文があります。
istn
投稿日時: 2012/3/12 0:27
対応状況: −−−
常連
登録日: 2011/11/10
居住地:
投稿: 31
Re: 売上集計に【新規受付】・【決済処理中】・【入金待ち】が売上として算出されてしまう
いろいろと変更を加えてみましたが、システムエラー等で表示されず手が詰まっております。

どのように変更をすべきなのか全くの初心者でして、分かりませんでした。変更すべき箇所はわかったのですが…変更の仕方が分かりません。申し訳ありません。

尚、売上に含まれたくない情報は下記です。
ID:7 【決済処理中】
ID:1 【新規受付】
ID:2 【入金待ち】
MPV
投稿日時: 2012/3/12 10:23
対応状況: −−−
仙人
登録日: 2011/3/27
居住地:
投稿: 309
Re: 売上集計に【新規受付】・【決済処理中】・【入金待ち】が売上として算出されてしまう
istn様

以下の定義をご参照下さい。

data/mtb_constants_init.php の513〜526行目


/** 新規注文 */
define('ORDER_NEW', 1);
/** 入金待ち */
define('ORDER_PAY_WAIT', 2);
/** 入金済み */
define('ORDER_PRE_END', 6);
/** キャンセル */
define('ORDER_CANCEL', 3);
/** 取り寄せ中 */
define('ORDER_BACK_ORDER', 4);
/** 発送済み */
define('ORDER_DELIV', 5);
/** 決済処理中 */
define('ORDER_PENDING', 7);


これから対象となる定義を除外すればよろしいのでは?
SQLの書き方は(未検証ですが)

data/class/pages/admin/total/LC_Page_Admin_Total.php


$where .= " AND dtb_order.del_flg = 0 AND dtb_order.status <> " . ORDER_CANCEL . " AND dtb_order.status <> " . ORDER_NEW . " AND dtb_order.status <> " . ORDER_PENDING . " AND dtb_order.status <> " . ORDER_PAY_WAIT;


これを以下

・会員別集計
・商品別集計
・職業別集計
・年代別集計
・期間別集計

の同処理を修正すればいいと思います。

あと、TOPページの方は

db/dbfactory/SC_DB_DBFactory_MYSQL.php


    function getOrderYesterdaySql($method) {
        return "SELECT ".$method."(total) FROM dtb_order "
              . "WHERE del_flg = 0 "
                . "AND cast(create_date as date) = DATE_ADD(current_date, interval -1 day) "
                . "AND status <> " . ORDER_CANCEL
                . " AND status <> " . ORDER_NEW
                . " AND status <> " . ORDER_PENDING
                . " AND status <> " . ORDER_PAY_WAIT;
    }



これを以下
・昨日の売上高・売上件数を算出する SQL を返す
・当月の売上高・売上件数を算出する SQL を返す

の同処理を修正すればいいと思います。

SQLの記述(否定条件)と、PHPの文字列連結について
お調べになればよりわかるかもしれません。
istn
投稿日時: 2012/3/13 0:09
対応状況: 解決済
常連
登録日: 2011/11/10
居住地:
投稿: 31
Re: 売上集計に【新規受付】・【決済処理中】・【入金待ち】が売上として算出されてしまう
大変わかり易くご説明頂き、そのまま貼付けでも利用できるようご教授頂き、大変助かりました。
有難うございました。
mtb_constants_init.phpの存在もわからないような初心者だったのですが、MPV様のおかげで自分の知識にも大変プラスになりました。
本当にありがとうございます!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,711名です
総投稿数は109,948件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1285
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.