バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 受注管理 CSV項目追加

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
dsh
投稿日時: 2014/11/19 17:02
対応状況: −−−
常連
登録日: 2014/8/8
居住地:
投稿: 39
受注管理 CSV項目追加
「商品コード」「商品名」「数量」「単価」「色(規格)」を追加したいです。

【phpPgAdmin】
dtb_csvにテーブルを追加
no:最後尾の数字
csv_id:3
col:product_code
disp_name:商品コード
rank:csv_id3の中の最後尾の数字
rw_flg:1
status:1
timestamp:now()

こんな感じで設定してみましたが、システムエラーになりました。
他の方のブログで上記の設定プラス「dtb_csv_no_seq」のラストになる数字を増やす・・
みたいな事が書いてあったのですが、その「dtb_csv_no_seq」が見当たりません。
「col:product_code」これが良くないのかな?とも思うのですが、知識がない為判断できず。

どの様にすれば、上手く項目を追加する事ができますか?

ちなみに【高度な設定】のSQL新規作成も試し形にはなったのですが、
日付を指定する方法がわからない為データー量が絞れず・・
やはり、受注管理のCSVに項目を追加したと思っております。

どなたかご存知の方おられましたら、よろしくお願いいたします。

ver.2.12.5
tsuji
投稿日時: 2014/11/20 10:16
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 受注管理 CSV項目追加
dsh 様

csv_id=3のCSVダウンロードは主にdtb_orderからデータを取得しています。
受注した商品情報はdtb_order_detailに入っているので、そのまま追加したのでは
取得できません。

下記のファイルのsfDownloadCsvで取得するテーブルを指定しているので
dtb_order_detailを結合するSQLを追記する必要があります。
\data\class\helper\SC_Helper_CSV.php

ただ、通常の受注のCSVダウンロードとは意味合いが違うかと思いましたので、
新たにCSVダウンロードを作成されるのがよいかもしれません。


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

dsh
投稿日時: 2014/11/20 11:09
対応状況: −−−
常連
登録日: 2014/8/8
居住地:
投稿: 39
Re: 受注管理 CSV項目追加
tsujiさま

回答ありがとうございます。
なるほど..そうなのですね..

>>sfDownloadCsvで取得するテーブルを指定しているので

「$sql = 'SELECT ' . $cols . ' FROM dtb_order ' . $where;」
この部分でしょうか?


>>dtb_order_detailを結合するSQLを追記

どの様に記述すればよいですか?


>>新たにCSVダウンロードを作成

それも考え、管理画面のCSV出力設定から新規SQLを設定してみたのですが
SQL一覧には出力ボタンしかなく、日付が指定できないので
やはり、日付指定ができる受注管理のCSVを使いたいと思っております。

よろしければ「dtb_order_detailを結合するSQLを追記」
教えていただけないでしょうか?よろしくお願いします。
tsuji
投稿日時: 2014/11/21 9:32
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 受注管理 CSV項目追加
dsh 様

> >>sfDownloadCsvで取得するテーブルを指定しているので
> 「$sql = 'SELECT ' . $cols . ' FROM dtb_order ' . $where;」
> この部分でしょうか?
その部分です。

> >>dtb_order_detailを結合するSQLを追記
> どの様に記述すればよいですか?
> よろしければ「dtb_order_detailを結合するSQLを追記」
> 教えていただけないでしょうか?
left join で書くことになると思います。

>>新たにCSVダウンロードを作成
これは、CSVダウンロードボタンをもう一つ作って、
CSVダウンロードと同じ処理を作成するということです。


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

dsh
投稿日時: 2014/11/21 15:43
対応状況: −−−
常連
登録日: 2014/8/8
居住地:
投稿: 39
Re: 受注管理 CSV項目追加
tsujiさま

ありがとうございます。

>>left join で書くことになると思います。

実際どのように書けばよろしいですか?


>>CSVダウンロードボタンをもう一つ作って、

管理画面のSQR一覧内にあるボタンを持って来るということですか?
素人考えで、csv_sql.tplに作成されたボタンをそのままorder/index.tplにそのまま貼ってみましたが、上手く行くはずもなく・・でした。

日付が絞れて、抽出できればどんな方法でも良いので
具体的に教えていただけないでしょうか?

よろしくお願いします。
tsuji
投稿日時: 2014/11/25 10:36
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 受注管理 CSV項目追加
dsh 様

>>>left join で書くことになると思います。
> 実際どのように書けばよろしいですか?

SQL文の書き方をご存じないようでしたら勉強していただいた方が
よいと思います。知らずに修正されると不具合のもととなる可能性
があります。
例えば、「SQL 結合」とGoogleなどで検索するならためになる情報
はいろいろ出てくると思います。

> 管理画面のSQR一覧内にあるボタンを持って来るということですか?
> 素人考えで、csv_sql.tplに作成されたボタンをそのままorder/index.tplにそのまま貼ってみましたが、上手く行くはずもなく・・でした。

検索条件を利用したいのであれば、管理画面>受注管理で作成されると
よいかと思います。


> 具体的に教えていただけないでしょうか?

では、具体的にソースコードのどの部分が分からないのでしょうか?
CSVダウンロードの処理はLC_Page_Admin_Order.phpのaction()から
case 'csv':の処理を追っていくと何をしているかが分かると思います。
分からない部分を教えていただければ、お答えすることもできると思います。


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

dsh
投稿日時: 2014/11/25 20:54
対応状況: −−−
常連
登録日: 2014/8/8
居住地:
投稿: 39
Re: 受注管理 CSV項目追加
tsuji様

ありがとうございます。

今現在、新規SQL欄に

o.order_id as "オーダー番号",
o.create_date as "受注日",
o.commit_date as"発送日",
customer_id as"会員ID",
o.order_name01 as "注文者名",
o.order_kana01 as "注文者名カナ",
product_code as "商品コード",
p.name as "商品名",
classcategory_name1 as"色",
price as "単価",
array_to_string(array(select order_id FROM dtb_order WHERE d.order_id = order_id AND to_char(payment_date ,'YYYY-MM-DD') = CURRENT_DATE), ' / ')
FROM
dtb_order AS o
LEFT JOIN
dtb_order_detail AS d
ON
o.order_id = d.order_id
LEFT JOIN
dtb_products AS p
ON
d.product_id = p.product_id
WHERE o.commit_date >= '2014/11/23'
and o.commit_date < '2014/11/25'
AND
o.del_flg = 0
AND
o.status = 5
ORDER BY product_code

この様に記述しております。
必要な項目・日付だけを取り出せているのでこれでも良いのですが・・・

SQLで日付を指定するのではなく、受注管理画面の日付検索機能を使い出たデーターをCSVにできないかな?と思っております。

日付を指定していない上記とは別のSQLへのリンクボタンを
受注管理画面(admin/order/index)に置いて試したりしましたが
日付検索機能と連動せず、上手く行きませんでした。

<form id="form2" action="../contents/csv_sql.php" method="post" name="form2">
<input type="hidden" value="csv_output" name="mode">
<input type="hidden" value="<!--{$transactionid}-->" name="transactionid">
<input type="hidden" value="3" name="csv_output_id">
<input type="submit" value="CSV出力" />
</form>


新規SQLへのリンクを受注管理ページに置き
それを日付検索と連動させるには、他のファイルを触る必要がありますか・・?
tsuji
投稿日時: 2014/11/28 9:26
対応状況: −−−
仙人
登録日: 2013/11/19
居住地:
投稿: 958
Re: 受注管理 CSV項目追加
dsh 様

csv_id: 3にすでにカラムが追加されているのであれば、
下記のSQLの結合部分を

引用:

dtb_order AS o
LEFT JOIN
dtb_order_detail AS d
ON
o.order_id = d.order_id
LEFT JOIN
dtb_products AS p
ON
d.product_id = p.product_id

ORDER BY product_code


下記の部分に組み合わせたらよいと思います。
>>>sfDownloadCsvで取得するテーブルを指定しているので
>「$sql = 'SELECT ' . $cols . ' FROM dtb_order ' . $where;」

ただ、そのままつけるとエラーになるので、
LC_Page_Admin_Order.phpのbuildQuery関数の条件部分にエイリアスを
付け加える必要があります。
(今回はdtb_order AS oとなっているので「o」をつけることになると思います)


----------------
****************************************
株式会社システムフレンド
辻 拓也(takuya tsuji)
改造専門店・EC-CUBE工房
****************************************

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


 



ログイン


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

統計情報

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