バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 配送CSVで出力したときに、1受注1レコードで出力したい

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
468
投稿日時: 2020/4/16 11:22
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: 配送CSVで出力したときに、1受注1レコードで出力したい
受注CSVと配送CSVの出力処理は
/src/Eccube/Controller/Admin/Order/OrderController.phpの
function exportCsv()に記述されております。

CSV出力の流れを確認していくとURLから繋がる2つのアクション
function exportOrder()と
function exportShipping()がそれぞれ定義されているのですが
最終的に$this->exportCsv()という形でfunction exportCsv()を呼び出しているようです。
(ECCUBE4ではCSV出力処理が共通化されています)

その為、配送CSVのみ形態を変えたい場合、
function exportCsv()内部で判定を追加して処理を分岐させる、
function exportCsv()をコピーして配送CSV用のfunctionを新しく追記するといった形が考えられます。

function exportCsv()の動きを簡単に解説すると
$this->csvExportService->exportData(function ($entity, $csvService) use ($request) {
~
});

の間が受注データの件数分ループされます。
ループ内に以下のような記述がありますが
$OrderItems = $Order->getOrderItems();
foreach ($OrderItems as $OrderItem) {
~
}

ここで受注毎の受注明細を取得し、さらに受注明細分ループしています。
2回目(受注明細)のループ内でCSV1行分のデータを作っています。

$ExportCsvRow = new ExportCsvRow(); => 新しい行を追加

$csvService->fputcsv($ExportCsvRow->getRow()); => 1行分のデータの書き出し

よって明細単位でCSVが出力されています。
この2回目のループを排除する事で受注単位でのCSV出力に変更する事が出来ます。
ただ2回目のループを排除した場合、以下の記述で取得している
出荷データ(配送先)を取得できなくなりますので
$Shipping = $OrderItem->getShipping()
$Orderから出荷データを取得するように変更する必要があります。

この辺りはEntityのリレーションを理解していないと難しいかもしれません。
あと、出荷先を複数に分けているような(分納)注文については
単純に受注単位でのCSV出力を行った場合、
正しい配送先と梱包すべき商品が分からなくなると思います。(CSVに商品情報が出力されなくなる為)

その為、配送CSVも受注明細単位で出力されていると思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

フラット表示 前のトピック | 次のトピック


題名 投稿者 日時
   配送CSVで出力したときに、1受注1レコードで出力したい toku 2020/4/14 17:29
   » Re: 配送CSVで出力したときに、1受注1レコードで出力したい 468 2020/4/16 11:22
       Re: 配送CSVで出力したときに、1受注1レコードで出力したい toku 2020/4/16 16:20

 



ログイン


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

統計情報

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

投稿数ランキング

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
1304
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.