🙈

Masquer les produits épuisés

baba_productqtvisibility · v2.0.0 · AGPL-3.0-or-later

Masque les produits en rupture, puis leur rend exactement la visibilité qu'ils avaient au retour du stock — jamais « visible partout ». Un produit réglé sur « catalogue seul » le redevient, et celui que vous avez masqué vous-même reste masqué.

agpl-3.0prestashop-9stockcataloguevisibilitelibre

Ce que ce module fait, et ce qu'il refuse

  • ✓Rend la visibilité d'origine, pas « visible partout » — « catalogue seul » et « recherche seule » survivent à la rupture
  • ✓Un produit que vous avez masqué vous-même n'est jamais rendu visible
  • ✓Le stock TOTAL décide : une seule déclinaison épuisée ne masque pas le produit
  • ✓Un produit commandable en rupture reste vendable — et c'est réglable
  • ✓La désinstallation rend sa visibilité à chaque produit masqué, avant de supprimer la table
  • ✓Seuil de rupture réglable, et visibilité de rupture au choix (nulle part, recherche seule, catalogue seul)
  • ✓L'écran affiche combien de produits sont masqués en ce moment, lu en base
  • ✓N'écrit que la colonne visibility — jamais Product::update(), qui réécrirait tout le produit
  • ✓Multiboutique : écrit dans la boutique du mouvement
  • ✓42 vérifications livrées avec le module, rejouables sans PHPUnit ni base

Le problème

Un produit en rupture reste dans votre catalogue, dans vos listes et dans votre moteur de recherche interne. Le visiteur clique, et trouve un produit qu'il ne peut pas acheter.

Ce module le masque le temps de la rupture, puis lui rend exactement la visibilité qu'il avait quand le stock revient.

Ce que le module garantit, et pourquoi c'est la seule chose qui compte

Il ne rend que ce qu'il a pris. Avant de masquer un produit, il écrit dans sa propre table la visibilité qu'il remplace. Au retour du stock, il remet *celle-là* — pas « visible partout ».

C'est la différence entre un module utilisable et un module qui détruit votre travail. Une boutique vivante a des produits réglés sur « catalogue seul » (hors recherche), sur « recherche seule » (accessibles par un lien, hors navigation), ou masqués exprès. Un module qui écrit « visible partout » au retour du stock efface ces décisions, une par une, à chaque réapprovisionnement — et rien ne vous le signale.

Quatre conséquences, toutes mesurées sur une boutique réelle :

SituationCe qui se passe
Produit en « catalogue seul », rupture puis retouril redevient « catalogue seul »
Produit que vous avez masqué vous-même, rupture puis retouril reste masqué — ce n'est pas nous qui l'avons mis là
Vous changez sa visibilité pendant la rupturela mémoire tient : c'est l'originale qui vous sera rendue
Le module est désinstalléchaque produit masqué retrouve sa visibilité avant que la table ne disparaisse

Les déclinaisons comptent comme un tout

Le module lit le stock total du produit, toutes déclinaisons confondues. Une seule taille épuisée ne masque pas le produit : les autres sont encore à vendre.

Mesuré : produit à deux déclinaisons de 300, l'une vidée — total 300, le produit reste visible. Les deux vidées — total 0, il est masqué. L'une réapprovisionnée — il revient.

Un produit commandable en rupture reste vendable

Si la commande en rupture est autorisée, sur le produit ou par le réglage de la boutique, le masquer ferait perdre la vente. Le module ne le masque donc pas — et c'est réglable, si vous préférez l'inverse.

Le réglage PrestaShop a trois états, pas deux : refusée, autorisée, ou « comme la boutique ». Le troisième est lu pour ce qu'il est.

Réglages

Back-office → Modules → *Masquer les produits épuisés* → Configurer.

  • Activer le masquage : coupé, le module ne touche plus à rien. Les produits

déjà masqués le restent — un bouton les rend tous d'un geste, et la désinstallation le fait toute seule.

  • Seuil de rupture : un produit est traité comme épuisé quand son stock total

est inférieur ou égal à ce nombre. 0 = épuisé au sens strict. Borné de 0 à 1 000 000.

  • Visibilité en rupture : *nulle part*, *recherche seule* ou *catalogue

seul*. C'est ce qu'on écrit pendant la rupture ; la visibilité d'avant est retenue quoi qu'il arrive.

  • Ne pas masquer si la commande en rupture est autorisée : par défaut oui.

L'écran affiche aussi combien de produits le module masque en ce moment — un chiffre lu en base, pas une promesse.

Ce que le module ne fait pas

  • Il ne touche pas aux prix, aux stocks, ni à quoi que ce soit d'autre que la

visibilité du produit.

  • Il ne passe pas par la mise à jour complète du produit, qui réécrit toutes

les colonnes et toutes les langues et prévient tous les modules — à chaque mouvement de stock, donc des milliers de fois pendant un import. Deux écritures ciblées suffisent.

  • En multiboutique, il écrit dans la boutique du mouvement, et ne touche au

reflet global que si le mouvement concerne la boutique par défaut du produit.

  • Il ne purge aucun cache de page. Si un cache de pages complètes est devant

votre boutique, la disparition du produit suivra l'expiration de ce cache.

Le test est livré avec le module

php tests/VisibiliteStockTest.php

42 vérifications, sans dépendance ni base de données. La décision — masquer, rendre, ou ne rien faire — vit à part du reste, et se rejoue seule.

Installation

Back-office → Modules → Installer un module → déposer le .zip, puis Configurer.

Ce que la licence exige de vous

Ce module est sous AGPL-3.0-or-later. Installé sans modification, vous n'avez rien à publier. Modifié et servi à vos visiteurs, vous devez leur offrir la source de ce module modifié — jamais celle de votre boutique, de votre thème, ni du cœur de PrestaShop. Le fichier NOTICE de l'archive porte les attributions exactes.

Le module est gratuit. Une adresse e-mail suffit.

Sans compte à créer, et la lettre d'information reste facultative.

Avis vérifiés

Ce que disent nos clients

5.0 / 5

33 avis clients

Nous travaillons avec Alexandre depuis quelques mois et sommes ravis de son a

Nous travaillons avec Alexandre depuis quelques mois et sommes ravis de son accompagnement. Alexandre comprend parfaitement les enjeux et problématiques liés à notre activité et parvient, en réponse, à nous apporter des solutions techniques et fonctionnelles en respectant coûts et délais.

Office

MONOGRAM

Malt

La résolution de mes problèmes à été rapide et efficace, je recommande :)

La résolution de mes problèmes à été rapide et efficace, je recommande :).

Marine

MES-Distribution

Malt

Super

Super

Jl

Kaigan

Malt

Au Top

Au Top. tout simplement

Elite Cbd

Canna Elite Europe Ltd

Malt

Configuration d''un VPS et migration réalisée avec succès, bons conseils, dia

Configuration d'un VPS et migration réalisée avec succès, bons conseils, diagnostique rapide et efficace de nos problèmes. Je recommande.

Lorie

GRIIN outdoor

Malt

Toujours aussi clair et clairvoyant

Toujours aussi clair et clairvoyant... ;) Un plaisir de travailler avec Alexandre

Elite Cbd

Canna Elite Europe Ltd

Malt