質問 > 管理機能 > 出荷CSV登録を出荷IDではなく注文IDで登録したい |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
yoko1020 |
投稿日時: 2021/3/31 17:58
対応状況: −−−
|
新米 登録日: 2021/3/31 居住地: 投稿: 4 |
出荷CSV登録を出荷IDではなく注文IDで登録したい [EC-CUBE] EC-CUBE4.0.5
[PHP] 7.3.9 テスト用にローカルで構築しています。 コードをコピーしてカスタムする程度の知識です。 出荷CSV登録を行いたいのですが、他の在庫システムとの兼ね合いで、出荷ID(配送ID)を参照するのではなく、注文IDを参照して問い合わせ番号を登録したいと考えています。 下記ファイルを修正すれば良いとは思うのですが知識がなくエラーで動きません。 そもそも下記ファイルのみの修正で実現できるのか、また修正方法やヒントをご教授いただければ幸いです。 https://github.com/EC-CUBE/ec-cube/blob/50cd40852d0fd19b3b28a1a3f4592b7d4d7e1594/src/Eccube/Controller/Admin/Order/CsvImportController.php よろしくお願い申し上げます。 |
umebius |
投稿日時: 2021/4/1 1:32
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 出荷CSV登録を出荷IDではなく注文IDで登録したい おそらくそこのカスタマイズだけで対応できますね。
$Shipping = is_numeric($row[$columnNames['id']]) ? $this->shippingRepository->find($row[$columnNames['id']]) : null; となっているのを受注データを取得するようカスタマイズすれば良いかと思います。 出荷IDではお客様からすると不便ということで、弊社でも受注IDに変更するカスタマイズはよく行います。
|
yoko1020 |
投稿日時: 2021/4/5 14:47
対応状況: −−−
|
新米 登録日: 2021/3/31 居住地: 投稿: 4 |
Re: 出荷CSV登録を出荷IDではなく注文IDで登録したい umebius 様
ご返信ありがとうございます。 ご教示いただいた部分をいろいろと変更してみたのですが、システムエラーなどがおきてしまいうまくいっていません。 $Shipping = is_numeric($row[$columnNames['id']]) ? $this->shippingRepository->find($row[$columnNames['id']]) : null; 上記文章をどのようにカスタマイズすればよろしいでしょうか。 お手数をおかけしますがご教示いただければ幸いです。 よろしくお願い申し上げます。 |
umebius |
投稿日時: 2021/4/14 11:15
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 出荷CSV登録を出荷IDではなく注文IDで登録したい ログなどからシステムエラーの内容を確認してみていただけますか。
|
yoko1020 |
投稿日時: 2021/4/15 10:57
対応状況: −−−
|
新米 登録日: 2021/3/31 居住地: 投稿: 4 |
Re: 出荷CSV登録を出荷IDではなく注文IDで登録したい ご連絡ありがとうございます。
$Shipping = is_numeric($row[$columnNames['id']]) ? $this->shippingRepository->find($row[$columnNames['id']]) : null; 受注データを取得とのことでしたので、上記の「shippingRepository」を「orderRepository」に変更したところシステムエラーとなりました。 (的はずれな修正でしょうか) エラーと思われるログは以下となります。 php.CRITICAL [11b45fbd] [1438a39] [2] [Symfony\Component\Debug\ErrorHandler:handleException:584] - Call to undefined method Eccube\Entity\Order::setTrackingNumber() {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): php.INFO [11b45fbd] [e31d96c] [2] [Symfony\Component\Debug\ErrorHandler:handleError:532] - User Deprecated: Not quoting the scalar "%name% %plugin_version% は EC-CUBE %eccube_version% には対応していません。続行しますか?" starting with the "%" indicator character is deprecated since Symfony 3.1 and will throw a ParseException in 4.0 in "/Applications/MAMP/htdocs/eccube/src/Eccube/Resource/locale/messages.ja.yaml" on line 1684. {"exception":"[object] (ErrorException(code: 0): php.INFO [11b45fbd] [e31d96c] [2] [Symfony\Component\Debug\ErrorHandler:handleError:532] - User Deprecated: Not quoting the scalar "%file_name% のアップロードに失敗しました。(%error%)" starting with the "%" indicator character is deprecated since Symfony 3.1 and will throw a ParseException in 4.0 in "/Applications/MAMP/htdocs/eccube/src/Eccube/Resource/locale/messages.ja.yaml" on line 960. {"exception":"[object] (ErrorException(code: 0): |
umebius |
投稿日時: 2021/4/15 15:58
対応状況: −−−
|
神 登録日: 2016/7/22 居住地: 投稿: 2085 |
Re: 出荷CSV登録を出荷IDではなく注文IDで登録したい エラーとなっているsetTrackingNumberはShippingに対して使用するものですので、OrderRepositoryを使って$Orderを取得した後、$Orderから$Shippingを取得してやる必要があります。
1受注につき出荷データが1つだけであれば、 $Shipping = $Order->getShippings()->first();のような形で取得できます。 複数の場合は$Order->getShippings()をforeachでループさせるような対応が必要です。
|
yoko1020 |
投稿日時: 2021/4/22 17:01
対応状況: −−−
|
新米 登録日: 2021/3/31 居住地: 投稿: 4 |
Re: 出荷CSV登録を出荷IDではなく注文IDで登録したい ご返信が遅くなり申し訳ございません。
上記アドバイスを元に修正したところ動作いたしました。 この度は貴重なアドバイスを誠にありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |