Jump to content

Déclinaison et différents libéllés


Recommended Posts

Bonjour à tous et à toutes,

J'ai un petit soucis concernant les libellés suivant la disponibilité d'un produit (avec déclinaisons).
Je suis sous PrestaShop 1.7.5.1 et j'utilise le thème grainfoodmarket 2.0.7.

Par exemple, j'ai un produit avec trois déclinaisons de taille (peu importe l'impact sur le prix), imaginons :

- Boîte A, quantité en stock : 3  --> déclinaison par défaut

- Boîte B, quantité en stock : 3

- Boite C, quantité en stock : 0

Je souhaite que le client puisse quand-même commander la boîte C, je modifie le libellé dans le comportement si rupture de stock en acceptant les commandes.

C'est la que mon "problème" survient :

De base, j'ai bien le libellé "En stock", quand je sélectionne la Boîte B dans la liste déroulante, le prix se met bien à jour, pareil pour la Boîte C mais pas le libellé, sauf si je rafraîchis la page manuellement.

Comment je peux faire pour que le libellé se mette à jour en même temps que le prix?

Est-ce dû au thème, ou PrestaShop?
 

Merci d'avance!
 

 

Link to comment
Share on other sites

J'ai trouvé la solution.
Si ça intéresse quelqu'un, voici comment j'ai fais :

Modifier le fichier core.js qui se situe dans /www/themes :

- Ajouter dans le bloc de commande après la ligne 233, après (0,r.default)(".product-prices").replaceWith(e.product_prices), le texte :

(0,r.default)(".product-availability").replaceWith(e.product_availability),

Modifier le fichier ProductController dans /www/controllers/font :

- Ajouter après la ligne 408 :

'product_availability' => $this->render('catalog/_partials/product-availability'),  

Créer un fichier product-availability.tpl dans /www/themes/grainfoodmarket/templates/catalog/_partials 

{block name='product_availability'}
  <span id="product-availability" class="product-availability">
    {if $product.show_availability && $product.availability_message}
      {if $product.availability == 'available'}
        <i class="material-icons product-available">&#xE5CA;</i>
      {elseif $product.availability == 'last_remaining_items'}
        <i class="material-icons product-last-items">&#xE002;</i>
      {else}
        <i class="material-icons product-unavailable">&#xE14B;</i>
      {/if}
      {$product.availability_message}
    {/if}
  </span>
{/block}

Modifier le fichier product.tpl dans /www/themes/grainfoodmarket/templates/catalog

- Remplacer tout ce qui est dans {block name='product_availability'} (ligne 101) par

{include file='catalog/_partials/product-availability.tpl'}

 

Vider le cache dans les paramètres de PrestaShop.

Et voilà!

Si quelqu'un a une méthode moins bourrine?

Edited by Marui (see edit history)
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...