質問 > 管理機能 > 受注CSVに送料、手数料のレコードを出力させないようにしたい |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
tschappie |
投稿日時: 2019/4/5 19:55
対応状況: 解決済
|
半人前 ![]() ![]() 登録日: 2019/3/22 居住地: 投稿: 21 |
受注CSVに送料、手数料のレコードを出力させないようにしたい 配送システムに読み込ませる為、
受注CSVを出力した際に、同じ注文IDで 商品名の箇所が 「送料」、「手数料」 となっている行がそれぞれ別途出力されてしまいます。 一行で受注情報をまとめる方法、あるいはプラグインをお教えいただけませんでしょうか。 ↓こうなってしまうのを1行に纏めたい 注文番号,受注日,.............. 商品名,個数,価格,合計 1,"2019-03-26 20:21:43",.......商品名●●●,2,3400.00,8144.00 1,"2019-03-26 20:21:43",.......手数料,1,0.00,8144.00 1,"2019-03-26 20:21:43",.......送料,1,800.00,8144.00 [EC-CUBE] 4.0.2 新規 [レンタルサーバ] さくらVPS [OS] win10 CentOs7 [PHP] 7.1 [データベース] MySQL5.5 |
umebius |
投稿日時: 2019/4/6 9:47
対応状況: −−−
|
神 ![]() ![]() 登録日: 2016/7/22 居住地: 東京日本橋 投稿: 2085 |
Re: 受注CSVに送料、手数料のレコードを出力させないようにしたい 受注CSV出力はsrc/Eccube/Controller/Admin/Order/OrderController.phpのexportCsvメソッドで出力されます。
CsvExportServiceのexportDataしている部分のコールバックfunctionで決定されます。 ですので、ここをカスタマイズしてやればご希望の挙動にできます。 カスタマイズディレクトリにこのメソッド自体コピーしてカスタマイズしてやるのが簡単かと思います。
|
tschappie |
投稿日時: 2019/4/8 19:26
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2019/3/22 居住地: 投稿: 21 |
Re: 受注CSVに送料、手数料のレコードを出力させないようにしたい ありがとうございます。
OrderController.phpの該当箇所におきまして 手数料、送料のレコードでは商品コードがNULLのため、 商品コードの有無で読み込むレコードを分岐出来ないかとは思うのですが 記述が分からず難儀しております。 下記では分らぬまま書いて当たり前ですが商品コードのみ表示になってしまいます。 記述例をご教授頂けますと大変ありがたく存じます。
|
468 |
投稿日時: 2019/4/9 10:12
対応状況: −−−
|
神 ![]() ![]() 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 受注CSVに送料、手数料のレコードを出力させないようにしたい foreach ($Csvs as $Csv) {
はカラムのループで、その外側の foreach ($OrderItems as $OrderItem) { がレコードのループになります。 $ExportCsvRow = new ExportCsvRow(); ~ $csvService->fputcsv($ExportCsvRow->getRow()); の間で1行分のCSVデータが作られていますので 商品コードの有無の判定を入れる箇所は上記コードの外側になるかと思います。 送料、手数料のレコードを出力しないだけなら簡単なのですが、 その情報はどこに持って行く予定でしょうか? CSVのカラムを増やしたいのであれば、dtb_csvにレコードを追加する必要があると思います。 また、注文明細をループで順番に処理している以上、 CSVの出力処理とは別にOrderItemsの全レコードをループさせる必要があると思います。 今のままだと、1行目(商品)の注文明細のCSV出力時に まだループで参照していない2行目(手数料)、3行目(送料)の情報を出力したいという形になるかと思いますので...
|
tschappie |
投稿日時: 2019/4/9 11:29
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2019/3/22 居住地: 投稿: 21 |
Re: 受注CSVに送料、手数料のレコードを出力させないようにしたい ありがとうございます。
出力したCSVはクロネコヤマトのリピート通販ECシステムに読み込ませる予定なのですが、1商品につき1行内にまとまっていないと読み込めない仕様の為です。 dtb_csvにレコードは追加しており、カラムで送料・コレクト手数料は正しく表示されています。 抜き出すとこのようになっています。 ↓ 送料,コレクト手数料,商品コード,商品名,..... 1160.00,324.00 ,S0001 ,商品名○○, 1160.00,324.00 , ,手数料,..... 1160.00,324.00 , ,送料,..... 2行目(手数料)、3行目(送料)レコードで更に表示されている状態になってしまっています。 |
tschappie |
投稿日時: 2019/4/9 18:52
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2019/3/22 居住地: 投稿: 21 |
Re: 受注CSVに送料、手数料のレコードを出力させないようにしたい 引用:
重ねて申し訳ありません。 レコードのループの内側のカラムを条件にしては、おかしくなる件承知いたしました。 簡単に送料、手数料のレコードを出さない手段が分からず、何卒お教えいただけませんでしょうか。 |
468 |
投稿日時: 2019/4/10 11:14
対応状況: −−−
|
神 ![]() ![]() 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 受注CSVに送料、手数料のレコードを出力させないようにしたい 以下のようなコードで商品コードを判定して、
CSVレコードを出力しているループをスキップさせればよいのではないかと思います。
|
tschappie |
投稿日時: 2019/4/10 16:29
対応状況: −−−
|
半人前 ![]() ![]() 登録日: 2019/3/22 居住地: 投稿: 21 |
Re: 受注CSVに送料、手数料のレコードを出力させないようにしたい ありがとうございます!
1行だけ取り出せるようになりました! 大変助かりました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |