Jump to content

Affichage du prix dans la page de détail du produit


Recommended Posts

Bonjour,

 

Je suis sous prestashop 1.6.0.6 et je rencontre un problème avec l'affichage du prix dans le détail du produit.

 

En effet, le prix affiché est égal à 0,00 euro. Alors que il est bien renseigné dans le backoffice et qu'il s'affiche très bien au niveau de la page d'accueil (product-list), celui est égal à 0 dans le détail (product.tpl).

 

J'ai donc essayé de voir d'où le problème provenait. J'ai remis le thème par défaut, et là tout est OK. En remettant mon thème, le problème se produit. J'en déduis donc que le problème vient de mon thème.

 

Seulement, en comparant le fichier product.tpl du thème par défaut et du mien, ils sont identiques. J'ai donc fais quelques tests avec le product.tpl de mon thème et je dois reconnaître que je reste assez perplexe des résultats obtenus. Je vais donc essayer de vous les expliquer.

 

Le problème vient de cette instruction (enfin je pense): {convertPrice price=$productPrice} ou peut être plus généralement du <span> dans cette partie de code: (product.tpl à partir de la ligne 251)

<p class="our_price_display" itemprop="offers" itemscope itemtype="http://schema.org/Offer">
    <link itemprop="availability" {if $product->quantity <= 0}href="http://schema.org/OutOfStock"{else}href="http://schema.org/InStock"{/if}>
    {if $priceDisplay >= 0 && $priceDisplay <= 2}
        <span id="our_price_display" itemprop="price">{convertPrice price=$productPrice}</span>
        <!--{if $tax_enabled  && ((isset($display_tax_label) && $display_tax_label == 1) || !isset($display_tax_label))}
            {if $priceDisplay == 1}{l s='tax excl.'}{else}{l s='tax incl.'}{/if}
         {/if}-->
         <meta itemprop="priceCurrency" content="{$currency->iso_code}" />
     {/if}
</p>

Si je sors l'instruction {convertPrice price=$productPrice} du <span> et que je la mets juste au-dessus de celui-ci, le prix s'affiche correctement;

{if $priceDisplay >= 0 && $priceDisplay <= 2}
        {convertPrice price=$productPrice}
        <span id="our_price_display" itemprop="price">{convertPrice price=$productPrice}</span>

Si je commente l'instruction au sein du span, je me rend compte dans les sources que le prix est bien affiché !! :blink:  mais comme il est en commentaire on ne le voit pas sur la page:

{if $priceDisplay >= 0 && $priceDisplay <= 2}
        <span id="our_price_display" itemprop="price"><!--{convertPrice price=$productPrice}--></span>

J'ai alors tenté de passer une chaîne dans le span, comme ceci:

{if $priceDisplay >= 0 && $priceDisplay <= 2}
        <span id="our_price_display" itemprop="price">{l s='test'}</span>

Et elle n'est pas affichée, mais j'ai 0,00 E à la place  :huh:

 

Je me suis alors dit que j'avais un problème de cache. Comme il s'agit d'une instance en localhost, le cache n'est pas activé et la recompilation systématique est activée. J'ai donc manuellement supprimé le contenu du rep cache/smarty/compile, supprimé le cache de mon navigateur, et même redémarré le PC, mais rien n'y fait c'est toujours pareil, 0 affiché ou alors si c'est commenté, je vois le bon prix dans les sources.

 

Force est de constater que je ne comprends pas l'origine du problème. Alors si vous avez une piste je suis preneur, et surtout n'hésitez pas si il y a quelque chose qui n'est pas clair  :blink:

 

Merci d'avance de votre aide

Amicalement,

Nico

Edited by nicocolt (see edit history)
Link to comment
Share on other sites

Coucou

 

belle recherche ^^ donc je pense que ton tpl est bon et que c'est le product.js qui déconne

essaye de renommer les fichier theme/ton_theme/js/product.js en product.old

et copie les product.js du theme défaut_bootstrap a la place dans ton theme

 

en fait le product.js vient afficher les pris par dessus le tpl

si tes prix sont bien afficher regarde les différence au niveau des calcul des prix entre les 2 fichiers et corrige celui de ton theme

 

@++

 

Loulou66

Link to comment
Share on other sites

Exact !!  :)

 

Merci de ta réponse aussi rapide :) Mais du coup je n'arrive pas bien à comprendre le rôle du js surchargeant le tpl. Tu saurais m'expliquer ? Ou peut-être existe t-il une doc bien faite qui explique cela ?

 

Merci beaucoup en tout cas  ;)

 

Amicalement,

Nico

Link to comment
Share on other sites

coucou

 

oui le JS gere en live les taxe les prix spécifiques (promo réductions etc ..) pour les différent déclinaisons du produits

quand tu affiches un produit ps affiche le produits par défaut il se peut quand tu choisi une déclinaison différente du produit que le prix ne soit pas le même ou en promo c'est le JS qui se charge d'afficher le bon prix sans rechager la page

 

@++

 

Loulou66

  • Like 1
Link to comment
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
×
×
  • Create New...