Julien.G Posted March 3 Share Posted March 3 (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 by Julien.G (see edit history) Link to comment Share on other sites More sharing options...
Prestashop Addict Posted March 4 Share Posted March 4 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 Author Share Posted March 4 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 Share Posted March 4 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 Author Share Posted March 4 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 Share Posted March 4 <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 Author Share Posted March 4 ç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