Jump to content

Ajouter Date d'achat sur une fiche produit


Recommended Posts

Bonjour,

 

Je suis actuellement sous Prestashop 1.7.7.1.

Mon site vend des motif pour machine à broder, il s'agit donc de produits dématérialisés. Le but est de rappeler au client qu'il a déjà acheté ce produit et ainsi lui éviter un achat doublon.

J'ai recherché dans le forum mais je n'ai pas trouvé de sujet pouvant m'aider.

En m'aidant d'un site internet j'avais réussi à obtenir l'affichage d'un message informant de la date d'achat d'un produit mais je me suis rendu compte que ce message s'affichait à l'identique (date identique) sur TOUTES les fiches articles. Ce n'est évidemment pas le but recherché.

Ce que je veux c'est que le message ne s'affiche que le cas échéant pour un article effectivement déjà acheté.

Pour obtenir ce premier résultat, imparfait, j'avais suivi les conseils de ce site https://www.majory-cubizolles.fr/blog/ajouter-produit-deja-achete-page-produit-prestashop-1-6/

Il s'agissait de créer un override avec un fichier ProductController.PHP qui contenait le code suivant :

<?php

Class ProductController extends ProductControllerCore
{
 public function initContent()
 {
 
 if($this->context->customer->id) // only if logged in
 {
 $bought_products = $this->context->customer->getBoughtProducts(); // only valid orders
 if($bought_products)
 {
 foreach ($bought_products as $prod) {
 
 if($prod['product_id'] = $this->product->id)
 {
 $this->context->smarty->assign(array(
 'bought_on'=> $prod['date_add']
 ));
 }
 }
 }
}
 parent::initContent();
 }
}

Ensuite il fallait vider le cache et notamment effacer le fichier class_index.php

Enfin il fallait modifier la fiche article (themes/nomdevotretheme/product.tpl) en insérant à l'endroit voulu le code

{if isset($bought_on)}
    <div class="col-xs-12">
        <div class="bought_on alert alert-info">
            {l s='You purchased this product on'} {dateFormat date=$bought_on}
        </div>    
    </div>
{/if}

J'avais préféré "innover" en insérant ce code dans le fichier "product-and-to-cart.tpl" de manière a ce que l'information de la date d'achat figure à proximité immédiate du bouton "ajouter au panier" 

Etant donné que le résultat obtenu n'est pas celui escompté, quelqu'un pourrait il m'aider car je patauge un peu là pour le coup ;) !

Merci.

Xav.

 

Link to comment
Share on other sites

Bon hé bien j'ai trouvé.

Il y a une erreur dans l'override ProductController.php

Il faut remplacer

1 hour ago, Xav5402 said:

if($prod['product_id'] = $this->product->id)

 

Par :

if($prod['product_id'] == $this->product->id)

Après avoir testé, tout semble fonctionner comme voulu.

J'ai donc résolu mon problème moi-même (Avec l'aide d'internet ;) ).

:)

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...