バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 商品別集計で追加項目

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
viper
投稿日時: 2011/8/6 12:36
対応状況: −−−
新米
登録日: 2011/7/30
居住地:
投稿: 10
商品別集計で追加項目
続けての質問で失礼致します。

2.11.1の商品別集計では
商品コード、商品名、購入件数、数量、単価、金額
上記の6つの項目が表示されますが、購入時重量、総重量を追記出来るでしょうか?

例えば 100gが150円のお茶があったとします。
【注文】
Aさん 200g×1
Bさん 100g×1
Cさん 100g×3

【商品別集計】
順位  商品コード  商品名  購入件数  数量  単価  金額
1    ocha001   お茶   2件    4   150  600
2    ocha001   お茶   1件    1   300  300

上記の様に表示されます。

この中に購入時の購入重量(1包装重量)と総重量を記載したいです。

順位 商品コード  商品名 購入重量 購入件数 数量 総重量 単価  金額
1   ocha001   お茶  100g  2件    4   400g  150  600
2   ocha001   お茶  200g  1件    1   200g  300  300


後、商品別集計の円グラフでは中国語が文字化けしてしまいます。
円グラフは多言語化出来ますでしょうか?

どうかよろしくお願い致します。

連続のスレ立て失礼しました。

468
投稿日時: 2011/8/7 0:48
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品別集計で追加項目
こんばんわ。

購入時重量は、どのように商品に登録されているのでしょうか?
規格を利用されているのでしょうか?
それとも項目をカスタマイズしているのでしょうか?

結論から申しますと、商品別集計に購入時重量、総重量を追加することは、カスタマイズを加える事で対応可能ですが、
データの格納方法によって、集計方法が変わってくる為、
現在の情報では、その手段までは説明できません。

あと、円グラフの件はよくわからないので、申し訳ないです。
viper
投稿日時: 2011/8/7 10:43
対応状況: −−−
新米
登録日: 2011/7/30
居住地:
投稿: 10
Re: 商品別集計で追加項目
468さん

お返事ありがとうございます。
購入時重量は規格を利用しています。(100g・200g・300g等)
集計はカスタマイズで可能ということですが
この場合は、今規格で使用している100g等のgやkgは外しておいた方がいいのでしょうか?
数字以外を規格内に記入していると集計時に問題がありますよね?

前回説明不足ですみませんでした。
何とかなりますでしょうか?
468
投稿日時: 2011/8/7 14:35
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 商品別集計で追加項目
こんにちは

私のほうで、以下の条件で商品別集計のカスタマイズを行ってみました。

EC-CUBE2.11.1
MySQL5.2
商品:アイスクリーム
規格1:味
分類:抹茶、チョコ
重量計算の条件:抹茶の時100g、チョコの時2kgで集計
(わざと単位を変えています)
カスタマイズの方針:なるべく手を加えるところを少なくする。
(拡張系クラスではなく、ページ系クラスに直接手を加えます)

1./data/class/pages/admin/total/LC_Page_Admin_Total.php 551行目付近の集計項目を指定するSQLを書き直します。

$col = "
product_id,
product_code,
product_name,
SUM(quantity) AS products_count,
COUNT(order_id) AS order_count,
price,
(price * SUM(quantity)) AS total";

$col = "
product_id,
product_code,
product_name,
dtb_order_detail.classcategory_name1,
SUM(CASE WHEN dtb_order_detail.classcategory_name1 = '抹茶' THEN 100 * quantity
WHEN dtb_order_detail.classcategory_name1 = 'チョコ' THEN 2000 * quantity
ELSE 0 END) AS total_weight,
SUM(quantity) AS products_count,
COUNT(order_id) AS order_count,
price,
(price * SUM(quantity)) AS total";

2.テンプレートに表示する項目(購入重量と総重量)を追加する。
/data/Smarty/templates/admin/total/page_products.tpl 26行目付近

<th>順位</th>
<th>商品コード</th>
<th>商品名</th>
<th>購入件数</th>
<th>数量</th>
<th>単価</th>
<th>金額</th>

<th>順位</th>
<th>商品コード</th>
<th>商品名</th>
<th>購入重量</th>
<th>購入件数</th>
<th>数量</th>
<th>総重量</th>
<th>単価</th>
<th>金額</th>


32行目付近

<td class="center"><!--{*順位*}--><!--{$smarty.section.cnt.iteration}--></td>
<td class="right"><!--{*商品コード*}--><!--{$arrResults[cnt].product_code|h}--></td>
<td class="left"><!--{*商品名*}--><!--{$arrResults[cnt].product_name|sfCutString:40:false|h}--></td>
<td class="right"><!--{*購入件数*}--><!--{$arrResults[cnt].order_count}-->件</td>
<td class="right"><!--{*数量*}--><!--{$arrResults[cnt].products_count}--></td>
<td class="right"><!--{*単価*}--><!--{$arrResults[cnt].price|number_format}-->円</td>
<td class="right"><!--{*金額*}--><!--{$arrResults[cnt].total|number_format}-->円</td>

<td class="center"><!--{*順位*}--><!--{$smarty.section.cnt.iteration}--></td>
<td class="right"><!--{*商品コード*}--><!--{$arrResults[cnt].product_code|h}--></td>
<td class="left"><!--{*商品名*}--><!--{$arrResults[cnt].product_name|sfCutString:40:false|h}--></td>
<td class="right"><!--{*購入数量*}--><!--{$arrResults[cnt].classcategory_name1}--></td>
<td class="right"><!--{*購入件数*}--><!--{$arrResults[cnt].order_count}-->件</td>
<td class="right"><!--{*数量*}--><!--{$arrResults[cnt].products_count}--></td>
<td class="right"><!--{*総重量*}--><!--{$arrResults[cnt].total_weight|number_format}-->g</td>
<td class="right"><!--{*単価*}--><!--{$arrResults[cnt].price|number_format}-->円</td>
<td class="right"><!--{*金額*}--><!--{$arrResults[cnt].total|number_format}-->円</td>


45行目付近

th>順位</th>
<th>商品コード</th>
<th>商品名</th>
<th>購入件数</th>
<th>数量</th>
<th>単価</th>
<th>金額</th>

<th>順位</th>
<th>商品コード</th>
<th>商品名</th>
<th>購入重量</th>
<th>購入件数</th>
<th>数量</th>
<th>総重量</th>
<th>単価</th>
<th>金額</th>

以上です。
PHPに追記した以下の部分を書き換える事で、集計した情報などを変更する事ができると思います。

CASE WHEN dtb_order_detail.classcategory_name1 = '抹茶' THEN 100 * quantity
WHEN dtb_order_detail.classcategory_name1 = 'チョコ' THEN 2000 * quantity
ELSE 0 END

意味は、
分類1の名称が抹茶だったら、100×数量、
分類1の名称がチョコだったら、2000×数量、
それ以外は0とする、
という事になります。
規格1ではなく、規格2で判定する場合は、classcategory_name1をclasscategory_name2に置き換えてください。
規格1と規格2の組み合わせで判定する場合は、
WHENとTHENの間を、dtb_order_detail.classcategory_name1 = '抹茶' AND dtb_order_detail.classcategory_name2 = 'S'といった形でANDを指定してください。
(抹茶かつ、Sサイズという場合)

抹茶もしくは、Sサイズという場合は、ANDの代わりにORを指定してください。

上記の方法であれば、規格名を100g→100というふうに数値のみにする必要はありません。

ただし、規格の種類が多い場合や、商品ごとに判定を切り替えたい場合、
または、別規格で同じ分類名を登録されている場合(例えば、規格に購入重量と、内容量があり、
それぞれの分類に100g,200g,300g、100g,200g,300gと同じ名前で登録している等)は、
データベースの定義変更や、仕様の変更が必要となりますので、
かなり難易度が上がると思います。


あと、長々と申し訳ないのですが、CSV出力は、
./data/class/pages/admin/total/LC_Page_Admin_Total.php 805行目付近の配列を書き直します。

$arrTitleCol = array(
'商品コード',
'商品名',
'購入件数',
'数量',
'単価',
'金額'
);
$arrDataCol = array(
'product_code',
'product_name',
'order_count',
'products_count',
'price',
'total',
);

$arrTitleCol = array(
'商品コード',
'商品名',
'購入数量',
'購入件数',
'数量',
'総重量',
'単価',
'金額'
);
$arrDataCol = array(
'product_code',
'product_name',
'classcategory_name1',
'order_count',
'products_count',
'total_weight',
'price',
'total',
);

以上、viperさんの環境に合わせて変更してみてください。
viper
投稿日時: 2011/8/7 15:57
対応状況: 確認中
新米
登録日: 2011/7/30
居住地:
投稿: 10
Re: 商品別集計で追加項目
468様

わざわざ商品別集計のカスタマイズまで行ってもらい
本当にありがとうございます!

記述して頂いた通りにカスタマイズした後、再度報告をさせてもらいます。
海外での販売の為に色々とカスタマイズしているのですが
わからない事ばかりでお恥ずかしい限りです。

一時はECCUBE以外を検討しておりましたが
最新バージョンになり多言語対応になったという事で
期限も迫ってきた事もあり、見切り発車したのですが
まだまだ問題も多いです。焦るばかりで。。。

後日また結果をご報告致します。
ひとまず、ありがとうございました!


viper
投稿日時: 2011/8/10 13:08
対応状況: −−−
新米
登録日: 2011/7/30
居住地:
投稿: 10
Re: 商品別集計で追加項目
468様

ご連絡が遅くなってすみません。
抹茶とチョコの場所を変更しただけで
後は、教えて頂いた通りにカスタマイズしたらバッチリ理想通りになりました!
ありがとうございます!!

お陰で規格も変更する必要がなくなり、CSVまで出力することが出来るなんて完璧です。
468様、お忙しいなか本当にありがとうございました。


スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

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

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.