バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 受注管理のCSV出力に購入商品名や量など追加するには

管理機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
vivo
投稿日時: 2011/7/26 15:01
対応状況: −−−
新米
登録日: 2011/7/21
居住地:
投稿: 5
受注管理のCSV出力に購入商品名や量など追加するには
-----------------------------
EC-CUBE 2.11.1
DBサーバ MySQL 5.1.54
PHP 5.3.5
-----------------------------
受注管理のCSV出力に購入商品名、数量、配達日、配達時間などを追加する方法をお教えいただけないでしょうか。

管理画面>コンテンツ管理>CSV出力項目設定>高度な設定にて、追加可能とのことですが、詳細な追加手順をお教えていただけると幸いです。
よろしくお願いいたします。
habu
投稿日時: 2011/7/26 15:19
対応状況: −−−
長老
登録日: 2006/9/15
居住地:
投稿: 282
Re: 受注管理のCSV出力に購入商品名や量など追加するには
vivo様

「SQL文」欄に、SQLを記述する事になりますが、
そのSQLについてという事でしょうか。

2.11系からは、複数配送機能が追加されていますので、
お届け先が一つの場合と、お届け先が複数の場合のSELECT文を記述して、それらの結果を一つにまとめる必要があります。

既にご覧になられているかもしれませんが、
以下のスレッドも関連していると思います。
http://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=8400&forum=11&viewmode=flat&order=ASC&start=0


----------------
株式会社システムフレンド
羽生 賢太郎(Kentaro Habu)
改造専門店・EC-CUBE工房

vivo
投稿日時: 2011/7/26 16:50
対応状況: −−−
新米
登録日: 2011/7/21
居住地:
投稿: 5
Re: 受注管理のCSV出力に購入商品名や量など追加するには
habu 様

ご返信ありがとうございます。

SQLについて、詳しくないものです。

いただいたスレッドを参考に「SQL文」欄にSQLを以下のように記述し、「この内容で登録」をして、受注管理⇒「CSVタウンロード」をして、下記の内容になりませんでした。

追加方法を詳しくお教えていただけると幸いです。
よろしくお願いいたします。

お届け先が一つの場合を想定しています。

SQL設定;
名称:test
SQL文:
dtb_order.order_id as "オーダー番号",
dtb_order.update_date as "受注日",
concat(order_name01,order_name02) as "注文者名",
product_name as "商品名",
product_code as "商品コード",
price as "価格",
quantity as "数量",
payment_total as "請求金額",
total as "合計金額",
tax as "消費税",
deliv_fee as "送料",
charge as "手数料",
payment_method as "決済方法",
concat(shipping_name01, shipping_name02) as "宛名",
concat(shipping_kana01,shipping_kana02) as "宛名フリガナ",
concat(shipping_tel01,shipping_tel02,shipping_tel03) as "電話番号",
concat(shipping_zip01,shipping_zip02) as "配送先郵便番号",
concat(mtb_pref.name,shipping_addr01,shipping_addr02) as "配送先住所",
shipping_date as "配送日",
shipping_time as "配送時間",
note as "メモ欄"
FROM
mtb_pref , dtb_order JOIN dtb_shipping JOIN dtb_order_detail
ON
dtb_order.order_id=dtb_shipping.order_id=dtb_order_detail.order_id
WHERE
dtb_order.order_pref=mtb_pref.id AND dtb_order.status = 8

habu
投稿日時: 2011/7/29 9:31
対応状況: −−−
長老
登録日: 2006/9/15
居住地:
投稿: 282
Re: 受注管理のCSV出力に購入商品名や量など追加するには
vivo様

以下のSQLではいかがでしょうか。
(MySQL 5.1.41 にて動作確認しました)

・1商品1行で出力されます
・お届け先が一つの受注のみ対象です。
 (複数お届け先のデータは除外しています)
・商品名に、規格1、規格2の情報も付加しています

詳細にチェックしてはいませんので、
意図されている内容になっているか、ご確認ください。

o.order_id as "オーダー番号",
o.create_date as "受注日",
concat(order_name01,order_name02) as "注文者名",
CONCAT( product_name, IFNULL(classcategory_name1, ''), IFNULL(classcategory_name2, '') ) AS '商品名',
product_code as "商品コード",
price as "価格",
quantity as "数量",
payment_total as "請求金額",
total as "合計金額",
tax as "消費税",
deliv_fee as "送料",
charge as "手数料",
payment_method as "決済方法",
concat(shipping_name01, shipping_name02) as "宛名",
concat(shipping_kana01,shipping_kana02) as "宛名フリガナ",
concat(shipping_tel01,shipping_tel02,shipping_tel03) as "電話番号",
concat(shipping_zip01,shipping_zip02) as "配送先郵便番号",
concat(p.name,shipping_addr01,shipping_addr02) as "配送先住所",
shipping_date as "配送日",
shipping_time as "配送時間",
o.note as "メモ欄"
FROM
    dtb_order AS o
LEFT JOIN
    dtb_order_detail AS d
ON
    o.order_id = d.order_id
LEFT JOIN
    dtb_shipping AS s
ON
    o.order_id = s.order_id
LEFT JOIN
    mtb_pref AS p
ON
    p.id = o.order_pref
LEFT JOIN
    dtb_customer AS c
ON
    o.customer_id = c.customer_id
WHERE
    o.status = 8
AND
    o.del_flg = 0
AND
    NOT EXISTS (SELECT * FROM dtb_shipment_item AS si WHERE s.order_id = si.order_id AND s.shipping_id = si.shipping_id)
ORDER BY o.order_id


※2012/3/5…受注日をupdate_dateではなく、create_dateに変更しました


----------------
株式会社システムフレンド
羽生 賢太郎(Kentaro Habu)
改造専門店・EC-CUBE工房

ゲスト
投稿日時: 2011/8/19 14:28
対応状況: −−−
Re: 受注管理のCSV出力に購入商品名や量など追加するには
横から失礼します。

habu様のSQLを試しましたところ構文エラーとなってしいました。
私の環境はPostgreSQL(9.0.1)なのですがMySQLとはSQL文が異なるのでしょうか?

下記がエラー内容です。

MDB2 Error: syntax error
prepare: [Error message: Unable to create prepared statement handle]
[Last executed query: SELECT * FROM dtb_plugin WHERE enable = 1 AND del_flg = 0 ORDER BY rank ]
[Native message: ERROR: syntax error at or near "'商品名'"
LINE 4: ...y_name1, ''), IFNULL(classcategory_name2, '') ) AS '商品名',
^]

お手数おかけして申し訳ございませんが何かアドバイスいただけますと幸いです。
宜しくお願いします。
shutta
投稿日時: 2011/8/19 15:54
対応状況: −−−
仙人
登録日: 2010/2/4
居住地: 関西
投稿: 835
Re: 受注管理のCSV出力に購入商品名や量など追加するには
AS '商品名'

の部分が、シングルクォーテーション(')で括られているからではないでしょうか。

AS "商品名"

と、ダブルクォーテーション(")で括るように修正してみたらどうなるでしょうか。


----------------

リゾート会員権(エクシブ等)の売買・仲介

habu
投稿日時: 2011/8/30 13:49
対応状況: −−−
長老
登録日: 2006/9/15
居住地:
投稿: 282
Re: 受注管理のCSV出力に購入商品名や量など追加するには
kazuhiy様

PostgreSQL 用に書きなおしてみました。
(PostgreSQL 8.4.4 で確認しました)

PostgreSQLに対応するために、以下の変更を行なっています。
・「AS "商品名"」と、ダブルコーテーションで括る様に変更(shutta様ありがとうございます!)
・CONCAT関数→「||」で結合する様に変更
・IFNULL関数→COALESCE関数に変更
・テストしやすい様に、ステータスが「新規受付」のデータを出力するように変更

以下の仕様は変更無しです。
----------
・1商品1行で出力されます(合計金額等が冗長に出力されます)
・お届け先が一つの受注のみ対象です。
 (複数お届け先のデータは除外しています)
 (複数お届け先にも対応する場合は、UNION ALLで複数お届け先のデータをくっつける必要があります)
・商品名に、規格1、規格2の情報も付加しています
----------
詳細にチェックしてはいませんので、
意図されている内容になっているか、ご確認ください。

o.order_id as "オーダー番号",
o.create_date as "受注日",
(order_name01 || order_name02) as "注文者名",
( product_name || COALESCE(classcategory_name1, '') || COALESCE(classcategory_name2, '') ) AS "商品名",
product_code as "商品コード",
price as "価格",
quantity as "数量",
payment_total as "請求金額",
total as "合計金額",
tax as "消費税",
deliv_fee as "送料",
charge as "手数料",
payment_method as "決済方法",
(shipping_name01 || shipping_name02) as "宛名",
(shipping_kana01 || shipping_kana02) as "宛名フリガナ",
(shipping_tel01 || shipping_tel02,shipping_tel03) as "電話番号",
(shipping_zip01 || shipping_zip02) as "配送先郵便番号",
(p.name || shipping_addr01 || shipping_addr02) as "配送先住所",
shipping_date as "配送日",
shipping_time as "配送時間",
o.note as "メモ欄"
FROM
    dtb_order AS o
LEFT JOIN
    dtb_order_detail AS d
ON
    o.order_id = d.order_id
LEFT JOIN
    dtb_shipping AS s
ON
    o.order_id = s.order_id
LEFT JOIN
    mtb_pref AS p
ON
    p.id = o.order_pref
LEFT JOIN
    dtb_customer AS c
ON
    o.customer_id = c.customer_id
WHERE
    o.status = 1 -- ステータスが「新規受付」のデータのみ
AND
    o.del_flg = 0
AND
    NOT EXISTS (SELECT * FROM dtb_shipment_item AS si WHERE s.order_id = si.order_id AND s.shipping_id = si.shipping_id)
ORDER BY o.order_id



※2012/3/5…受注日をupdate_dateではなく、create_dateに変更しました


----------------
株式会社システムフレンド
羽生 賢太郎(Kentaro Habu)
改造専門店・EC-CUBE工房

habu
投稿日時: 2012/3/5 10:44
対応状況: −−−
長老
登録日: 2006/9/15
居住地:
投稿: 282
Re: 受注管理のCSV出力に購入商品名や量など追加するには
vivo様

引用:
dtb_order.update_date as "受注日",


update_dateカラムは、管理画面から受注データを更新した場合に、その日付で上書きされますので、create_dateを利用する様にした方が良さそうですね。

(このスレッドに載せたSQLは修正しておきました)


#管理画面から更新した日付を受注日として利用したい場合であれば、すみません。


----------------
株式会社システムフレンド
羽生 賢太郎(Kentaro Habu)
改造専門店・EC-CUBE工房

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


 



ログイン


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

統計情報

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

投稿数ランキング

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