Dagr859 Posted March 4, 2020 Share Posted March 4, 2020 Bonjour à tous, je cherche à afficher le délai de livraison dans le panier pour chaque produit sous prestashop 1.7 (Voir PJ). Pour reprendre le délai d'expédition qui est indiqué dans la fiche produit. L'un d'entre vous a t-il déjà fait cette modification ? Où modifier le code ? Merci d'avance Link to comment Share on other sites More sharing options...
Prestashop Addict Posted August 6, 2020 Share Posted August 6, 2020 Bonjour, il faut faire un override de la classe classes/Cart.php dans la méthode getProducts() dans le premier select SQL il faut ajouter : , pl.`delivery_in_stock` puis dans le template themes/votretheme/templates/checkout/_partials/cart-detailed-prodct-line.tpl ajouter la ligne suivante où vous voulez afficher le délai {$product.delivery_in_stock} Et voilà 🙂 Link to comment Share on other sites More sharing options...
Gta2019 Posted December 9, 2020 Share Posted December 9, 2020 (edited) Bonjour, je suis en version 1.7.5.0 Merci pour cette piste, mais la correction du Cart.php ne m'a pas permis d'afficher la données contenue dans la table ps_product_lang champ "delivery-out-stock" J'ai bien conscience que le problème se situe entre la chaise et le clavier, mais je cherche depuis 2 jours et c'est pénible J'ai tenté, sur la version de dev, de corriger directement le cart.php (sans override) , sans résultat. Le select que j'ai corrigé se trouve vers la ligne 663 // Build SELECT $sql->select('cp.`id_product_attribute`, cp.`id_product`, cp.`quantity` AS cart_quantity, cp.id_shop, cp.`id_customization`, pl.`name`, p.`is_virtual`, pl.`description_short`, pl.`available_now`, pl.`available_later`, , pl.`delivery_in_stock`, pl.`delivery_out_stock`, product_shop.`id_category_default`, p.`id_supplier`, p.`id_manufacturer`, m.`name` AS manufacturer_name, product_shop.`on_sale`, product_shop.`ecotax`, product_shop.`additional_shipping_cost`, product_shop.`available_for_order`, product_shop.`show_price`, product_shop.`price`, product_shop.`active`, product_shop.`unity`, product_shop.`unit_price_ratio`, stock.`quantity` AS quantity_available, p.`width`, p.`height`, p.`depth`, stock.`out_of_stock`, p.`weight`, p.`available_date`, p.`date_add`, p.`date_upd`, IFNULL(stock.quantity, 0) as quantity, pl.`link_rewrite`, cl.`link_rewrite` AS category, CONCAT(LPAD(cp.`id_product`, 10, 0), LPAD(IFNULL(cp.`id_product_attribute`, 0), 10, 0), IFNULL(cp.`id_address_delivery`, 0), IFNULL(cp.`id_customization`, 0)) AS unique_id, cp.id_address_delivery, product_shop.advanced_stock_management, ps.product_supplier_reference supplier_reference'); La variable {$product.delivery_out_stock} n'est pas récupérée dans \themes\classic\templates\checkout\_partials\cart-detailed-product-line.tpl Merci d'avance de l'aide que pourrez m'apporter Edited December 9, 2020 by Gta2019 (see edit history) Link to comment Share on other sites More sharing options...
Ludovic Posted March 21, 2021 Share Posted March 21, 2021 Bonjour, Vous avez trouvé une solution ? Je n'ai eu aucun résultat probant de mon côté. Merci, Bàv Link to comment Share on other sites More sharing options...
Gta2019 Posted March 21, 2021 Share Posted March 21, 2021 Oui, j'ai fini par trouver une solution. Dans "cart.php" ajout de pl.delivery_in_stock, pl.delivery_out_stock dans la requête (ligne 664 chez moi) Dans src\Core\Filter\FrontEndObject dans "ProductFilter.php" , il faut ajouter 'delivery_out_stock', dans la whitelist il suffit ensuite d'ajouter ou on veux "{$product.delivery_out_stock}" dans cart-detailed-product-line.tpl 1 Link to comment Share on other sites More sharing options...
Ludovic Posted March 21, 2021 Share Posted March 21, 2021 19 minutes ago, Gta2019 said: Oui, j'ai fini par trouver une solution. Dans "cart.php" ajout de pl.delivery_in_stock, pl.delivery_out_stock dans la requête (ligne 664 chez moi) Dans src\Core\Filter\FrontEndObject dans "ProductFilter.php" , il faut ajouter 'delivery_out_stock', dans la whitelist il suffit ensuite d'ajouter ou on veux "{$product.delivery_out_stock}" dans cart-detailed-product-line.tpl Merci, ça marche du tonnerre ! Link to comment Share on other sites More sharing options...
michero Posted October 3, 2021 Share Posted October 3, 2021 Ca ne marche pas pour moi. Pourriez vous m'aider ? PS 1.7.7.8 Here is my ../classes/Cart.php : // Build SELECT $sql->select('cp.`id_product_attribute`, cp.`id_product`, cp.`quantity` AS cart_quantity, cp.id_shop, cp.`id_customization`, pl.`name`, p.`is_virtual`, pl.`description_short`, pl.`available_now`, pl.`available_later`, pl.`delivery_in_stock`, pl.`delivery_out_stock`, product_shop.`id_category_default`, p.`id_supplier`, p.`id_manufacturer`, m.`name` AS manufacturer_name, [..] /httpdocs/src/Core/Filter/FrontEndObject/ProductFilter.php [..] 'unit_price_full', 'up_quantity_url', 'upc', 'update_quantity_url', 'url', 'weight_unit', 'seo_availability', 'delivery_out_stock', ]; $this->whitelist($whitelist); } } J'ai essayé modifier le fichier themes/at_auros/templates/checkout/_partials/cart-detailed-prodct-line.tpl comme cela : <div class="product-line-info"> <a class="label" href="{$product.url}" data-id_customization="{$product.id_customization|intval}">{$product.name}</a> <a class="label" href="{$product.url}" data-id_customization="{$product.id_customization|intval}">{$product.delivery_out_stock}</a> </div> Je n'arrive pas a utiliser la variable {$product.delivery_out_stock}. Ca marche pas ;( Rien de s'affiche dans mon panier. Link to comment Share on other sites More sharing options...
Gta2019 Posted October 5, 2021 Share Posted October 5, 2021 Bonjour Michero, si vous ne mettez que delivery_out_stock dans cart-detailed-prodct-line.tpl , vous ne pourrez afficher que le délai spécifique de rupture de stock que vous aurez indiqué dans la fiche produit "Délai de livraison des produits épuisés avec commande autorisée:" (voir pièce jointe) Je vous conseilles donc de mettre un "if" <div class="texte"> Sur commande {if $product.delivery_out_stock} , Délai: {$product.delivery_out_stock} {else} , Délai: 8/10 jours {/if} </div> 1 Link to comment Share on other sites More sharing options...
michero Posted October 5, 2021 Share Posted October 5, 2021 (edited) En fait, je n'ai pas tout à fait compris ce que je faisais J'ai reproduit un peu bêtement ce que j'ai lu dans ce post et d'autres. Grace a vous @Gta2019 j'ai commencé à réfléchir hahaha Du coup - C'est pas uniquement des variables {$product.delivery_out_stock} et {$product.delivery_in_stock} dont j'ai besoin mais aussi de ... {$product.delivery_information} !! "Délai de livraison spécifique pour ce produit" => {$product.delivery_in_stock} "Délai de livraison des produits épuisés avec commande autorisée:" => {$product.delivery_out_stock} "Délai de livraison par défaut" => {$product.delivery_information} Afin de rajouter le délai de livraison Par Defaut au niveau de mon panier j'ai modifié uniquement le fichier themes/le_nom_de_mon_theme/templates/checkout/_partials/cart-detailed-prodct-line.tpl : [..] <a class="label" href="{$product.url}" data-id_customization="{$product.id_customization|intval}">{$product.name}</a> <a class="delivery-information">{$product.delivery_information}</a> <===== ICI [..] avec un bon class. Voila, j'ai mon "Délai de livraison par défaut" . Par contre mtn je bloque sur un IF : {If "Délai de livraison spécifique pour ce produit" } //si cette valeur exist <a class="delivery-information">{$product.delivery_in_stock}</a> {elseif "Délai de livraison des produits épuisés avec commande autorisée:"} //si cette valeur exist <a class="delivery-information">{$product.delivery_out_stock}</a> {else} <a class="delivery-information">{$product.delivery_information}</a> {/if} J'ai pensé a un truc comme cela : {if $product.additional_delivery_times == 1} {if $product.delivery_information} <span class="delivery-information">{$product.delivery_information}</span> {/if} {elseif $product.additional_delivery_times == 2} {if $product.quantity > 0} <span class="delivery-information">{$product.delivery_in_stock}</span> {elseif $product.quantity <= 0 && $product.add_to_cart_url} <span class="delivery-information">{$product.delivery_out_stock}</span> {/if} {/if} Mais la variable $product.additional_delivery_times n'est pas définie alors je ne sais pas comment faire... des idées ? Edited October 5, 2021 by michero (see edit history) Link to comment Share on other sites More sharing options...
Butterfly70 Posted October 6, 2021 Share Posted October 6, 2021 merci de vos échanges!! cela m'a permis de savoir beaucoup de choses! Link to comment Share on other sites More sharing options...
Gta2019 Posted October 6, 2021 Share Posted October 6, 2021 Merci pour compliments. Je ne suis pas développeur. J'ai juste quelques notions en php/mysql et à force de bricoler et de chercher comme vous, je commence à comprendre le merveilleux monde de prestashop. J'y passe parfois du temps, mais c'est beaucoup moins cher que de passer par une agence La dernière fois, ils m'ont fait un devis à plus de 3000€ pour une simple MAJ de module ! Pour en revenir à votre demande, j'ai pour ma part mis le texte en dur (Délai: 8/10 jours), à la place de $product.delivery_information et je ne me sert pas de $product.additional_delivery_times le délai par défaut et $product.delivery_out_stock me suffisent pour informer mes clients. Le texte en dur n'est pas la façon la plus propre, j'en ai conscience, mais ça fonctionne bien. Bon courage Link to comment Share on other sites More sharing options...
michero Posted October 6, 2021 Share Posted October 6, 2021 (edited) Malheureusement pour moi c'est plus compliqué que ca, car j'ai deux Délais d'envoi dans ma boutique et chaque produit a son propre Délais. Voici la solution : <div class="delivery-information"> {if $product.delivery_in_stock} <p>{$product.delivery_in_stock}</p> {else} <p>{$product.delivery_information}</p> {/if} </div> ...tout simplement Edited October 6, 2021 by michero (see edit history) 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