PrestaShop Error Declaration of Cart::getPackageShippingCost

On a PrestaShop site, i get error message

(1/1) ContextErrorException
Warning: Declaration of Cart::getPackageShippingCost($id_carrier = NULL, $use_tax = true, ?Country $default_country = NULL, $product_list = NULL, $id_zone = NULL) should be compatible with CartCore::getPackageShippingCost($id_carrier = NULL, $use_tax = true, ?Country $default_country = NULL, $product_list = NULL, $id_zone = NULL, bool $keepOrderPrices = false)

in Cart.php line 1021
at ErrorHandler->handleError(2, 'Declaration of Cart::getPackageShippingCost($id_carrier = NULL, $use_tax = true, ?Country $default_country = NULL, $product_list = NULL, $id_zone = NULL) should be compatible with CartCore::getPackageShippingCost($id_carrier = NULL, $use_tax = true, ?Country $default_country = NULL, $product_list = NULL, $id_zone = NULL, bool $keepOrderPrices = false)', '/var/www/vhosts/site.com/httpdocs/override/classes/Cart.php', 1021, array('className' => 'Cart', 'classDir' => '/var/www/vhosts/site.com/httpdocs/'))
in PrestaShopAutoload.php line 152

PrestaShop error

To fix this error, edit the file (location of the file depends on your hosting provider, on cpanel servers, it is public_html folder, on Plesk servers, it is httpdocs).

override/classes/Cart.php

Find line

public function getPackageShippingCost($id_carrier = null, $use_tax = true, Country $default_country = null, $product_list = null, $id_zone = null)

Replace with

public function getPackageShippingCost($id_carrier = null, $use_tax = true, Country $default_country = null, $product_list = null, $id_zone = null, $keepOrderPrices = false)

This is because orderide class have improper function definiation, this may be due to some outdated PrestaShop modules.

See PrestaShop

Need help with Linux Server or WordPress? We can help!

Leave a Reply

Your email address will not be published. Required fields are marked *