バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > その他 > 受注データCSVについて

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kiki
投稿日時: 2010/12/6 12:40
対応状況: −−−
常連
登録日: 2010/9/9
居住地:
投稿: 51
受注データCSVについて
受注データCSVの出力内容を下記のようにしたいと思っておりますが、どのPHPを修正すればよいか困っております。

電話番号 → ハイフンつなぎ
住所 → 県名+住所1
配送日 → 曜日をなくしたい
配送時間 → 4桁の数字にしたい(例)午前8時〜午後12時の場合 → 0812)

同じようなカスタマイズをされた方がいらっしゃいましたら、教えていただけると非常に助かります。

よろしくお願い致します。

開発環境
------------
EC-CUBEバージョン:2.3.0
DB:MySQL
sumkjr
投稿日時: 2010/12/6 14:43
対応状況: −−−
一人前
登録日: 2010/10/8
居住地:
投稿: 103
Re: 受注データCSVについて
カスタマイズはしたことないですが、ソースを読んでみました。
(手元にあった2.4.1で調べました)
カスタマイズはホントはextendsに書いた方がいいと思いますが、extendsじゃない方の修正を書いておきます。

あと、影響調査も全くしていないので、思わぬところで動作がおかしくなるかもしれません。


・CSV出力設定でdtb_csvの内容を表示する項目だけにする。
電話をハイフン繋ぎで1行にするということは、電話番号の項目は3つもいらないので、01だけにする

・data/class/pages/admin/order/LC_Page_Admin_Order.php
L284でデータ部分を書き込んでいるので
$data = $objCSV->lfGetOrderCSV("dtb_order", $where, $option, $arrval, $arrCsvOutputCols);
と書き換える。
(lfGetCSVがどこで使われているかわからないから新規で作ります)


・data/class/helper/SC_Helper_CSV.php
lfGetCSVをコピーし、for文の中の
$data .= $this->lfMakeCSV($list_data[$i]);

$data .= $this->lfMakeOrderCSV($list_data[$i]);
にし、メソッド名をlfGetOrderCSVにする。

IfMakeCSVをコピーし、
switch文の中をどのように出力したいかを書き変えて
メソッド名をlfMakeOrderCSVにする。
たとえば、電話番号は「ハイフンつなぎ」ということで
case 'order_tel01':
$tmp = $list['order_tel01'].'-'.$list['order_tel02'].'-'.$list['order_tel03'];
break;
case 'order_tel02':
case 'order_tel03':
break;
にするとかでしょうかね。。
(電話番号を01だけにしたら、02と03はいらないかも。)

実際に動かしてはいないので、これで出ないかもしれません。

kiki
投稿日時: 2010/12/6 18:43
対応状況: −−−
常連
登録日: 2010/9/9
居住地:
投稿: 51
Re: 受注データCSVについて
ご返信ありがとうございます!

電話番号の連結が問題なくできました。

受注商品詳細情報を出したいと思っておりますが、
可能でしょうか。

よろしくお願い致します。
sumkjr
投稿日時: 2010/12/6 19:34
対応状況: −−−
一人前
登録日: 2010/10/8
居住地:
投稿: 103
Re: 受注データCSVについて
わかりやすく、自分が書いたものを例にすると

・data/class/helper/SC_Helper_CSV.php
のlfGetOrderCSVのメソッドの最初に
dtb_orderとdtb_order_detailを取得するSQLを作る必要があります。
order_idをキーに内部結合させて取得すれば問題ないかと思います。

ただ、受注商品ごとに1行なのか、受注ごとに1行なのかで、取得の方法かCSVに出力させていく方法が変わります。
kiki
投稿日時: 2010/12/6 20:02
対応状況: −−−
常連
登録日: 2010/9/9
居住地:
投稿: 51
Re: 受注データCSVについて
早速のお返事ありがとうございます。

先ほど「SC_Helper_CSV.php」を修正してみましたが、
CSV側では2行出力されているようですが、肝心の「商品名」がいっこうに出力されません。


<修正内容↓↓↓>

▼「lfGetOrderCSV」
-------
function lfGetOrderCSV($from, $where, $option, $arrval, $arrCsvOutputCols = "") {

$cols = SC_Utils_Ex::sfGetCommaList($arrCsvOutputCols);

$objQuery = new SC_Query();
$objQuery->setoption($option);

$from = "dtb_order join dtb_order_detail using(order_id)";

$list_data = $objQuery->select($cols, $from, $where, $arrval);

$max = count($list_data);
if (!isset($data)) $data = "";
for($i = 0; $i < $max; $i++) {
// 各項目をCSV出力用に変換する。
$data .= $this->lfMakeOrderCSV($list_data[$i]);
}
return $data;
}
----------

また、「dtd_csv」にも項目を一つ増やしています。


▼「DB追加」
-----------
insert into dtb_csv
(csv_id,col,disp_name,rank,status,create_date,update_date)
values
(6,'product_name','商品名',1,1,now(),now())
-------------

▼「lfMakeOrderCSV」
-------------
function lfMakeOrderCSV($list) {
$line = "";

reset($list);
while(list($key, $val) = each($list)){
$tmp = "";
switch($key) {
case 'order_pref':
$tmp = $this->arrPref[$val];
break;
case 'deliv_pref':
$tmp = $this->arrPref[$val];
break;
case 'order_tel01':
$tmp = $list['order_tel01'].'-'.$list['order_tel02'].'-'.$list['order_tel03'];
break;
case 'deliv_zip01':
$tmp = $list['deliv_zip01'].'-'.$list['deliv_zip02'];
break;
default:
$tmp = $val;
break;
}

$tmp = ereg_replace("[\",]", " ", $tmp);
$line .= "\"".$tmp."\",";
}
// 文末の","を変換
$line = $this->replaceLineSuffix($line);
return $line;
}
-------------

どうしたら「商品名」が出力されるようになるでしょうか。
sumkjr
投稿日時: 2010/12/7 10:12
対応状況: −−−
一人前
登録日: 2010/10/8
居住地:
投稿: 103
Re: 受注データCSVについて
商品名は受注及び受注詳細テーブルに持っていないようなので、
商品マスタからも取得させる必要があります。

ただ、商品マスタから取ってくることになるので、
商品名などが変更されたら、受注した時の商品名と変わります。
(価格は受注詳細テーブルに持っています。)

どこにどんな情報があるかは
http://wiki.ec-cube.net/
ここのマニュアルを見ればわかると思います。
kiki
投稿日時: 2010/12/8 18:05
対応状況: 解決済
常連
登録日: 2010/9/9
居住地:
投稿: 51
Re: 受注データCSVについて
sumkjr様ありがとうございます。

こちらDB「dtd_csv」のインストールの際に間違えてしまっていたようです。

無事商品情報が出力されました!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


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

統計情報

総メンバー数は89,435名です
総投稿数は110,087件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2314
5
umebius
2085
6
yuh
1819
7
h_tanaka
1652
8
red
1570
9
mcontact
1305
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.