EC-CUBE3.0.15でCSV出力の項目を増やした話

  • このエントリーをはてなブックマークに追加
  • LINEで送る

EC-CUBEには会員情報や受注情報のCSV出力機能がありますが、CSV項目の追加削除については管理画面から設定することができません。

前もって…

本記事の内容はシステムに直接影響を与える操作を含んでいます。EC-CUBE3やソフトウェアに見識がない方が行うとシステムが動作しなくなる可能性もあります。作業は自己責任で行い、記事内の説明で理解が及ばない場合は操作を中止してください。E.P.ラボは一切の責任を負いません。

管理画面で変更できるのは出力対象の可否と順番のみ

会員や受注情報のCSV出力項目はあらかじめ決まっており、ユーザーができる事はリストに出力するか否かだけです。
しかし、これは管理画面内でのこと。

DBを直接操作することで項目を増やすことも減らすこともできます。

phpMyAdminから操作する

よほどの特別仕様でもない限りMySQLをご利用かと思います。phpMyAdminを利用してDBに接続しましょう。

phpMyAdminは契約サーバーごとにアクセス方法が異なると思います。こちらもご自身の責任で実施ください。

対象tableを探そう

CSVに関するデータが格納されているテーブルは「dtb_csv」です

構成と内容は下記の通り。

出力項目を増やしてみる

実際にCSV出力可能な対象はEntityに登録されているメンバのみです。
つまり、CSV項目を追加するためには事前にEntityのメンバを拡張する必要があります。

仮に会員情報に部署情報を付加し、会員情報CSVに出力させようとすると

  1. マイグレーションで部署カラムの追加
  2. Customer EntityにSection(部署)メンバを追加
  3. Formの修正(新規登録用のフォーム改修)
  4. DB直接操作でdtb_csvに部署を追加
  5. 管理画面のCSV出力設定から出力の可否、順番を設定

のような手順を踏む必要があります。

会員情報CSV出力のようにEntityにメンバを追加した場合{entity_name}にクラス名、{field_name}にフィールド名(プロパティ名)を記載します。

受注情報CSV出力の場合、{field_name}が会員情報になっています。子フィールド(子プロパティ)にアクセスするには{reference_field_name}に指定します。

最後に

あとは会員情報へ追加項目の実データがあればCSVに出力されるようになります。
マイグレーションしたときに、新規追加列はnull許可していると思われます。null値ではCSV出力したときにデータが無いように見えますので、データが入力されていることを確認されてからテストを行ってください。

  • このエントリーをはてなブックマークに追加
  • LINEで送る

中小企業 業務サポート

インターネットの無料相談はお手軽だけど本音ではなかなか相談できまんよね。E.P.ラボの業務サポートは

  1. 包み隠さずご相談いただけるパートナー関係を構築※
  2. 急なシステムトラブルにも対応※
  3. よくわからないことはE.P.ラボに任せて本業に集中

というポリシーの元にサービスを展開しております。まずは下記ボタンからお困りごとをご相談ください。

※1 NDA(秘密保持契約)を推奨しております
※2 既定の営業日、営業時間に限ります
※3 業務支援を含むサポートは¥50,000/月となります
※4 相談のみのサポートは¥30,000/月となります

お問合せページ

SNSでもご購読できます。

スポンサー リンク

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください