質問 > 管理機能 > 3系の受注CSVに配送情報や顧客情報を追加したい |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
tirco |
投稿日時: 2020/2/6 13:04
対応状況: −−−
|
半人前 登録日: 2020/2/6 居住地: 投稿: 22 |
3系の受注CSVに配送情報や顧客情報を追加したい [EC-CUBE] EC-CUBE3.0.18
いつも拝見させていただいてお世話になっています。 受注CSVのダウンロード項目でEccube\Entity\OrderとEccube\Entity\OrderDetailのデータがとれると思うのですが、さらにEccube\Entity\ShippingやEccube\Entity\Customerなどからもデータを追加したいと思っています。 以下の過去スレなどを見ながら、OrderController.phpにコードを追加したり、Order.phpを変更してみたものの、うまくいきませんでした。 https://xoops.ec-cube.net/modules/newbb/viewtopic.php?topic_id=22182&forum=11 プラグインで対応するのではなく、デフォルトの受注CSVに追加したいと思っています。 どのようにしたらいいか、ご教授いただけますと幸いです。 よろしくお願いいたします。 |
tirco |
投稿日時: 2020/2/6 17:16
対応状況: −−−
|
半人前 登録日: 2020/2/6 居住地: 投稿: 22 |
Re: 3系の受注CSVに配送情報や顧客情報を追加したい phpMyadminでdtb_csvの該当レコードのentity_nameにEccube\Entity\Orderを指定し、
src/Eccube/Entity/Order.php内で $this->Customer['buy_times']; とすることで、 Customerからはデータ(購入回数)が取れました。 ただ、同じようにしてもShippingsからはデータがとれません。 引き続き、分かる方いらっしゃったらご教授ください。 よろしくお願いいたします。 |
umebius |
投稿日時: 2020/2/7 12:19
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 3系の受注CSVに配送情報や顧客情報を追加したい 配送CSVではなく、受注CSVの方でShippingsのデータを取得したいということでしょうか?
また、Shippingsのどのようなデータを取得されたいのでしょうか?
|
tirco |
投稿日時: 2020/2/7 12:40
対応状況: −−−
|
半人前 登録日: 2020/2/6 居住地: 投稿: 22 |
Re: 3系の受注CSVに配送情報や顧客情報を追加したい ご返信ありがとうございます。
umebiusさまのおっしゃる通り、配送CSVではなく受注CSVのほうでShippingsのデータを取得したいです。 Shippingsの取得したいデータは、 ・tel01-tel02-tel03(お届け先電話番号01〜03を繋げたデータ) ・name01name02(お届け先名を繋げたデータ) ・zip01-zip02(お届け先郵便番号を繋げたデータ) ・Pref.addr01(都道府県名と住所1を繋げたデータ) ・addr02(お届け先住所2) ・company_name(お届け先会社名) ・shipping_delivery_date(お届け予定日をY/m/d形式で) ・shipping_delivery_time(お届け希望時間、こちらは例えば「 午前中」を「0812」などに置き換えたいと思っています) また、Shippingsではないかもしれませんが、 1から連番を吐き出す列もつくりたいと思っています。 もしお分かりでしたら、よろしくお願いいたします。 |
umebius |
投稿日時: 2020/2/7 12:43
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 3系の受注CSVに配送情報や顧客情報を追加したい なるほど、結構項目ありますね。
複数配送は無しという前提のサイトになりますか? Shippingsが複数になる可能性があるのであれば、その対応をしないといけないための確認になります。
|
tirco |
投稿日時: 2020/2/7 12:55
対応状況: −−−
|
半人前 登録日: 2020/2/6 居住地: 投稿: 22 |
Re: 3系の受注CSVに配送情報や顧客情報を追加したい そこそこ項目があり、また加工も必要なため、大変困っておりました。
複数配送なしが前提のサイトになります。 |
umebius |
投稿日時: 2020/2/7 14:17
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 3系の受注CSVに配送情報や顧客情報を追加したい だとすると、Shippingのデータを取るにはOrderControllerのexportOrder内で
の後に
を付け加えてやります。 このカスタマイズをした上ででdtb_csvテーブルに、entity_nameをOrderDetailやOrderではなくShippingで出力したい項目のレコードを挿入してやります。 そうすればShippingからデータが取り出せると思います。
|
umebius |
投稿日時: 2020/2/7 14:18
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 3系の受注CSVに配送情報や顧客情報を追加したい お届け先電話番号01〜03を繋げる、などはまた別の話になってしまいますが、とりあえず試していただければ。
addr02なんかはこれでいけるのではないでしょうか。 |
tirco |
投稿日時: 2020/2/7 14:43
対応状況: −−−
|
半人前 登録日: 2020/2/6 居住地: 投稿: 22 |
Re: 3系の受注CSVに配送情報や顧客情報を追加したい ありがとうございます!
いただいたコードを追加して、無事に値が取得できました。 本当に助かりました。感謝いたします。 データの加工はShipping.phpのgetで $this->tel01.'-'.$this->tel02.'-'.$this->tel03; などすることでできました。 時間帯の加工も自分でやってみます。 出力したCSVに毎回1行目から連番を振る列をつくる、という機能は、 ここではなく新たにスレッドを立てた方が良いのでしょうか? |
umebius |
投稿日時: 2020/2/8 17:20
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 3系の受注CSVに配送情報や顧客情報を追加したい 連番を作るのはdtb_csvにレコード追加してもしなくても、どちらでもできるですが、追加する前提で考えると、dtb_csvのその項目が来た時に、連番の値を代入してやれば良いんですね。
exportDataのコールバックを登録する前に$i = 0;のように初期化しておいて、 exportDataのコールバックに参照渡しで渡してやり、あとは 登録したdtb_csvの項目が来た時に、$ExportCsvRow->setDataしてやれば良いと思います。 if ($Csv->getFieldName() === 'hogehoge'){ $ExportCsvRow->setData(++$i); }
|
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |