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.