Prestashop : affichage d’un produit indisponible dans le panier

Si vous avez une boutique Prestashop, vous avez peut être du régler votre boutique pour permettre de vendre vos produits en rupture de stock. C’est par exemple le cas des produits sur mesure ou avec personnalisation.

Dans Préférences > Produits :

produit rupture stock panier

Le problème est le suivant : lorsque vous êtes sur la fiche d’un produit qui peut être commandé alors qu’il est en rupture de stock, un message informe votre clients que la livraison de celui-ci risque de prendre un peu plus de temps. Vous pouvez le paramétrer dans le back office votre produit. Par contre, lorsque le produit est ajouté au panier, il n’y a pas de moyens de savoir si celui-ci est en stock ou pas. En fait, c’est un bug de Prestashop. La pastille de couleur attestant de la disponibilité du produit est toujours verte même si le produit n’est pas en stock.

Vis à vis des clients, il est préférable de mettre le doigt sur les délais qui risque d’être plus long. Pour cela, il faut modifier la ligne 37 du fichier shopping-cart-product-line.tpl situé dans le dossier de votre thème :

{if $product.active AND ($product.allow_oosp OR ($product.quantity <= $product.stock_quantity)) AND $product.available_for_order AND !$PS_CATALOG_MODE}

en

{if $product.active AND ($product.quantity <= $product.stock_quantity) AND $product.available_for_order AND !$PS_CATALOG_MODE}

Prestashop : top 10 des questions les plus récurrentes
Détection avancée des mobiles en PHP

13 Comments on “Prestashop : affichage d’un produit indisponible dans le panier”

  1. Bonjour,

    J’ai mandaté un professionnel pour créer mon e-commerce, malheureusement il n’est pas pressé d’effectué quelques modifications,entre autre celle dont vous parler ci-dessus.
    J’aimerai le faire moi-même, mais étant une novice en la matière, je ne sais pas ou se trouve le fichier shopping-cart-product-line.tpl.
    Pourriez-vous me l’indiquez?
    D’avance, merci pour votre aide.

    Nathalie

    1. Bonjour,

      Pas de soucis. Ce fichier se trouve dans le dossier de votre thème.
      Il faut aller dans le dossier « themes » qui se situe à la racine de votre hébergement, puis dans le dossier du thème qui est utilisé dans la boutique (un rapide coup d’oeil dans Préférences > Apparence vous donnera le nom du thème).

      1. Bonjour,

        j’ai testé votre modification sur mon site (v 1.2.5.0).

        La ligne d’origine est différente, je l’ai modifiée quand même comme indiquée, mais cela me met tous les boutons au rouge, que le produit soit en stock ou hors stock.

        Merci d’avance si vous pouvez m’aider.

        Voici la ligne de code originale: {if $product.active AND ($product.allow_oosp OR $product.stock_quantity > 0)}

        Bien cordialement.

      2. Bonjour,

        Effectivement, pour la version 1.2.5.0, il faut modifier la ligne 11 qui est, comme vous me l’avez écrit :
        {if $product.active AND ($product.allow_oosp OR $product.stock_quantity > 0)}
        Et la remplacer par :
        {if $product.active AND ($product.quantity <= $product.stock_quantity) AND ($product.allow_oosp OR $product.stock_quantity > 0)}

        (Je viens de tester sur une installation toute fraiche :)

        Merci d’avoir remonté cette différence.

  2. Bonjour,

    ça ne fonctionne pas, chez moi en tout cas….

    Voici le message d’erreur:

    Fatal error: Smarty error: [in …/shopping-cart-product-line.tpl line 11]: syntax error: unidentified token ‘=’ (Smarty_Compiler.class.php, line 1410) in …/tools/smarty/Smarty.class.php on line 1

    Mais mon installation n’est pas toute fraîche!

    Bien cordialement.

    Edit :

    erreur de copier-coller, il s’agit de la ligne 1095…. et non pas ligne 1.

    Fatal error: Smarty error: [in …/shopping-cart-product-line.tpl line 11]: syntax error: unidentified token ‘=’ (Smarty_Compiler.class.php, line 1410) in …/tools/smarty/Smarty.class.php on line 1095

    1. Vous avez simplement une erreur de syntaxe Smarty.
      La classe Smarty qui interprète votre code plante parce qu’il manque des crochets ou qu’il y en a trop (Smarty.class.php).
      Pouvez-vous m’envoyer le fichier que vous essayer de modifier à info@lije-creative.com svp.

      1. Bonjour,

        j’ai un problème qui ressemble un peu à celui présenté dans ce topic, en fait je cherche à ajouter « approvisionnement en cours » sur ma fiche produit mais sans pour autant accepter les commandes, dans le front office ce message apparait seulement si je coche  » accepter les commandes »!

        Quelqu’un aurait-il une solution?

        Merci d’avance ;)

      2. Bonjour,

        J’ai du mettre en place une telle modification pour un client. Il faut modifier quelques fichiers du thème que vous utilisez pour y parvenir (un peu de développement).
        Mais vous avez raison, vous ne pouvez pas avoir un produit qui n’est plus en stock et qui n’accepte pas les commandes visible dans la boutique.
        Ceci dit, c’est donc possible :)

  3. Merci. Ça fait 2 jour que je cherche et à chaque fois je tombe sur des forums de module, et autres qui n’ont rien à voir.

    J’utilise la version 1.5.2.0 et la ligne 37 n’existe pas.

    J’avais moi-même créer la colonne dispo en utilisant $product.quantity. Mais si sur la fiche produit, quantity correspond au stock, sur la page panier, quantity correspond à la quantité du produit ajouté au panier.
    stock_quantity fonctionne parfaitement

    Pas très logique de la part des programmeurs.

    1. Oui, l’astuce n’est valable que pour les versions de Prestashop avant la 1.5 car celle-ci ne possède pas la colonne de disponibilité du produit dans le panier. Je vois que vous vous en êtes bien sorti ;)

  4. Bonjour

    Le fichier existe bien mais il n’y a pas cette ligne dans mon fichier (bizarre?!)
    shopping-cart-product-line.tpl

    Mais moi je echerche plutôt comment afficher (sur commande) dans la liste des produits (sous le prix)
    quand la quantité est à zero mais qu’on autorise la commande hors stock
    si t’as une idée ce serait super

    Merci

  5. Bonjour,

    j’aimerais plutôt afficher les articles nécessitant un délai supplémentaire en orange, est ce possible?

    En vous remerciant.

    Cordialement Vincent.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *