Jump to content

Comment afficher la disponibilité des produits dans le panier ?


Recommended Posts

Bonjour,

Dans ma boutique 1.7.4.0, j'autorise la commande de produits hors stock. J'ai un nombre conséquent de produits présentés mais il m'est impossible de tout avoir en stock. Et la plupart des clientes (oui en mercerie, on a très peu de clients hommes ;-) )sont contentes de trouver chez moi, même avec un peu d'attente, ce qui est introuvable ailleurs.
 
En back-office, dans l'onglet quantités de chaque fiche produit, j'indique la mention "livrable sous x jours" dans le champ "si rupture de stock (et précommande autorisée)", x étant fonction du délai de réapprovisionnement moyen de mon fournisseur.
 
En front-office, la mention s'affiche bien dans chaque fiche produit, juste sous le bouton "ajouter au panier". Quand les produits sont en stock, j'ai bien aussi l'affichage "en stock" ou "derniers articles en stock" suivant les quantités disponibles. Jusque-là tout va bien.
 
Cependant, j'ai un nombre conséquent de clientes qui ne voient quand même pas ces mentions avant de remplir leur panier, ou qui remplissent leur panier un jour et passent commandes 2 semaines après avec un changement de stock entretemps...
 
Et comme la disponibilité n'est pas reprise dans le récapitulatif du panier, ces clientes commandent et ne s'aperçoivent de l'indisponibilité d'un produit que lorsqu'elles reçoivent le mail "en attente de réapprovisionnement". Et en plus elles ne savent pas quel(s) produit(s) de leur commande est(sont) concerné(s) !
 
Cela provoque beaucoup de frustration et quelques litiges car ces clientes estiment ne pas avoir été informées avant paiement. J'ai beau préciser tout ça dans une page "délais et frais de livraison" sur le site ainsi que dans les conditions générales de vente, rien n'y fait, il y en a toujours pour "passer à côté" de l'information.
 
Cela me fait aussi perdre un temps fou en communication par mail, téléphone, Facebook, etc. Et je ne parle pas des commentaires peu flatteurs sur les réseaux sociaux !!!
 
Ce qu'il me faudrait pour contourner ce problème : la possibilité de rajouter le "product-availability" sur chaque ligne de produit dans le panier, ainsi les clientes seraient clairement informées de ce qui est disponible ou pas et prendraient la décision de commander (ou pas) en toute connaissance des choses...
 
J'ai cherché partout et n'ai trouvé aucune solution clé en main pour faire ça, sachant que je ne sais rien coder. Je peux modifier les fichiers sous ftp quand on me dit où écrire quoi mais pas plus...
J'ai aussi bien regardé les offres de modules mais aucun ne propose l'information "à la ligne produit", au mieux c'est une date de livraison estimée pour toute la commande.
 
J'ai été assez longue dans mon explication, j'espère être assez explicite. Si vous avez la possibilité de m'aider, que ce soit avec le nom d'un module existant ou avec quelques lignes de codes, je vous en serais vraiment reconnaissante...
 
Merci d'avance,
 
Si ça peut aider, l'adresse de la boutique est https://legrenierdorely.fr
Link to comment
Share on other sites

Bonjour,

Je suis pas meilleur que toi, mais j'ai déjà réussi à rajouter dans mon panier une ligne supplémentaire sous chaque produit.

C'est dans ce fichier :

www/themes/TONTHEME/templates/checkout/_partials/cart-detailed-product-line.tpl

Voir en gras le code que j'ai rajouté :

<div class="product-line-grid-body col-md-4 col-xs-8">
    <div class="product-line-info">
    <span style="font-size:12px;"> <a href="{$link->getCategoryLink($product.id_category_default)}"> {if isset($product.id_category_default)}
{assign var='catname' value=Category::getCategoryInformations(array($product.id_category_default))}
{$catname[$product.id_category_default].name}</a></span>
{/if}
</br>
      <a class="h6" href="{$product.url}" data-id_customization="{$product.id_customization|intval}">{$product.name}</a>
      </br>
      <a class="label" href="{$product.url}">{$product.custom_field}</a>

    </div>
 

 

=>>>  Toi à priori tu dois y insérer ce code

</br>
      <a class="label" href="{$product.url}">{$product.availability}</a>

 

Franchement en toute humilité, c'est au cas ou çà fonctionne aussi chez toi 🙄

Bon courage

David

Link to comment
Share on other sites

Merci infiniment pour ta réponse David.

Le code n'a pas fonctionné chez moi (ça inscrivait "en stock" pour tout) mais au moins j'ai pu accéder au bon fichier et tester mes lignes de codes au bon endroit. Donc rien que pour ça, merci d'avoir répondu car c'est ça qui m'a permis d'y arriver.

Un après-midi entier à tâtonner mais j'ai fini par réussir avec une simple fonction IF ... Ouf !

Là mes fichiers sont fermés mais si besoin, je peux retourner faire un copier-coller et donner le code à qui en aura besoin aussi 🙂

Link to comment
Share on other sites

  • 2 months later...
  • 7 months later...

Hello,

Si c'est pour afficher le messages de disponibilité des produits dans le recap panier pour chaque produit, il faut modifier le fichier tpl suivant :

templates/checkout/_partials/cart-detailed-product-line.tpl

et ajouter cette ligne :

{if $product.stock_quantity > 0 }<span class="text-muted">{$product.availability_message}</span> {else} <span class="text-muted">{$product.available_later}</span> {/if}</div>{/if}

 

 

Link to comment
Share on other sites

  • 1 year later...
  • 1 year later...

Bonjour,

j'ai essayé également, cependant cela ne s'affiche pas non plus.

Quand j'utilise : </br>
      <a class="label" href="{$product.url}">{$product.availability}</a>, cela affiche toujours en stock même si ça ne l'est plus.

Si j'utilise : {if $product.stock_quantity > 0 }<span class="text-muted">{$product.availability_message}</span> {else} <span class="text-muted">{$product.available_later}</span> {/if}</div>{/if}

Page blanche. (il y a une fermeture de balise div et de "if" en trop). Quand je les enlève, rien ne se passe, pourtant cela semble être le bon endroit.

Du coup je serai preneur pour le code complet afin de l'adapter si c'est possible svp !
 

Un grand merci d'avance !

Fred

Link to comment
Share on other sites

On 4/21/2022 at 10:45 AM, Fredoxx said:

Bonjour,

j'ai essayé également, cependant cela ne s'affiche pas non plus.

Quand j'utilise : </br>
      <a class="label" href="{$product.url}">{$product.availability}</a>, cela affiche toujours en stock même si ça ne l'est plus.

Si j'utilise : {if $product.stock_quantity > 0 }<span class="text-muted">{$product.availability_message}</span> {else} <span class="text-muted">{$product.available_later}</span> {/if}</div>{/if}

Page blanche. (il y a une fermeture de balise div et de "if" en trop). Quand je les enlève, rien ne se passe, pourtant cela semble être le bon endroit.

Du coup je serai preneur pour le code complet afin de l'adapter si c'est possible svp !
 

Un grand merci d'avance !

Fred

Je ne pense pas qu'il soit nécessaire d'utiliser des conditions (if). essaie de placer cette ligne:

<b><span class="delivery-information">{$product.availability_message}</span></b>

Et est-ce que dans l'option "livraison" des fiches produits tu as bien l'onglet "Délai de livraison par défaut" coché?

J'ai mis cette solution avec exemples dans ce post: https://www.prestashop.com/forums/topic/1062937-afficher-le-temps-de-livraison-hors-stock-dans-le-panier/?tab=comments#comment-3388582

Edited by DaDa Bikinis (see edit history)
Link to comment
Share on other sites

Merci pour ta réponse !

J'ai regardé tes photos : C'est exactement ce que je souhaite :P !

Alors j'ai tenté, et, bizarrement j'ai eu l'impression que le message s'est affiché de manière furtive, pendant un bref instant dans le panier avant de disparaitre aussitôt.

Depuis plus rien.

J'ai supprimé la ligne, essayé de la mettre sous l'image, sous le produit, sous le titre, bref un peu partout, mais il n'apparait pas. Je n'ai pas non plus d'erreur.

J'ai bien coché dans les paramètres l'autorisation de commande des produits hors stock. J'ai tenté également de le mettre en "décoché" puis de cocher uniquement dans la fiche produit.
Rien y fait.
Comme si quelque chose en empêchait l'affichage. Est-ce que tu pourrais me montrer l'emplacement où tu l'as intégré dans ton .tpl stp ? J'ai peut-être fait une bourde ...
Ou bien de mettre en pièce jointe ton fichier tpl. Je pourrai peut-être les comparer et y déceler une erreur dans le mien.

Edited by Fredoxx (see edit history)
Link to comment
Share on other sites

4 hours ago, Mediacom87 said:

Utilisez l'inspecteur de code de votre navigateur pour connaitre les div qui sont mises à jour suite à la prise en compte des déclinaisons ou du changement de quantité car cela fait certainement faire disparaitre votre code.

Bonjour, 

merci pour cette piste. J'ai donc inspecté le code, mais je ne vois pas de changement à l'ajout de produits hors stock... Cela dépasse malheureusement mes faibles compétences pour en trouver l'origine 😕.
Je vais persévérer un peu, mais je doute d'une issue positive. Vu que cela ne marche pas pour moi, je pense que cela vient du thème ou d'un module bloquant.

Link to comment
Share on other sites

Petite avancée, pour mettre le délais de fabrication dans le panier. La variable $product.quantity est utilisée pour indiquer le stock disponible dans le catalogue, mais aussi pour indiquer la quantité d'articles dans le panier. Du coup la variable $product.delivery_information qui teste $product.quantity va forcément avoir en sortie un article en "stock" lorsqu'on l'affiche dans le panier.

Donc une avancée, mais pas vraiment. Quelqu'un saurait comment faire?

 

Link to comment
Share on other sites

Au final j'ai demandé à un dev de le faire pour moi, car rien ne fonctionnait. Je pense que ça venait de mon thème (comme à chaque fois). Je peux mettre ici l'intégralité de mon tpl modifié si vous voulez. Je ne sais pas comment il a fait, mais maintenant ça fonctionne.
Au pire je peux lui demander ce qu'il a modifié, en espérant qu'il soit d'accord si ça ne lui mange pas son pain :P

 

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...