guig06 Posted December 16, 2019 Share Posted December 16, 2019 Bonjour, J'utilise un ERP connecté à Prestashop 1.7 pour la gestion des stocks. L'ERP envoit des données à Prestashop et inversement en utilisant le webservice. Problématique : Je souhaite autoriser / empêcher la commande / afficher un message de disponibilité (message si hors stock) différent en fonction des déclinaisons, ce qui n'est pas possible nativement avec Prestashop. Ce paramétrage se fait au niveau des produits. J'ai rajouté une colonne availability_message dans la table ps_stock_available dans laquelle l'ERP envoie un message de disponibilité pour chaque produit et déclinaison. J'arrive bien à récupérer l'info sur mes pages produits grâce à un override des classes StockAvailable et Product. Dans la classe Product je rajoute ce code : $row['available_message'] = StockAvailable::getAvailabilityMessage( (int) $row['id_product'], $id_product_attribute ); Ensuite dans mon template product-add-to-cart.tpl j'utilise la variable {$product.available_message}. Mon code fonctionne, lorsque je vais sur une page produit le message s'affiche bien, mais le problème est que lorsque je change de déclinaison le message ne s'actualise pas. Je ne trouve pas dans quel fichier js je dois rajouter cette variable, apparemment ce n'est pas dans product.js. Normalement c'est le même principe que pour la référence ou le code EAN des déclinaisons qui s'actualisent lorsqu'on change de déclinaison. Link to comment Share on other sites More sharing options...
guig06 Posted December 19, 2019 Author Share Posted December 19, 2019 Bonjour, J'ai réussi à résoudre le problème : Le seul moyen pour que le message s'actualise est de placer la variable {$product.available_message} à l'intérieur de <span id="product-availability"> Si elle est à l'extérieur de ce span, ça ne fonctionne pas. Par contre, je ne sais pas comment faire pour déplacer une variable de déclinaison dans le template sans perdre l'actualisation javascript. Par exemple, je souhaiterais déplacer la référence {$product.reference_to_display} qui se trouve dans product-details.tpl en dessous du titre produit dans product.tpl. Mais je suis confronté au même problème : la référence ne s'actualise pas lorsque je change de déclinaison. Link to comment Share on other sites More sharing options...
Andriano Posted January 4, 2020 Share Posted January 4, 2020 "la référence ne s'actualise pas lorsque je change de déclinaison."=> Effectivement ! il faudra le déplacer en javascript. Link to comment Share on other sites More sharing options...
guig06 Posted January 16, 2020 Author Share Posted January 16, 2020 Lorsque je la déplace en javascript c'est le même problème. Je rajoute le code suivant en dessous du h1 dans mon template produit : <div class="product-reference product-ref hide"> <label class="label">{l s='Réf.' d='Shop.Theme.Catalog'}</label> <span class="sku">{$product.reference_to_display}</span> </div> Puis je rajoute la ligne suivante dans mon javascript : $('.product-ref span.sku').append($('.product-reference span')); Cela fonctionne j'accède au produit, mais lorsque je clique sur une déclinaison, la référence ne s'actualise pas. Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now