商品ごと送料設定モジュール使用時、カートでエラーが出ます 投稿する

投稿者:Huckle Berry  投稿日時:2025-04-22 10:48:21
以前こちらで相談させていただきました。
https://saitodev.co/app/bulletin/board/topic/detail/284

続きとなります。

soycms(version: 3.20.3)
soyshop(2.12.16)
商品ごと配送料設定モジュール(バージョン0.9)
を使用しています。

ログインしていない状態で、カートページ(インストールディレクトリ/cart)にアクセスすると
下記エラーが出力されます。

Fatal error: Uncaught Error: Call to a member function getAddress() on null in /xxx/cms/soyshop/webapp/src/logic/cart/CartLogic.class.php:593 Stack trace: 
#0 /xxx/cms/soyshop/webapp/src/module/plugins/delivery_each_product/soyshop.delivery.php(65): CartLogic->getAddress() 
#1 /xxx/cms/soyshop/webapp/src/logic/plugin/extensions/soyshop.delivery.php(119): DeliveryEachProductModule->getPrice() 
#2 /xxx/cms/soyshop/webapp/lib/soy2_build.min.php(8280): SOYShopDeliveryDeletageAction->run('soyshop.deliver...', 'delivery_each_p...', Object(DeliveryEachProductModule)) 
#3 /xxx/cms/soyshop/webapp/src/cart/_common/classes.php(135): SOY2Plugin::invoke('soyshop.deliver...', Array) 
#4 /xxx/cms/soyshop/webapp/src/cart/_common/classes.php(108): MainCartPageBase->getDeliveryMethod(Object(CartLogic)) 
#5 /xxx/cms/soyshop/webapp/src/cart/_common/classes.php(43): MainCartPageBase->getInstalledModulesCount() 
#6 /xxx/cms/soyshop/webapp/src/cart/_common/pages/Cart01Page.class.php(134): MainCartPageBase->__construct() 
#7 /xxx/cms/soyshop/webapp/lib/soy2_build.min.php(4008): Cart01Page->__construct() 
#8 /xxx/cms/soyshop/webapp/src/cart/_common/page.php(67): SOY2HTMLFactory::createInstance('Cart01Page') 
#9 /xxx/cms/soyshop/webapp/src/cart/bootstrap/page.php(6): include_once('/home/keizo/rep...') 
#10 /xxx/cms/soyshop/webapp/src/module/site/common/cart_application.php(17): include('/home/keizo/rep...') 
#11 /xxx/path/.cache/cache_SOYShop_CartPage_bootstrap__pagea6175d88b529fcae9cc0ef98eca3b4fd.html.php(49): soyshop_cart_application('', Object(SOYShop_CartPage)) 
#12 /xxx/cms/soyshop/webapp/lib/soy2_build.min.php(4748): include('/home/keizo/rep...') #13 /xxx/cms/soyshop/webapp/src/base/site/SOYShopPageBase.class.php(73): HTMLPage->display() 
#14 /xxx/cms/soyshop/webapp/src/base/site/pages/SOYShop_CartPage.class.php(61): SOYShopPageBase->display() 
#15 /xxx/cms/soyshop/webapp/src/base/controller/cart.php(50): SOYShop_CartPage->display() 
#16 /xxx/cms/soyshop/webapp/src/base/controller/app.php(43): execute_cart_application(Array) 
#17 /xxx/cms/soyshop/webapp/src/base/SOYShopSiteController.class.php(44): do_application('cart', Array) 
#18 /xxx/cms/soyshop/webapp/lib/soy2_build.min.php(235): SOYShopSiteController->execute() 
#19 /xxx/path/index.php(8): SOY2PageController::run() #20 {main} thrown in /xxx/cms/soyshop/webapp/src/logic/cart/CartLogic.class.php on line 593

ご対応方法教えていただけると幸いです。
投稿者:齋藤毅  投稿日時:2025-04-22 10:53:29
/xxx/cms/soyshop/webapp/src/module/plugins/delivery_each_product/soyshop.delivery.php
の65行目の
$address = $this->getCart()->getAddress();

if($this->getCart() instanceof CartLogic){
	$address = $this->getCart()->getAddress();
	$itemOrders = $this->getCart()->getItems(); 
}else{
	return $price;
}
に変更したら如何でしょうか?
投稿者:Huckle Berry  投稿日時:2025-04-22 11:04:15
変更しましたが、
エラーに変化はありませんでした。
投稿者:齋藤毅  投稿日時:2025-04-22 11:53:30
/xxx/cms/soyshop/webapp/src/logic/cart/CartLogic.class.php
の593行目の
$addrs = $this->customerInformation->getAddress($key);

if($this->customerInformation instanceof SOYShop_User){
	$addrs = $this->customerInformation->getAddress($key);
}else{
	$addrs = array();
}
にしたら如何でしょうか?
投稿者:Huckle Berry  投稿日時:2025-04-22 12:10:03
エラー解消されカートが表示されました!
ありがとうございます。
ログインして投稿する