バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > フロント機能 > 売上集計で、注文番号を指定して集計したい。

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
tsurtua
投稿日時: 2017/9/12 13:49
対応状況: 解決済
常連
登録日: 2017/3/31
居住地:
投稿: 57
売上集計で、注文番号を指定して集計したい。
[EC-CUBE] EC-CUBEのバージョン:2.13.5
        新規インストールかアップデートか:新規インストール
[OS] OS:Windows8.1
[PHP] PHPのバージョン:PHP 5.6.24
[データベース] DB:MySQL 5.7.18
[ブラウザ] ブラウザ名:Chome
[導入プラグイン] プラグイン:のし対応 1.3.5/クロネコヤマト カード・後払い一体型決済コア機能プラグイン 1.0/全ページ対応パンくずリスト表示プラグイン 無料版 0.5

以下の機能の実装方法が分かる方はご教授頂けないでしょうか?

管理画面の売上集計機能に、
月度集計
期間集計
がありますが、これに注文番号集計というものを追加したいと思っています。
注文番号が「1~130」のように指定をして、該当の注文番号にヒットする注文の集計を行うことを想定しています。
グラフはなくても大丈夫です。

LC_Page_Admin_Total.phpを編集するのでしょうか?
わたしには中々複雑で困っております。。

分かる方、何卒よろしくお願いします。
shinra
投稿日時: 2017/9/12 13:59
対応状況: −−−
一人前
登録日: 2017/9/2
居住地:
投稿: 124
Re: 売上集計で、注文番号を指定して集計したい。
LC_Page_Admin_TotalのlfInitParamに開始のorder_idと終了のorder_idを追加して、テンプレートにその項目を追加して、lfGetWhereMemberに受け取ったorder_idをBETWEENで処理するように追加すればできると思います。
tsurtua
投稿日時: 2017/9/12 14:09
対応状況: −−−
常連
登録日: 2017/3/31
居住地:
投稿: 57
Re: 売上集計で、注文番号を指定して集計したい。
shinra様先日に引き続きありがとうございます。

色々と社内で検討して今回書き込んだ機能でいければという流れになっています。

今の所以下のような感じ(おそらく仰られている方法と同じかと思います)でカスタマイズをやってみているのですが、なかなか思うようにうごかなくて、、
public function lfInitParam(&$objFormParam) { // デフォルト値の取得 $arrList = $this->lfGetDateDefault();
 // 月度集計
 $objFormParam->addParam('月度(年)', 'search_startyear_m', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), $arrList['startyear_m']);
 $objFormParam->addParam('月度(月)', 'search_startmonth_m', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), $arrList['startmonth_m']);
 // 期間集計
 $objFormParam->addParam('期間(開始日)', 'search_startyear', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), $arrList['startyear']);
 $objFormParam->addParam('期間(開始日)', 'search_startmonth', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), $arrList['startmonth']);
 $objFormParam->addParam('期間(開始日)', 'search_startday', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), $arrList['startday']);
 $objFormParam->addParam('期間(終了日)', 'search_endyear', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), $arrList['endyear']);
 $objFormParam->addParam('期間(終了日)', 'search_endmonth', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), $arrList['endmonth']);
 $objFormParam->addParam('期間(終了日)', 'search_endday', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'), $arrList['endday']);
 // 注文番号集計
 $objFormParam->addParam('注文番号(開始番号)', 'search_startorder_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
 $objFormParam->addParam('注文番号(終了番号)', 'search_endorder_id', INT_LEN, 'n', array('MAX_LENGTH_CHECK', 'NUM_CHECK'));
 // hiddenデータの取得用 $objFormParam->addParam('', 'page');
 $objFormParam->addParam('', 'type'); $objFormParam->addParam('', 'mode');
 $objFormParam->addParam('', 'search_form'); }


追加箇所はこの関数以外もいろいろあるようで、なかなか。。
shinra
投稿日時: 2017/9/12 14:17
対応状況: −−−
一人前
登録日: 2017/9/2
居住地:
投稿: 124
Re: 売上集計で、注文番号を指定して集計したい。
パラメータを受け取る事が出来れば
lfGetWhereMemberに対して

search_endorder_idとsearch_startorder_idを引数で追加して

        if(
            !is_null($search_startorder_id) AND 
            !is_null($search_endorder_id)) AND
            preg_match('/^[0-9]+$/',$search_startorder_id) AND 
            preg_match('/^[0-9]+$/',$search_endorder_id) 
        ){
            if ($where != '') {
                $where.= ' AND ';
            }
            $where.= " order_id BETWEEM ". $search_startorder_id ." AND ".$search_endorder_id."";
        }



こんな感じで追加すればできるとは思います。
shinra
投稿日時: 2017/9/12 14:25
対応状況: −−−
一人前
登録日: 2017/9/2
居住地:
投稿: 124
Re: 売上集計で、注文番号を指定して集計したい。
もう一つは
https://xoops.ec-cube.net/modules/newbb/viewtopic.php?viewmode=thread&topic_id=19465&forum=10&post_id=83668#forumpost83668
に書いたdtb_order_sendのテーブルを利用して、
纏めた日付でセレクトボックスを作った上で、
そのデータを元にクエリ内で範囲を指定する方法がありますね。
その場合はorder_send_idの項目を追加して、order_send_idを受け取ったらクエリ作成している部分でorder_id_startとorder_id_endを使用して抽出する感じにはなります。
多分そちらの方がミスなくいつ纏めたデータかというのがわかりやすくていいのかな?とは思います。
tsurtua
投稿日時: 2017/9/12 14:36
対応状況: −−−
常連
登録日: 2017/3/31
居住地:
投稿: 57
Re: 売上集計で、注文番号を指定して集計したい。
こちらは一回集計をおこなうたびに、
dtb_order_sendテーブルに一つレコードが追加されていくイメージでしょうか???
shinra
投稿日時: 2017/9/12 14:41
対応状況: −−−
一人前
登録日: 2017/9/2
居住地:
投稿: 124
Re: 売上集計で、注文番号を指定して集計したい。
以前書いたdtb_order_sendテーブルは実行して、130件以上あれば1レコード追加されます。
130件以下の場合はレコードは追加されないクエリになってます。


別の所で集計したデータを使って

2017/08/27
2017/08/30
2017/09/01
2017/09/03
2017/09/06
2017/09/09

とかセレクトボックスで選択した方が
~日に発送の分の集計を取りやすいかと思います。

全然別の話であればorder_idの範囲でやる方がいいかと思います。
tsurtua
投稿日時: 2017/9/12 14:58
対応状況: −−−
常連
登録日: 2017/3/31
居住地:
投稿: 57
Re: 売上集計で、注文番号を指定して集計したい。
EC-CUBE上の発送日の反映(対応状況の変更作業)が出荷数を出力する翌日という運用方法をしているので、発送日は今回使えないかなと思っています。
受注管理画面の「全商品発送日」欄の情報を業務で使用しているので、ここには正しい本当の発送日時が反映されないといけません。。

なので、やはり注文番号のみを元に集計ができれば理想です。
tsurtua
投稿日時: 2017/9/12 15:08
対応状況: −−−
常連
登録日: 2017/3/31
居住地:
投稿: 57
Re: 売上集計で、注文番号を指定して集計したい。
lfGetWhereMember回りについて質問させて頂きます。

lfGetWhereMemberを使っている関数が
lfGetOrderProducts
などあるようですが、この
lfGetOrderProductsなどはどこで使われているのでしょうか?
Grep検索などで探しても見つかりません。。
ご存知ですか?
shinra
投稿日時: 2017/9/12 15:13
対応状況: −−−
一人前
登録日: 2017/9/2
居住地:
投稿: 124
Re: 売上集計で、注文番号を指定して集計したい。
call_user_func_array(array($this, 'lfGetOrder'.$page)
で$pageにProductsが渡った時に使用されます。
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は88,707名です
総投稿数は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.