Jump to content
thomasjrsn

Produits disponible en fonction du client[Résolu]

Recommended Posts

Posted (edited)

Bonjour à tous,

J'utilise prestashop 1.7.5.2.

Je cherche à rendre des produits disponibles en fonction du client, par exemple son adresse email. C'est à dire que si l'adresse email correspond, le client pourra ajouter le produit à son panier sinon il ne pourra pas, et bien entendu si le client n'est pas connecté il ne pourra pas non plus accéder au produit. J'ai essayé de résoudre ce problème en me basant sur le fonctionnement mis en place quand un produit n'est plus en stock, et j'ai seulement réussi à bloquer le produit mais je n'arrive pas à prendre en compte le client.

Au niveau du code, dans le fichier ProductLazyArray.php dans la fonction addQuantityInformation:

if($this->product['id_product']==16){
$this->product['availability_message'] = 'Test message erreur';
$this->product['availability'] = 'unavailable';
}

Renvoie un message d'erreur et rend le produit indisponible, et dans product-add-to-cart.tpl:

<div class="add">
          <button
            class="btn btn-primary add-to-cart"
            data-button-action="add-to-cart"
            type="submit"
            {if !$product.add_to_cart_url}
              disabled
            {elseif $product.availability=='unavailable'}
              disabled
            {/if}
          >

Si le produit est indisponible on désactive le bouton Ajouter au panier.

Je bloque sur le fait de rendre un produit indisponible en fonction du client, car je ne vois pas comment avoir accès au client depuis le ProductLazyArray.php.

J'espère avoir bien expliqué mon problème, je ne sais pas vraiment si je suis sur la bonne voie pour mon problème donc si vous avez d'autre pistes je suis preneur.

Merci d'avance de vos réponses.

Edited by thomasjrsn (see edit history)

Share this post


Link to post
Share on other sites

Bonjour,

la variable $customer stock l'ensemble des informations d'un client notamment l'email. Tu peux afficher l'ensemble des informations de cette variable avec {$cutomer|json_encode} dans un fichier TPL.

Après tu crée une condition qui affiche ou pas le bouton ajouter selon l'email du client dans le TPL.

 

  • Thanks 1

Share this post


Link to post
Share on other sites

Bonjour,

Merci beaucoup de ta réponse, c'est ce qu'il me fallait et ça m'évite de mettre du code dans un fichier php.

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