g_escande81 Posted July 24, 2018 Share Posted July 24, 2018 Bonjour, J'ai surchargé la methode getPackageShippingCost de la classe Cart. Pour modifier le prix de livraison pour une catégorie de produit. Le problème c'est que du coup le prix de livraison est HT et non TTC Que dois-je rajouter pour qu'il soit TTC ? avec calcul de TVA et TOTAL HT juste Voici la fonction Précision dans prestashop les livraison $dpd et $socolissimo sont bien à 20 %, j'ai du mal à comprendre pourquoi ça n'est pas pris en compte. public function getPackageShippingCost($id_carrier = null, $use_tax = true, Country $default_country = null, $product_list = null, $id_zone = null) { $shipping_cost=parent::getPackageShippingCost($id_carrier, $use_tax, $default_country, $product_list, $id_zone); if (!is_null($product_list)) { foreach ($product_list as $key => $value) { $carrierload=Carrier::getCarrierByReference(26);//So Colissimo $socolissimo=$carrierload->id; $carrierload=Carrier::getCarrierByReference(140);//DPD $dpd=$carrierload->id; $carrierload=Carrier::getCarrierByReference(85);// Colissimo etranger $colissimoetranger=$carrierload->id; if ($value['id_category_default'] == 45 && ($id_carrier==$dpd || $id_carrier==$socolissimo)) { $shipping_cost = 9.95; }elseif ($value['id_category_default'] == 45 && ($id_carrier==$colissimoetranger)) { $shipping_cost =40; } } } return $shipping_cost; } Avez vous une idée ? Merci de m'aider. Cordialement Link to comment Share on other sites More sharing options...
Eolia Posted July 24, 2018 Share Posted July 24, 2018 c'est la fonction getPackageShippingCost() Qui calcule le prix avec tva, mais vu que vous écrivez le prix en dur dans le code la tva ne sera jamais appliquée... Vous feriez mieux d'overrider getPackageShippingCost^^ Link to comment Share on other sites More sharing options...
g_escande81 Posted July 24, 2018 Author Share Posted July 24, 2018 Ben c'est bien celle là que j'override. Il faudrait que je reprenne la fonction en intégralité ? il y a pas une ligne a ajouté pour calculer la tva ? Link to comment Share on other sites More sharing options...
Eolia Posted July 24, 2018 Share Posted July 24, 2018 regardez comment est construite l'originale svp^^ Là vous appelez parent:: et juste derrière vous écrasez si ce sont vos transporteurs particuliers. Donc il suffit de modifier à l'endroit où prestashop récupère les prix par tranche. Link to comment Share on other sites More sharing options...
g_escande81 Posted July 24, 2018 Author Share Posted July 24, 2018 (edited) MErci oui en tout cas j'ai repris la fonction en entier dans le override et j'ai inséré mon code après // Additional Shipping Cost per product foreach ($products as $product) { if (!$product['is_virtual']) { $shipping_cost += $product['additional_shipping_cost'] * $product['cart_quantity']; //DEB modif quatrys pour le vin $carrierload=Carrier::getCarrierByReference(26);//So Colissimo $socolissimo=$carrierload->id; $carrierload=Carrier::getCarrierByReference(140);//DPD $dpd=$carrierload->id; $carrierload=Carrier::getCarrierByReference(85);// Colissimo etranger $colissimoetranger=$carrierload->id; if ($product['id_category_default'] == 45 && ($id_carrier==$dpd || $id_carrier==$socolissimo)) { $shipping_cost = 8.29; }elseif ($product['id_category_default'] == 45 && ($id_carrier==$colissimoetranger)) { $shipping_cost =33.33; } //FIN modif quatrys pour le vin } } Et ça fonctionne ! SUper ! Edited July 24, 2018 by g_escande81 (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted July 24, 2018 Share Posted July 24, 2018 oui mais non^^ Là vous êtes dans la boucle foreach par produit (pour les frais supplémentaires) ce qui fait que votre code est appelé pour chaque produit de la commande. Vous devriez vous mettre juste avant ce foreach pour n'appeler votre code qu'une fois et aussi pour permettre justement d'ajouter des frais de port additionnels s'il y en avait^^ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now