Julien.G Posted March 3, 2024 Share Posted March 3, 2024 (edited) Bonjour à tous, Version de PS : v1.7.7.4 Thème (défaut/perso) : perso Hébergement : OVH Version de PHP : 7.3 J'ai modifié le fichier "delivery-slip.product-tab.tpl" dans le but d'ajouter une colonne "EAN" au tableau existant dans le bon de livraison, ce qui fonctionne très bien, par contre je n'arrive pas à récupérer les code EAN13 des déclinaisons pour les mettre dans la colonne. Voilà le code : <table class="product" width="100%" cellpadding="4" cellspacing="0"> <thead> <tr> <th class="product header small" width="15%">{l s='Reference' d='Shop.Pdf' pdf='true'}</th> <th class="product header small" width="15%">{l s='EAN' d='Shop.Pdf' pdf='true'}</th> <th class="product header small" width="55%">{l s='Product' d='Shop.Pdf' pdf='true'}</th> <th class="product header small" width="15%">{l s='Qty' d='Shop.Pdf' pdf='true'}</th> </tr> </thead> <tbody> <!-- PRODUCTS --> {foreach $order_details as $order_detail} {cycle values=["color_line_even", "color_line_odd"] assign=bgcolor_class} <tr class="product {$bgcolor_class}"> <td class="product left"> {if empty($order_detail.product_reference)} --- {else} {$order_detail.product_reference} {/if} </td> <td class="product center"> {if isset($order_detail.product_attribute.id)} {assign var='ean13' value=''} {foreach $ean13_results as $ean13_result} {if $ean13_result.id_product_attribute == $order_detail.product_attribute.id} {assign var='ean13' value=$ean13_result.ean13} {/if} {/foreach} {if $ean13} {$ean13} {else} --- {/if} {else} --- {/if} </td> <td class="product left"> {if $display_product_images} <table width="100%"> <tr> <td width="15%"> {if isset($order_detail.image) && $order_detail.image->id} {$order_detail.image_tag} {/if} </td> <td width="5%"> </td> <td width="80%"> {$order_detail.product_name} </td> </tr> </table> {else} {$order_detail.product_name} {/if} </td> <td class="product center"> {$order_detail.product_quantity} </td> </tr> {foreach $order_detail.customizedDatas as $customizationPerAddress} {foreach $customizationPerAddress as $customizationId => $customization} <tr class="customization_data {$bgcolor_class}"> <td class="center"> </td> <td> {if isset($customization.datas[Product::CUSTOMIZE_TEXTFIELD]) && count($customization.datas[Product::CUSTOMIZE_TEXTFIELD]) > 0} <table style="width: 100%;"> {foreach $customization.datas[Product::CUSTOMIZE_TEXTFIELD] as $customization_infos} <tr> <td style="width: 30%;"> {$customization_infos.name|string_format:{l s='%s:' d='Shop.Pdf' pdf='true'}} </td> <td>{$customization_infos.value}</td> </tr> {/foreach} </table> {/if} {if isset($customization.datas[Product::CUSTOMIZE_FILE]) && count($customization.datas[Product::CUSTOMIZE_FILE]) > 0} <table style="width: 100%;"> <tr> <td style="width: 30%;">{l s='image(s):' d='Shop.Pdf' pdf='true'}</td> <td>{count($customization.datas[Product::CUSTOMIZE_FILE])}</td> </tr> </table> {/if} </td> <td class="center"> ({if $customization.quantity == 0}1{else}{$customization.quantity}{/if}) </td> </tr> {/foreach} {/foreach} {/foreach} <!-- END PRODUCTS --> </tbody> </table> Je m'arrache les cheveux depuis quelque temps, je vous serez vraiment reconnaissant de me retirer cette épine du pied... Je vous remercie, Julien Edited March 4, 2024 by Julien.G (see edit history) Link to comment Share on other sites More sharing options...
Prestashop Addict Posted March 4, 2024 Share Posted March 4, 2024 Bonjour @Julien.G il faut faire un override de la méthode getProducts() dans la classes/order/OrderInvoice.php qui ne gère pas les déclinaisons 😞 Link to comment Share on other sites More sharing options...
Julien.G Posted March 4, 2024 Author Share Posted March 4, 2024 Bonjour, Merci pour la réponse. Malheureusement ça va sortir de mes compétences, vous avez des infos pour m'aiguiller ? Ou un exemple ? Merci Link to comment Share on other sites More sharing options...
Mediacom87 Posted March 4, 2024 Share Posted March 4, 2024 Et avec $order_detail.product_ean13 vous n'avez pas la bonne information ? Link to comment Share on other sites More sharing options...
Julien.G Posted March 4, 2024 Author Share Posted March 4, 2024 Je viens d'essayer avec ce code mais il affiche "---" à la place du code barre pour indiquer qu'il n'a pas l'information <table class="product" width="100%" cellpadding="4" cellspacing="0"> <thead> <tr> <th class="product header small" width="15%">{l s='Reference' d='Shop.Pdf' pdf='true'}</th> <th class="product header small" width="15%">{l s='EAN' d='Shop.Pdf' pdf='true'}</th> <th class="product header small" width="55%">{l s='Product' d='Shop.Pdf' pdf='true'}</th> <th class="product header small" width="15%">{l s='Qty' d='Shop.Pdf' pdf='true'}</th> </tr> </thead> <tbody> <!-- PRODUCTS --> {foreach $order_details as $order_detail} {cycle values=["color_line_even", "color_line_odd"] assign=bgcolor_class} <tr class="product {$bgcolor_class}"> <td class="product left"> {if empty($order_detail.product_reference)} --- {else} {$order_detail.product_reference} {/if} </td> <td class="product center"> {if isset($order_detail.product_ean13)} {assign var='ean13' value=''} {foreach $ean13_results as $ean13_result} {if $ean13_result.id_product_attribute == $order_detail.product_attribute.id} {assign var='ean13' value=$ean13_result.ean13} {/if} {/foreach} {if $ean13} {$ean13} {else} --- {/if} {else} --- {/if} </td> <td class="product left"> {if $display_product_images} <table width="100%"> <tr> <td width="15%"> {if isset($order_detail.image) && $order_detail.image->id} {$order_detail.image_tag} {/if} </td> <td width="5%"> </td> <td width="80%"> {$order_detail.product_name} </td> </tr> </table> {else} {$order_detail.product_name} {/if} </td> <td class="product center"> {$order_detail.product_quantity} </td> </tr> {foreach $order_detail.customizedDatas as $customizationPerAddress} {foreach $customizationPerAddress as $customizationId => $customization} <tr class="customization_data {$bgcolor_class}"> <td class="center"> </td> <td> {if isset($customization.datas[Product::CUSTOMIZE_TEXTFIELD]) && count($customization.datas[Product::CUSTOMIZE_TEXTFIELD]) > 0} <table style="width: 100%;"> {foreach $customization.datas[Product::CUSTOMIZE_TEXTFIELD] as $customization_infos} <tr> <td style="width: 30%;"> {$customization_infos.name|string_format:{l s='%s:' d='Shop.Pdf' pdf='true'}} </td> <td>{$customization_infos.value}</td> </tr> {/foreach} </table> {/if} {if isset($customization.datas[Product::CUSTOMIZE_FILE]) && count($customization.datas[Product::CUSTOMIZE_FILE]) > 0} <table style="width: 100%;"> <tr> <td style="width: 30%;">{l s='image(s):' d='Shop.Pdf' pdf='true'}</td> <td>{count($customization.datas[Product::CUSTOMIZE_FILE])}</td> </tr> </table> {/if} </td> <td class="center"> ({if $customization.quantity == 0}1{else}{$customization.quantity}{/if}) </td> </tr> {/foreach} {/foreach} {/foreach} <!-- END PRODUCTS --> </tbody> </table> Link to comment Share on other sites More sharing options...
Mediacom87 Posted March 4, 2024 Share Posted March 4, 2024 <td class="product center"> {if isset($order_detail.product_ean13) && !empty($order_detail.product_ean13)} {$order_detail.product_ean13} {else} --- {/if} </td> Et cela ? Link to comment Share on other sites More sharing options...
Julien.G Posted March 4, 2024 Author Share Posted March 4, 2024 ça fonctionne !! Je vous remercie infiniment, c'est TOP ! Je vous souhaite une excellente soirée 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