Hello,
I want to create a php script to calculate the shipping cost using my prestashop rules.
I understand the function to use is getPackageShippingCost from classes/Cart.php. I must mis understand how to call it/the parameters.
Here below my code.
I would rather to call with a list of product but if not possible the cart ID would be ok
I get a fatale error. (using php8.0)
How would you correct this code ?
I thank you a lot in advance for your help !
Alexandre
<?php // Inclure le fichier d'initialisation de PrestaShop require_once('/home/otokipd/www/config/config.inc.php'); // Inclure le fichier Cart.php où se trouve la fonction require_once('/home/otokipd/www/classes/Cart.php'); // Charger le contexte actuel de PrestaShop $context = Context::getContext(); // Récupérer l'ID du panier $id_cart = 13239; // Récupérer l'ID du transporteur (carrier) et la zone (zone) appropriés à votre situation $id_carrier = 219; // Modifier avec l'ID du transporteur approprié $id_zone = 113; // Modifier avec l'ID de la zone appropriée // Créer une instance de la classe Cart avec l'ID du panier $cart = new Cart($id_cart); // Créer un tableau avec les informations du produit $product_list = array( array( 'id_product' => 1026, // ID du produit 'id_product_attribute' => 0, // ID de l'attribut du produit (0 pour le produit sans attribut) 'quantity' => 1, // Quantité du produit 'is_virtual' => 0 // Indique si le produit est virtuel (1 pour virtuel, 0 pour physique) ) ); // Récupérer le coût d'expédition du colis en utilisant la méthode getPackageShippingCost() $shipping_cost = $cart->getPackageShippingCost( $id_carrier, // ID du transporteur true, // Utiliser la taxe $default_country, // Pays par défaut (utilisé si le paramètre $default_country est null) $product_list, // Liste de produits concernés par l'expédition (null pour tous les produits du panier) $id_zone, // ID de la zone false // Garder les prix de commande (keepOrderPrices) ); // Afficher le coût d'expédition if ($shipping_cost !== false) { echo "Coût d'expédition : $shipping_cost"; } else { echo "Impossible de calculer le coût d'expédition pour le transporteur $id_carrier et la zone $id_zone."; } ?>