バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

 > プラグイン > プラグインで追加した項目のCSV出力設定(EC-CUBE3系)

プラグイン

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
rasse
投稿日時: 2016/10/18 10:42
対応状況: −−−
新米
登録日: 2016/7/5
居住地:
投稿: 8
プラグインで追加した項目のCSV出力設定(EC-CUBE3系)
EC-CUBE3.0系にて、
プラグインから商品情報に項目を追加しました。

プラグインで、
 dtb_add_item(product_id, add_item1, add_item2)
のようなテーブルを作成し、
dtb_productとはproduct_idで繋がっている形です。

add_item1,等がCSV出力できるようdtb_csvに設定を追加したいのですが、
dtb_csvのentity_name,field_name,reference_fieldにどのような値を
設定すればよいのかわかりません。

試しに
 entity_name:Plugin\\AddItemPlugin\\Entity\\AddItem
 filed_name :id
 reference_field:(空白)
のように設定してみましたが、ヘッダー以外何も出力されませんでした。

ご存知の方いましたら、教えてください。
tacky
投稿日時: 2016/10/21 10:26
対応状況: −−−
長老
登録日: 2015/10/3
居住地: Tokyo
投稿: 277
Re: プラグインで追加した項目のCSV出力設定(EC-CUBE3系)
プラグインのServiceProviderでcsv出力のサービスを拡張して頂き。

$app['eccube.service.csv.export'] = $app->share(function () use ($app) {
          $csvService = new \Plugin\hoge\Service\PlgCsvExportService(
              $app['hoge.repository.hoge']
          );


プラグインのPlgCsvExportService.phpで取得して出力すれば表示されるかと思います。


下記もDBに追加しておく必要があります。

 entity_name:Plugin\\AddItemPlugin\\Entity\\AddItem
 filed_name :id
 reference_field:NULL
umebius
投稿日時: 2016/10/21 11:54
対応状況: −−−
登録日: 2016/7/22
居住地: Tokyo
投稿: 1007
Re: プラグインで追加した項目のCSV出力設定(EC-CUBE3系)
tackey 様

私もrasse様同様「既存のCSVタイプ(商品CSVなど)に追加で出力する」場合について、かなり悩んでおります。

多くのプラグインは同じように$app['eccube.service.csv.export']の拡張を考えると思うのですが
この方法だと競合して動作しなくなってしまいますよね?

複数プラグインで動く良い方法があったらご教示ください。

あと、return $csvService;必要ではないでしょうか?


$app['eccube.service.csv.export'] = $app->share(function () use ($app) {
          $csvService = new \Plugin\hoge\Service\PlgCsvExportService(
              $app['hoge.repository.hoge']
          );
return $csvService;
}


----------------
////////////////
(株)U-Mebius EC-CUBE3 カスタマイズ /バグ修正/SEO はおまかせ
一緒にEC-CUBEでサイト制作を行うプログラマ・コーダー・デザイナー募集

tacky
投稿日時: 2016/10/21 17:59
対応状況: −−−
長老
登録日: 2015/10/3
居住地: Tokyo
投稿: 277
Re: プラグインで追加した項目のCSV出力設定(EC-CUBE3系)
> 多くのプラグインは同じように$app['eccube.service.csv.export']の拡張を考えると思うのですが
> この方法だと競合して動作しなくなってしまいますよね?
そうですね、ですので自分達で既存のcsvに項目を追加したい場合は上記処理用のプラグインを作成しています。

受注csvに受注商品詳細を含めたい、会員csvにポイントを含めたい等で実際は複数追加しています。

$app['eccube.service.csv.export'] = $app->share(function () use ($app) {
          $csvService = new \Plugin\hoge\Service\PlgCsvExportService(
              $app['hoge.repository.hoge'],
              $app['huga.repository.huga'],
              $app['piyo.repository.piyo']
          );
return $csvService;
}


> 複数プラグインで動く良い方法があったらご教示ください。
プラグイン側でdtb_csvへ追加・出力まで処理する感じでしょうか。

> あと、return $csvService;必要ではないでしょうか?
return忘れておりました・・・。
rasse
投稿日時: 2016/10/27 9:35
対応状況: −−−
新米
登録日: 2016/7/5
居住地:
投稿: 8
Re: プラグインで追加した項目のCSV出力設定(EC-CUBE3系)
tacky様

返事が遅くなりすみません。
ご回答ありがとうございます。

私の知識不足で申し訳ないのですが、
>プラグインのPlgCsvExportService.phpで取得して出力すれば表示されるかと思います。
の方法を思い描くことができませんでした
どこかECCUBEソース内等で参考になる箇所がありましたら、
ご教示いただけると助かります。
rasse
投稿日時: 2016/10/28 11:37
対応状況: −−−
新米
登録日: 2016/7/5
居住地:
投稿: 8
Re: プラグインで追加した項目のCSV出力設定(EC-CUBE3系)
上記ですが、ご教示いただいた実装方法は自己解決しました。
これから試してみます。
お騒がせしました。
rasse
投稿日時: 2016/10/28 16:43
対応状況: −−−
新米
登録日: 2016/7/5
居住地:
投稿: 8
Re: プラグインで追加した項目のCSV出力設定(EC-CUBE3系)
情報共有も兼ねて、ご報告させていただきます。

主として、以下2メソッドをオーバーライドして、
出力することはできました。

$app['eccube.service.csv.export']->getProductQueryBuilder
$app['eccube.service.csv.export']->exportData

が、特にexportDataの方が、Closureを引数にしているので
かなり力技の実装になってしまいました。

具体的には、項目追加が必要なCsvTypeのときにだけ、
exportData内でもう一度Closureを作り直しているような実装です。

もっと良い実装方法をご存知の方がいらっしゃいましたら、
教えて頂きたいです。
MPV
投稿日時: 2018/4/29 16:52
対応状況: −−−
仙人
登録日: 2011/3/27
居住地:
投稿: 307
Re: プラグインで追加した項目のCSV出力設定(EC-CUBE3系)
引用:

rasseさんは書きました:
tacky様

返事が遅くなりすみません。
ご回答ありがとうございます。

私の知識不足で申し訳ないのですが、
>プラグインのPlgCsvExportService.phpで取得して出力すれば表示されるかと思います。
の方法を思い描くことができませんでした
どこかECCUBEソース内等で参考になる箇所がありましたら、
ご教示いただけると助かります。


横レスで大変恐縮です。

当方、ロックオン様の提供されているメーカー管理プラグインで
同様の事をしようと(商品毎のメーカーIDをCSVで出力したいと思っております)苦戦している状況です。

それで、こちらの引用に書かれている内容がどうも理解できておらず、困った末こちらに書かせて頂きました。
上記の対応内容をご教授頂けないでしょうか。

環境は以下の通りです。

[EC-CUBE] 3.0.15 3.0.13から順次アップデート
[レンタルサーバ] kagoya
[OS] Linux
[PHP] 7.0.28
[データベース] MySQL 5.6.36
[WEBサーバ] Apache
[ブラウザ] Firefox/59.0.2 (64 ビット)

どうぞよろしくお願いいたします。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBEペイメント

統計情報

総メンバー数は39,263名です
総投稿数は89,331件です

投稿数ランキング

1
seasoft
7332
2
AMUAMU
2712
3
nanasess
1871
4
yuh
1555
5
468
1484
6
red
1206
7
umebius
1007
8
fukap
907
9
tsuji
833
10
shutta
827
11 ramrun 789
12
tao_s
667
13 karin 656
14 sumida 641
15
h_tanaka
635
16
homan
633
17 DELIGHT 571
18
patapata
502
19
flealog
483
20 tonton 436


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© LOCKON CO.,LTD. All Rights Reserved.