Grouik Posted January 11, 2023 Share Posted January 11, 2023 (edited) Bonjour à tous, Je suis en Prestashop 1.6.1.17. J'ai par exemple un article de référence est "001" de désignation "tringle à rideau". Il a une déclinaison de référence 002 "avec rallonge", cette déclinaison rajoute 3€ au prix et 50gr en impacte de poids. Dans la page commande seule la référence de la déclinaison (en l'occurrence 002), en préparant la commande oni fait souvent l'erreur de ne pas mettre dans le colis la référence "001". Comment afficher dans la page de commande la référence de l'article ainsi que la référence de la déclinaison ? J'ai bien vu quel fichier était concerné : admin/themes/defaut/template/controlers/orders/_product_line.tpl j'ai vu où la référence est affichée dans le code : <a href="{$link->getAdminLink('AdminProducts')|escape:'html':'UTF-8'}&id_product={$product['product_id']|intval}&updateproduct&token={getAdminToken tab='AdminProducts'}"> <span class="productName">{$product['product_name']}</span><br /> {if $product.product_reference}{l s='References:'} {$product.product_reference}<br />{/if} </a> Est-ce-que quelqu'un pourrait m'aider à rajouter le micro bout de code. J'ai tenté pas mal de choses sans succès. Je vous remercie par avance, ++ Edited January 12, 2023 by Grouik (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted January 11, 2023 Share Posted January 11, 2023 Vous pouvez mettre <pre>{var_dump($product)}</pre> dans ce fichier pour voir tous les paramètres dispos (qui viennent de la fonction order->getProducts() ) Celle que vous cherchez s'appelle simplement "reference", donc {$product.reference} fera l'affaire Link to comment Share on other sites More sharing options...
Eolia Posted January 11, 2023 Share Posted January 11, 2023 (edited) la meilleure solution serait celle-ci: {if $product.product_reference || $product.reference}{l s='Reference number'}: {if $product.reference && ($product.reference != $product.product_reference)}{$product.reference}{if $product.product_reference} - {/if}{/if}{$product.product_reference}<br />{/if} Edited January 12, 2023 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
Grouik Posted January 12, 2023 Author Share Posted January 12, 2023 Super merci beaucoup Eolia car en plus de répondre à ma question vous anticipez un soucis de double affichage, ça c'est la grande classe !!! J'ai rajouté quelques parenthèses car j'avais un soucis de syntaxe que je propose pour ceux qui auront la même demande. {if ($product.product_reference || $product.reference)}{l s='Reference number'}: {if ($product.reference && ($product.reference != $product.product_reference))}{$product.reference}{if $product.product_reference} - {/if}{/if}{$product.product_reference}<br />{/if} Merci encore. Link to comment Share on other sites More sharing options...
Asu34 Posted August 30, 2023 Share Posted August 30, 2023 Bonjour, je me permets écrire ici car mon besoin est à peu près similaire. En revanche j'ai de mon côté un problème avec ce code car mes déclinaisons ont la même référence que celle du produit 😕. En faite j'aimerais afficher un texte (warning) quand la commande contient une déclinaison. Iidéalement avec ce petit plus qui serait la condition : si cette déclinaison serait autre que celle par défaut. Je ne sais pas si suis sur le bon topic, j'en ai sinon ouvert un autre ici : Merci par avance Link to comment Share on other sites More sharing options...
Grouik Posted August 30, 2023 Author Share Posted August 30, 2023 (edited) Le plus simple à mettre en place est tout simplement d'indiquer une référence à vos déclinaisons. Cela vous permet plus de modularité, car si un article possède plusieurs déclinaisons (par exemple une paire de chaussure avec plusieurs pointures) cela vous permet de les distinguer plutôt qu'un "Warning" ... Edited August 30, 2023 by Grouik (see edit history) Link to comment Share on other sites More sharing options...
Asu34 Posted August 30, 2023 Share Posted August 30, 2023 Merci pour votre réponse. J'y ai effectivement songé et confirme que ce serait plus simple et plus propre... mais malheureusement j'ai trop de produits avec beaucoup trop de déclinaisons... ça me paraît donc pas faisable de toutes les modifier :(. Link to comment Share on other sites More sharing options...
Mediacom87 Posted August 30, 2023 Share Posted August 30, 2023 il y a 1 minute, Asu34 a dit : Merci pour votre réponse. J'y ai effectivement songé et confirme que ce serait plus simple et plus propre... mais malheureusement j'ai trop de produits avec beaucoup trop de déclinaisons... ça me paraît donc pas faisable de toutes les modifier :(. Il n'y a pas de solution miracle pour corriger votre erreur. Soit, vous modifiez manuellement chaque produit, soit vous trouvez une solution pour faire un traitement de masse qui va prendre une information pour l'ajouter proprement à votre référence de base. Link to comment Share on other sites More sharing options...
Grouik Posted August 30, 2023 Author Share Posted August 30, 2023 (edited) Sinon vous en reprenant les échanges de ce post, vous mettez ce code à la place, cela devrait gazer: {if ($product.product_reference || $product.reference)}{l s='Ref'}: <span class="gras">{if ($product.reference && ($product.reference != $product.product_reference))}{$product.reference}{if $product.product_reference} - {/if}{/if}{l s='Warning'}<br />{/if} Mais comme le dit Mediacom, avec un traitement de masse l'affaire est rapide et plus propre. Si vous avez un module pour exporter vos articles en csv, ou si vous savez requêter votre base, les articles à déclinaison sont identifiables, vous pouvez leur rajouter des références en masse et réimporter (fonction native de Pretsashop) Edited August 30, 2023 by Grouik (see edit history) Link to comment Share on other sites More sharing options...
Asu34 Posted August 30, 2023 Share Posted August 30, 2023 (edited) 25 minutes ago, Grouik said: Sinon vous en reprenant les échanges de ce post, vous mettez ce code à la place, cela devrait gazer: Merci pour ce bout de code, j'en avais essayé ainsi mais ça ne fonctionne pas, ça m'affiche le warning même sur les produits qui n'ont pas de déclinaison :(. Avec toujours mon problème des déclinaisons qui ont les mêmes références que celle de base du produit Edited August 30, 2023 by Asu34 (see edit history) Link to comment Share on other sites More sharing options...
Grouik Posted August 30, 2023 Author Share Posted August 30, 2023 Désolé pour l'erreur je pense que cela devrait être mieux {if ($product.product_reference || $product.reference)}{l s='Ref'}: <span class="gras">{if ($product.reference && ($product.reference != $product.product_reference))}{$product.reference}{if $product.product_reference} - {l s='Warning'}{/if}{/if}{$product.product_reference}<br />{/if} Link to comment Share on other sites More sharing options...
Asu34 Posted August 30, 2023 Share Posted August 30, 2023 8 minutes ago, Grouik said: Désolé pour l'erreur je pense que cela devrait être mieux Merci pour votre aide :). Mais ça ne fonctionne pas vraiment avec mon cas qui est que mes déclinaisons ont la même référence que mon produit... Cette condition ne fonctionne donc pas : ...&& ($product.reference != $product.product_reference)... car elles sont les mêmes :(. Link to comment Share on other sites More sharing options...
Eolia Posted August 30, 2023 Share Posted August 30, 2023 (edited) Le code proposé dans la prochaine version PhenixSuite: {if $product.product_reference || $product.reference}{l s='Reference number'}: {if $product.reference && ($product.reference != $product.product_reference)} {$product.reference} {if $product.product_reference} - {$product.product_reference} {elseif $product.product_attribute_id} => {l s="No combination reference"} {/if} {elseif $product.product_attribute_id && $product.reference && ($product.reference == $product.product_reference)} {$product.reference} => {l s="No combination reference"} {/if} <br/> {/if} Edited August 30, 2023 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted August 30, 2023 Share Posted August 30, 2023 (edited) Si ref sur attribut: Si pas de ref sur l'attribut ou ref identique: Edited August 30, 2023 by Eolia (see edit history) Link to comment Share on other sites More sharing options...
Eolia Posted August 30, 2023 Share Posted August 30, 2023 On peut adapter le texte si les références sont les mêmes: Link to comment Share on other sites More sharing options...
Asu34 Posted August 30, 2023 Share Posted August 30, 2023 3 hours ago, Eolia said: {if $product.product_reference || $product.reference}{l s='Reference number'}: {if $product.reference && ($product.reference != $product.product_reference)} {$product.reference} {if $product.product_reference} - {$product.product_reference} {elseif $product.product_attribute_id} => {l s="No combination reference"} {/if} {elseif $product.product_attribute_id && $product.reference && ($product.reference == $product.product_reference)} {$product.reference} => {l s="No combination reference"} {/if} <br/> {/if} Trop fort ! Merci infiniment ! Pour le fun un petit bonus aurait été arriver à différencier la déclinaison si elle est différente de celle par défaut ^^ Link to comment Share on other sites More sharing options...
Asu34 Posted August 30, 2023 Share Posted August 30, 2023 4 hours ago, Mediacom87 said: Il n'y a pas de solution miracle pour corriger votre erreur. Si elle s'appelle @Eolia Link to comment Share on other sites More sharing options...
Asu34 Posted August 30, 2023 Share Posted August 30, 2023 Petit bonus +, je me demandais si c'était possible de faire un override de ce fichier ? J'ai tenté copié ce tpl dans : {shop}/override/controllers/admin/templates/orders/_product_line.tpl mais ça ne marche pas. Je n'avais jamais essayé d'override sur le dossier admin je me demande si c'est possible du coup. Link to comment Share on other sites More sharing options...
Mediacom87 Posted August 30, 2023 Share Posted August 30, 2023 il y a 43 minutes, Asu34 a dit : Si elle s'appelle @Eolia Non, cela ne corrige pas votre erreur, cela trouve une solution à un problème qui ne devrait pas exister. Le problème est toujours présent et la modification de vos références reste indispensable pour faire les choses convenablement et ne plus perdre du temps ou faire des erreurs sur vos commandes. 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