Jump to content

P1.7 Afficher le délai de livraison dans l minitaure des produits associés sur la page produit


Recommended Posts

Bonjour,

J'affiche le délai de livraison dans les miniatures du \templates\catalog\_partials\miniatures\product.tpl qui s'affiche très bien sur la page d'accueil des produits à la une ou sur le listing des produits par catégorie etc..., en insérant ce code à l'emplacement désiré :

{$product.delivery_in_stock}

il s’affiche d'ailleurs très bien sur la page produit également.

Mais contrairement à la page d'accueil et aux pages de catégories, l'information ne s'affiche pas dans les miniature des produits associés sous la page produit.

Hors l'affichage est géré par le même tpl que pour les autres pages.

Savez-vous pourquoi il ne s'affiche pas ?

Est-ce un conflit entre l'appel de la donnée pour le produit affiché et l'appel de la donnée pour les produits associés ?

Comment résoudre ce problème ?

Merci de votre aide.

Share this post


Link to post
Share on other sites

Bonjour,

Pourriez-vous envoyer le code que vous avez au niveau du block "{block name='product_footer'}" dans votre fichier "/templates/catalog/product.tpl" ?

Share this post


Link to post
Share on other sites

Voici le code

 

mais il n'y a rien dans ce block
 

{block name='product_accessories'}
      {if $accessories}
        <section class="product-accessories clearfix">
          <h2>{l s='You might also like' d='Shop.Theme.Catalog'}</h2>
          <div class="products row">
            {foreach from=$accessories item="product_accessory" key="position"}
              {block name='product_miniature'}
                {include file='catalog/_partials/miniatures/product.tpl' product=$product_accessory position=$position productClasses="col-xs-6 col-lg-4 col-xl-3"}
              {/block}
            {/foreach}
          </div>
        </section>
      {/if}
    {/block}

    {block name='product_footer'}
      {hook h='displayFooterProduct' product=$product category=$category}
    {/block}

la variable

{$product.delivery_in_stock}

se trouve dans

{include file='catalog/_partials/miniatures/product.tpl' product=$product_accessory position=$position productClasses="col-xs-6 col-lg-4 col-xl-3"}

Share this post


Link to post
Share on other sites

Posted (edited)
1 hour ago, DongKoo said:

la variable

{$product.delivery_in_stock}

se trouve dans

On est d'accord que vous avez "Null" quand vous afficher la valeur de votre donnée de stock dans vos miniatures d'accessoires ?

Edited by JulienPct (see edit history)

Share this post


Link to post
Share on other sites

il n'y a rien qui s'affiche

pourtant {$product.delivery_in_stock} affiche bien la valeur dans les miniatures quand on est sur la home (produit à la une) ou sur les pages de catégories.

Ces 2 affichages utilisent le même tpl que les miniatures des produits associés.

Pour être clair :

Home > Miniature Produit A > affichage du délai ok

Catégorie > Miniature Produit A > affichage du délai ok

Produit B > Miniature Produit A en associé > affichage du délai vide

Share this post


Link to post
Share on other sites

Est-ce que, dans votre TPL au niveau du block qui include vos accessoires comme cité au dessus, vous avez la valeur "delivery_in_stock" dans la variable "$product_accessory" ?

 

En gros est-ce qu'il existe quelques chose du genre : {$product_accessory.delivery_in_stock} ou {$product_accessory->delivery_in_stock} juste avant cette ligne

"{include file='catalog/_partials/miniatures/product.tpl' product=$product_accessory position=$position productClasses="col-xs-6 col-lg-4 col-xl-3"}"

Share this post


Link to post
Share on other sites

@JulienPct non il n'existe pas de variables.

C'est le tpl de base de prestashop v1.7.8.4

avec juste des modifications d'affichage (style+class) et ajout de l'appel {$product->delivery_in_stock}

Ce que je ne comprends pas, c'est pourquoi la valeur s'affiche sur les autres pages mais pas dans le bloc produits associés alors qu'ils partagent tous le même tpl.

Share this post


Link to post
Share on other sites

Posted (edited)

Le même TPL est appelé certes mais les informations envoyées à ce dernier ne sont pas forcement les mêmes. Dans le cas de votre page produit, la variable envoyée est "$product_accessory" mais rien ne dis que CETTE variable de CE TPL possède les mêmes valeurs que CETTE variable d'un AUTRE TPL.

 

Ce ne sont que des suppositions mais c'est à vérifier. Si vous ne possédez pas la valeur de votre stock dans votre fiche produit, alors vous ne l'aurez pas pour tout les TPL inclus 

Edited by JulienPct (see edit history)

Share this post


Link to post
Share on other sites

13 minutes ago, Mediacom87 said:

non, ce n'est pas le même tpl.

Quoi qu'il arrive les miniatures produits sont toutes dans le TPL dans "miniatures/product" non ?

Share this post


Link to post
Share on other sites

à l’instant, JulienPct a dit :

Quoi qu'il arrive les miniatures produits sont toutes dans le TPL dans "miniatures/product" non ?

les miniatures oui, mais la page produit en elle même est différente.

Pfff, je viens de relire la question et je viens de comprendre.

Les miniatures utilisent le même template mais par contre, comme ici on parle de modules qui affiche la liste de produits il est fort probable que les données transmises ne soient pas les même.

Il faut plonger dans les code de chaque module pour s'en rendre compte, c'est une des aberrations de PrestaShop dans la manière dont furent codés certains modules natifs avec la 1.7 on a une inconsistance de données presque sur chaque module.

 

Share this post


Link to post
Share on other sites

Merci à vous pour votre aide.

Je comprends mieux pourquoi le comportement est différent.

Et oui, c'est une aberration totale !

Share this post


Link to post
Share on other sites

Après attention, vous récupérez un texte qui est fixe et donc que le produit soit livrable ou pas en stock ou pas cette variable sera toujours le même texte.

En vrai pour afficher le bon texte il faut coder un poil plus.

Share this post


Link to post
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

Cookies ensure the smooth running of our services. Using these, you accept the use of cookies. Learn More