バージョン選択

フォーラム

メニュー

オンライン状況

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

サイト内検索

質問 > 管理機能 > 複数配送設定を有効にするとお客様情報入力画面で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()というメソッドはありませんという旨のエラーが発生しております。

通常、画面操作ではこのようなデータは登録できないと思うので、
データベースでデータを確認されたほうがよいかもしれません。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

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エラーが出る
データベースのテーブル構造を確認して説明をまとめますので、少しお待ちください。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

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テーブルに存在しないレコードが登録されていたりしないでしょうか?


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

econoha
投稿日時: 2019/2/20 18:17
対応状況: −−−
新米
登録日: 2019/2/18
居住地:
投稿: 4
Re: 複数配送設定を有効にするとお客様情報入力画面で500エラーが出る
株式会社シロハチ様

ご返信ありがとうございます。
また、原因についてお調いただき、誠にありがとうございます。


確認致しましたが、いずれもそのような状態は確認できませんでした。。。

ですが、DeliveryRepository.phpを最新バージョンのものに差し替えたところ、
上手く動作するようになりました。




ご教授頂きありがとうございました。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,703名です
総投稿数は109,945件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1638
8
red
1570
9
mcontact
1283
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

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

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.