質問 > 管理機能 > 複数配送設定を有効にするとお客様情報入力画面で500エラーが出る |
管理機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
econoha |
投稿日時: 2019/2/18 20:33
対応状況: −−−
|
新米 登録日: 2019/2/18 居住地: 投稿: 4 |
複数配送設定を有効にするとお客様情報入力画面で500エラーが出る [現象] 複数配送設定を有効にしたところ、 異なる配送方法の商品をカート内に入れることはできたのですが、 「レジに進む」ボタンをクリックすると500エラーが出てしまいます。 エラー: FatalErrorException in DeliveryRepository.php line 106: Error: Call to a member function getId() on null in DeliveryRepository.php line 106 EC-CUBE自体の経験もとても浅く、 エラーの内容はIDを取れて来ていないということだと思っているのですが、 どのようにすればエラー回避ができるのか、ご教授いただけますようお願い申し上げます。 該当箇所 /** * 選択可能な配送業者を取得 * * @param $payments * @return array */ public function findAllowedDeliveries($productTypes, $payments) { $d = $this->getDeliveries($productTypes); $arr = array(); foreach ($d as $Delivery) { $paymentOptions = $Delivery->getPaymentOptions(); foreach ($paymentOptions as $PaymentOption) { foreach ($payments as $Payment) { if ($PaymentOption->getPayment()->getId() == $Payment['id']) { $arr[$Delivery->getId()] = $Delivery; break; } } } } return array_values($arr); } --------------------------------- [EC-CUBE] EC-CUBE 3.0.10 [レンタルサーバ] Xserver [データベース] MySQL 5.5.45 [ブラウザ] Chrome [導入プラグインの有無] GmoEpsilon,おすすめ商品管理プラグイン,サイトマップ,定休日管理プラグイン,関連商品プラグイン |
okazy |
投稿日時: 2019/2/19 10:17
対応状況: −−−
|
半人前 登録日: 2017/10/11 居住地: 投稿: 28 |
Re: 複数配送設定を有効にするとお客様情報入力画面で500エラーが出る 最新の3.0.17で動作確認をしてみましたが500のエラーは発生しませんでした。
バグが修正された直接的なプルリクは見つけられなかったのですが、3.0.14で商品追加のバリデーション周りが修正されているようです。 https://github.com/EC-CUBE/ec-cube/pull/1665 お使いのバージョンが3.0.10と少し古いバージョンをお使いになられているので、一度バージョンアップを検討されてみてはいかがでしょうか? |
468 |
投稿日時: 2019/2/19 10:43
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 複数配送設定を有効にするとお客様情報入力画面で500エラーが出る 管理画面の設定>基本情報設定>配送方法設定の配送先編集画面にて、
支払方法設定のチェックボックスが1件も選択されていない配送先が存在していませんか? 配送方法に紐づく支払方法のIDを取得しようとしてエラーになっていると思います。 $PaymentOption->getPayment()->getId() の箇所で、 $PaymentOption->getPayment()の返り値がnullになっており、 nullにはgetId()というメソッドはありませんという旨のエラーが発生しております。 通常、画面操作ではこのようなデータは登録できないと思うので、 データベースでデータを確認されたほうがよいかもしれません。
|
econoha |
投稿日時: 2019/2/19 11:42
対応状況: −−−
|
新米 登録日: 2019/2/18 居住地: 投稿: 4 |
Re: 複数配送設定を有効にするとお客様情報入力画面で500エラーが出る okazy様
ご返信ありがとうございます。 仰る通りですね... 以前プラグインとの兼ね合いでエラーを起こしたこともあるので、 早速、ローカルを作成して一度バージョンアップしてみようと思います。 結果について追ってご報告させていただきます。 |
econoha |
投稿日時: 2019/2/19 12:30
対応状況: −−−
|
新米 登録日: 2019/2/18 居住地: 投稿: 4 |
Re: 複数配送設定を有効にするとお客様情報入力画面で500エラーが出る 株式会社シロハチ様
ご返信ありがとうございます。 管理画面の設定>基本情報設定>配送方法設定の配送先編集画面にて、 支払方法設定のチェックボックスが1件も選択されていない配送先が存在していませんか? >確認致しましたが、すべて何かしらの支払い方法設定のチェックボックスが選択されておりました。。。 配送方法に紐づく支払方法のIDを取得しようとしてエラーになっていると思います。 $PaymentOption->getPayment()->getId() の箇所で、 $PaymentOption->getPayment()の返り値がnullになっており、 nullにはgetId()というメソッドはありませんという旨のエラーが発生しております。 通常、画面操作ではこのようなデータは登録できないと思うので、 データベースでデータを確認されたほうがよいかもしれません。 >エラーの意味はそのような内容だったのですね。 ご丁寧にご説明いただき、ありがとうございます。 データベースで確認した方が良いとのことですが、具体的な確認事項をお教えいただくことは可能でしょうか? 何から何まで申し訳ございませんが、ご教授いただけますと幸いです。 |
468 |
投稿日時: 2019/2/20 9:19
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 複数配送設定を有効にするとお客様情報入力画面で500エラーが出る データベースのテーブル構造を確認して説明をまとめますので、少しお待ちください。
|
468 |
投稿日時: 2019/2/20 17:54
対応状況: −−−
|
神 登録日: 2008/10/26 居住地: 投稿: 3217 |
Re: 複数配送設定を有効にするとお客様情報入力画面で500エラーが出る 関連のありそうなテーブルは以下のテーブルかと思います。
dtb_delivery = 配送業者マスタ dtb_payment = 支払方法マスタ dtb_payment_option = 配送業者毎の支払方法(有効)のデータ (delivery_id, payment_idで繋がりを管理) 例えば、dtb_deliveryテーブルにレコードが存在するがdtb_payment_optionテーブルに1件もレコードが存在しないような 配送業者はありませんか? もしくはdtb_payment_optionテーブルにdtb_paymentテーブルに存在しないレコードが登録されていたりしないでしょうか?
|
econoha |
投稿日時: 2019/2/20 18:17
対応状況: −−−
|
新米 登録日: 2019/2/18 居住地: 投稿: 4 |
Re: 複数配送設定を有効にするとお客様情報入力画面で500エラーが出る 株式会社シロハチ様
ご返信ありがとうございます。 また、原因についてお調いただき、誠にありがとうございます。 確認致しましたが、いずれもそのような状態は確認できませんでした。。。 ですが、DeliveryRepository.phpを最新バージョンのものに差し替えたところ、 上手く動作するようになりました。 ご教授頂きありがとうございました。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |