バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

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

管理機能

新規スレッドを追加する

フラット表示 前のトピック | 次のトピック
投稿者 スレッド
468
投稿日時: 2019/6/14 11:04
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: ■受注CSVへの項目追加
CSV出力の仕組みですが、コントローラー側の処理で準備されたデータ(Entity)に対して、
どの項目を出力するかという事をdtb_csvで指定しています。

受注CSV出力は、
/src/Eccube/Controller/Admin/Order/OrderController.php function exportOrder()
で実行されており、
function内の以下のsetData()の記述で対象のデータ(Entity)を渡しています。

// 受注データを検索.
$ExportCsvRow->setData($csvService->getData($Csv, $Order));
if ($ExportCsvRow->isDataNull()) {
    // 受注データにない場合は, 受注明細を検索.
    $ExportCsvRow->setData($csvService->getData($Csv, $OrderDetail));
}


ソースを見ると分かりますが、$Orderと$OrderDetailは渡していますが、
$Productは渡していません。
その為、dtb_csv.entity_nameで指定したEccube\Entity\Productは見つからないと判断されて、値が空のまま出力されています。
dtb_csvのcsv_type:3の他のレコードを確認いただくと分かりますが、
entity_nameには「Eccube\Entity\Order」「Eccube\Entity\OrderDetail」が格納されていると思います。
デフォルトでは$Orderと$OrderDetailしか利用していないからです。

内部的には、[dtb_csv.entity_name]->get[dtb_csv.field_name]()
を実行して値を取り出す仕様となります。
reference_field_nameを指定すれば、
[dtb_csv.entity_name]->get[dtb_csv.field_name]()->get[reference_field_name]()
とさらに子Entityの値を取り出してくれます。
(dtb_csv.field_nameの結果が配列でもきちんと処理してくれます)

前置きが長くなりましたが、本題のカテゴリの値の取得ですが、
上記コントローラーの記述の下に
if ($ExportCsvRow->isDataNull()) {
    $ExportCsvRow->setData($csvService->getData($Csv, $OrderDetail->getProduct()));
}

を追記して、受注明細から商品Entityを渡せば、カテゴリ情報を取り出せるのではないかと思います。

先程、仕様について簡単に説明しましたが、
dtb_csvで指定できる範囲がリレーションで子段階までなので
データを渡す側に情報を追加する必要があるかと思います。

最初から利用している$OrderDetailからカテゴリの方法までたどり着くには
$OrderDetail->getProduct()->getProductCategories()[0]->getCategoryId()
のように孫段階までのアクセスが必要となり、
デフォルトではそこまで対応していないと思われますので。


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

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


題名 投稿者 日時
   ■受注CSVへの項目追加 tetsurou 2019/6/13 17:01
     Re: ■受注CSVへの項目追加 tao_s 2019/6/14 9:59
       Re: ■受注CSVへの項目追加 tetsurou 2019/6/14 11:55
   » Re: ■受注CSVへの項目追加 468 2019/6/14 11:04
       Re: ■受注CSVへの項目追加 tetsurou 2019/6/14 12:34

 



ログイン


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

統計情報

総メンバー数は88,285名です
総投稿数は109,688件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1567
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
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.