Jump to content
Naylou

Condition affichage des prix

Recommended Posts

Bonjour,

Je viens vers vous concernant une idée que je souhaiterai mettre en application sur mon site e-commerce.

N'étant pas développeuse, je pense que vous pourrez aisément me renseigner sur la façon de mettre en forme cette idée.

Sur mon site actuel, je n'affiche pas les prix pour les visiteurs et invités mais ils s'affichent seulement pour les gens inscrits et connectés.

Je souhaiterai mettre une phrase qui s'affichent seulement quand les prix ne sont pas affichés, du type

Merci de bien vouloir vous identifier afin de voir s'afficher nos prix de vente.

 

En gros, je pense que ce serait une ligne de code dans ce genre là :

if(prix == true){

echo "Merci de bien vouloir vous identifier afin de voir s'afficher nos prix de vente.";

}else{

echo "";

}

 

Pouvez-vous m'aider svp? 

Je souhaiterai mettre en place cette phrase sur la fiche produit et en page d'accueil au niveau du module slide des produits.

 

En vous remerciant par avance.

Edited by Naylou (see edit history)

Share this post


Link to post
Share on other sites

{if !$logged}{l s="Merci de bien vouloir vous identifier afin de voir s'afficher nos prix de vente."}{/if}

Dans les .tpl de votre thème ;) 

Edited by Eolia (see edit history)

Share this post


Link to post
Share on other sites

Merci Eolia, pouvez-vous juste m'expliquer cette partie

{l s

Je vais tester cela.Merci.

Share this post


Link to post
Share on other sites

cette partie rend votre champ texte traduisible dans les traductions du front office.

Share this post


Link to post
Share on other sites

D'accord merci !

Je vais tester ce petit bout de code de ce pas 😉

Share this post


Link to post
Share on other sites

Alors je viens de tester.

J'ai mis ca dans la fiche produit :

{block name='product_info_prix'}
            <div>{if !$logged}{l s="Merci de bien vouloir vous identifier afin de voir s'afficher nos prix de vente."}{/if}</div>
            {/block}

La phrase s'affiche bien en revanche elle reste affichée quand on est connecté.

Ai-je loupé quelque chose?

Share this post


Link to post
Share on other sites

heu... version Prestashop svp ?

De la version 1.2 à 1.6 le code est clair dans le frontController: 

        $this->context->smarty->assign(array(
            'id_currency_cookie' => (int)$currency->id,
            'logged'             => $this->context->customer->isLogged(),
            'customerName'       => ($this->context->customer->logged ? $this->context->cookie->customer_firstname.' '.$this->context->cookie->customer_lastname : false)
        ));

essayez avec celle-ci qui fonctionne aussi dans les versions plus récentes: is_logged (à la place de logged)

{block name='product_info_prix'}
     <div>{if !$is_logged}{l s="Merci de bien vouloir vous identifier afin de voir s'afficher nos prix de vente."}{/if}</div>
{/block}

 

Share this post


Link to post
Share on other sites

Ah oui pardon, la version c'est la 1.7.6.1.

D'accord, je vais tester pour voir 😉

Share this post


Link to post
Share on other sites

Aucun changement, la phrase s'affiche mais quand on est connecté au site, la phrase reste.

Pour information (on ne sait jamais 😉😞

J'avais caché les prix pour les visiteurs et les invités.

et je mets mon block dans mon fichier theme/mon-theme/templates/catalog/product.tpl :

{block name='product_info_prix'}

<div>{if !$is_logged}{l s="Merci de bien vouloir vous identifier afin de voir s'afficher nos prix de vente."}{/if}</div>

{/block}

Share this post


Link to post
Share on other sites

bah ce n'est pas logique car la variable $logged existe bien en 1.7 pourtant...

Share this post


Link to post
Share on other sites

Je le place peut-etre au mauvais endroit, je le place en dessous de "product_prices", product-information" :

Quote

{block name='product_prices'}
            {include file='catalog/_partials/product-prices.tpl'}
          {/block}

          <div class="product-information">
            {block name='product_description_short'}
              <div id="product-description-short-{$product.id}" itemprop="description">{$product.description_short nofilter}</div>
            {/block}

            {block name='product_info_prix'}
            <div>{if !$is_logged}{l s="Merci de bien vouloir vous identifier afin de voir s'afficher nos prix de vente."}{/if}</div>
            {/block}

            {if $product.is_customizable && count($product.customizations.fields)}
              {block name='product_customization'}
                {include file="catalog/_partials/product-customization.tpl" customizations=$product.customizations}
              {/block}
            {/if}

 

 

Share this post


Link to post
Share on other sites

Non, ça devrait fonctionner mais avec les 1.7 il faut s'attendre à tout, donc....

Désolé de ne pouvoir vous aider plus.

 

Sur 1.6 ca fonctionne parfaitement:

Connecté:

image.thumb.png.285b9b91eaa992cc77d8686f17bb3567.png

 

Pas connecté:

image.thumb.png.3aa46923e5b44b76b3c6aa14ebc0554a.png

 

Share this post


Link to post
Share on other sites

Aucun soucis, vous avez essayé de m'aider, c'est très gentil :-).

et ce code qui est prévu pour les versions antérieures, ne fonctionnerait pas sur la 1.7.6.1 du coup?

$this->context->smarty->assign(array(
            'id_currency_cookie' => (int)$currency->id,
            'logged'             => $this->context->customer->isLogged(),
            'customerName'       => ($this->context->customer->logged ? $this->context->cookie->customer_firstname.' '.$this->context->cookie->customer_lastname : false)
        ));

Edited by Naylou (see edit history)

Share this post


Link to post
Share on other sites

Sinon il y a des modules pour ça (comme par exemple https://addons.prestashop.com/fr/gestion-prix/22531-cacher-les-prix-facilement.html)

N'oubliez pas que le prix ne s'affiche pas que sur la page produit, mais aussi les pages catégories, recherche, nouveaux produits, promotions, meilleurs ventes, aperçu rapide, sur d'autres modules.

 

vous avez des caches qui sont activés ? (dans paramètres avancés > performances)

Share this post


Link to post
Share on other sites

en 1.7.6.1 le code a changé

$customer.is_logged

Share this post


Link to post
Share on other sites

En 1.7, le code qui marchait des 1.6 ne marche plus et en 1.7.6.1, le code qui marchait des 1.7 ne marche plus. Tout un programme

  • Haha 1

Share this post


Link to post
Share on other sites

D'accord.

coeos.pro : en fait, j'ai caché les prix partout pour les personnes qui ne sont pas connectées. Je voulais juste afficher une petite phrase quand les prix sont cachés pour les inciter à se connecter/s'inscrire, et une fois la personne connectée, les prix s'affichent mais la phrase elle ne s'affiche plus car n'a plus lieu d'être.

Cette version 1.7.6.1 m'a l'air vraiment très complexe...

Share this post


Link to post
Share on other sites

Je ne dirais pas complexe mais différente. 

Sinon tu peux toujours afficher en bandeau en haut ou en bas de l'écran pour afficher ton message comme ça il sera là sur toutes les pages et tu peux même rajouter un lien vers la page d inscription sur ce bandeau 

Share this post


Link to post
Share on other sites

Oui mais du coup le bandeau resterait visible même quand les gens sont connectés et dans ce cas la elle est inutile...

pas simple l'histoire 😄

 

Share this post


Link to post
Share on other sites
il y a 40 minutes, Naylou a dit :

en fait, j'ai caché les prix partout pour les personnes qui ne sont pas connectées.

ben il suffit de cocher ça hein pour les cacher^^

image.thumb.png.0bd0f18cdbd548405ca975a99fee09f1.png

Share this post


Link to post
Share on other sites

c'est certainement ce qu'elle a fait, mais elle veut afficher un message "connectez vous pour voir les prix" pour que les visiteurs ne se disent pas c'est juste une vitrine, on ne peut pas commander.

Share this post


Link to post
Share on other sites

J'ai compris j'ai fait la même chose sur mon shop de dev (voir screens plus haut)

Mais dans son cas le $customer.is_logged doit fonctionner vu qu'il est assigné dans le frontController de la 1.7

si pas loggé message.

Share this post


Link to post
Share on other sites

oui c'est bien ce que j'ai fait, cacher les prix pour les visiteurs et les invités, 😉 dans le back-office client-> groupes.

 

Share this post


Link to post
Share on other sites

et vous avez mis {!$customer.is_logged} dans votre tpl ?

Share this post


Link to post
Share on other sites

Ouiiiiiiiiiiiiiiiii youpi ca fonctionne !!!!

en effet, c'était un oubli de ma part, j'en suis fortement désolée 🤐

Le bout de code rajouté est donc :

Quote

{block name='product_prices'}
            {include file='catalog/_partials/product-prices.tpl'}
          {/block}

          <div class="product-information">
            {block name='product_description_short'}
              <div id="product-description-short-{$product.id}" itemprop="description">{$product.description_short nofilter}</div>
            {/block}

            {block name='product_info_prix'}
            <div>{if !$customer.is_logged}{l s="Merci de bien vouloir vous identifier afin de voir s'afficher nos prix de vente."}{/if}</div>
            {/block}

            {if $product.is_customizable && count($product.customizations.fields)}
              {block name='product_customization'}
                {include file="catalog/_partials/product-customization.tpl" customizations=$product.customizations}
              {/block}
            {/if}

Merci beaucoup !!!!!

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

×
×
  • Create New...

Important Information

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