Product Label
v1.2.0
Product Label
- Mises à jour et support inclus pendant 12 mois
- Clé de licence livrée immédiatement par email
- Garantie satisfait ou remboursé 30 jours
- Documentation complète incluse
- Compatible avec les thèmes Hyvä
- Installation prête pour Composer
Labels produit
Les badges de promotion, les pastilles de nouveauté et les alertes de stock faible sont les leviers de conversion les moins chers d'un catalogue, et ceux que l'on greffe le plus souvent avec un script tiers qui ralentit la page. Ce module les remet à leur place : rendus par Magento lui-même, par-dessus l'image produit, sur toutes les surfaces où un produit apparaît.
Rien n'est dessiné dans le navigateur. Les labels sont calculés sur un index dédié puis écrits dans le HTML : ils survivent au Full Page Cache, ne provoquent aucun décalage de mise en page et restent visibles pour les moteurs de recherche. Une page catégorie porte ses labels au prix d'une seule requête supplémentaire, quel que soit le nombre de produits affichés.
À qui ça s'adresse
- Marchands en campagne promotionnelle qui veulent la remise visible dès la liste, pas
- Catalogues B2B où les remises sur quantité et les niveaux de stock décident de l'achat
- Équipes attentives aux Core Web Vitals et qui refusent d'ajouter un script bloquant de
seulement sur la fiche produit
plus
Bénéfices clés
- Quatorze formes, aucun fichier image — rubans d'angle, bannières, étoiles,
- Des couleurs choisies, pas codées — fond, texte et accent se sélectionnent au
- Des valeurs dynamiques honnêtes — affichez le pourcentage de remise réel, le
- Un ciblage que vous connaissez déjà — le même constructeur de conditions que les
- Toutes les surfaces, un seul réglage — listes de catégorie, résultats de recherche,
- Fluide sur tous les écrans — la taille des badges est relative à l'image produit et
- Compatible cache par conception — le rendu varie par vue magasin et par groupe
- Accessible et inclusif — une phrase lisible masquée accompagne chaque badge, donc
hexagones, étiquettes de prix et davantage, tous générés en vectoriel. Nets sur n'importe quel écran, recolorables depuis le back-office, et pas une requête HTTP de plus.
colorpicker natif de Magento. La couleur du texte est déduite de la luminance du fond selon la formule WCAG, donc un badge pâle ne part jamais avec un texte blanc illisible.
montant économisé, le tier price et son seuil de quantité, les jours restants d'une promotion, ou n'importe quel attribut produit. Les pourcentages sont arrondis à l'inférieur par défaut : promettre 30 % sur une remise de 29,6 % est une affirmation indéfendable.
règles de prix catalogue, enrichi de raccourcis prêts à l'emploi pour promotion, nouveauté, rupture, derniers exemplaires et remise sur quantité. Les préselections remplissent ce constructeur au lieu de dissimuler un second moteur simplifié derrière.
widgets, blocs de produits associés et de ventes croisées, comparateur, liste d'envies, page panier, mini-panier et page produit. Configurez une fois, puis ne surchargez que là où un emplacement doit différer.
non à la fenêtre, donc le même label reste correctement proportionné dans une grille mobile à deux colonnes comme sur une image produit pleine largeur, sans point de rupture à maintenir.
client via le contexte que Magento intègre déjà à sa clé de cache : un label réservé à un groupe ne peut pas fuiter vers un autre visiteur. Enregistrer un label invalide les pages concernées.
« -30 % » est annoncé en toutes lettres ; les positions utilisent des propriétés logiques, donc les vues magasin en écriture droite-à-gauche fonctionnent sans réglage supplémentaire ; et les préférences de mouvement réduit sont respectées.
Compatibilité
- Magento 2.4.x / équivalents Mage-OS 2.x et 3.x
- PHP 8.1, 8.2, 8.3, 8.4, 8.5
- Nécessite
wimakeit/module-core3.0.9 ou supérieur - Fonctionne sur Luma et Breeze sans configuration ;
- Multi Source Inventory est optionnel : la quantité vendable l'utilise quand il est
- i18n fourni : anglais, français, néerlandais
wimakeit/module-product-label-hyva ajoute l'ancrage de la galerie produit Hyvä et les sources Tailwind
installé, et retombe sinon sur le stock registry historique
Installez ce module via Composer. Assurez-vous que votre auth.json est configuré avec vos identifiants Wimakeit.
$ composer require wimakeit/module-product-label:^1.2.0
$ bin/magento setup:upgrade
$ bin/magento setup:di:compile
Installation notes
The standard composer require + setup:upgrade + setup:di:compile flow applies. The points below cover what's specific to this module.
Required dependency
This module requires wimakeit/module-core 3.0.9 or later. Composer will pull it automatically from the Wimakeit registry as long as the registry is declared in your project's composer.json.
Multi Source Inventory is optional. When magento/module-inventory-sales-api is present, the salable quantity condition and the {{qty}} value account for reservations; without it they fall back to the legacy stock registry. Nothing needs to be configured either way.
First reindex
Labels only appear once the index has been built. After enabling the module, run:
bin/magento indexer:reindex wimakeit_product_label_rule
Two indexers share one index table, mirroring how Magento splits catalog price rules:
| Indexer | Reacts to |
|---|---|
wimakeit_product_label_rule | a label being created, edited or deleted |
wimakeit_product_label_product | product, price, stock and category changes |
Both are safe in Update by Schedule, which is the recommended mode on large catalogues.
ACL permissions
After installation, four ACL resources are registered under System → Permissions → User Roles:
| Resource | Default |
|---|---|
Wimakeit_ProductLabel::label (view the label grid) | granted to Administrator role only |
Wimakeit_ProductLabel::label_save (create and edit labels) | granted to Administrator role only |
Wimakeit_ProductLabel::label_delete (delete labels) | granted to Administrator role only |
Wimakeit_ProductLabel::config (edit module configuration) | granted to Administrator role only |
The conditions builder is served by this module's own controller, so managing labels does not require catalog price rule permissions.
Configuration
The module ships with safe production defaults. Go to Stores → Configuration → WiMakeIT → Product Labels only if you want to change them.
General settings
| Setting | Default |
|---|---|
| Enable Product Labels | Yes |
| When several labels share a position | Stacked side by side (alt: only the highest priority) |
| Enable Debug Logging | No — leave off in production |
Display
| Setting | Default |
|---|---|
| Show labels on | all contexts (listing, search, product page, gallery, related, cart, mini-cart, wishlist, comparison, widgets) |
| Maximum labels per position | 2 |
| Write label colours as inline styles | No — colours are emitted once per page in a single nonce-carrying <style> block, which is smaller and survives an enforced style-src policy |
Dynamic values
| Setting | Default |
|---|---|
| Discount percentage rounding | Round down — a badge promising 30% on a 29.6% discount is not defensible |
| Discount percentage decimals | 0 |
Indexing
| Setting | Default |
|---|---|
| Reindex on save up to this many products | 20000 — above this, saving a label marks the index invalid instead of rebuilding synchronously, so the admin save never hangs |
| Refresh date-driven labels by cron | Yes |
Performance
| Setting | Default |
|---|---|
| Preload labels for up to this many products per page | 500 |
| Cache rendered label markup | No — the Full Page Cache already covers this; enable only on very large catalogues that make heavy use of product attributes in label text |
| Rendered markup cache lifetime (seconds) | 86400 |
Accessibility
| Setting | Default |
|---|---|
| Announce labels to screen readers | Yes |
Cron jobs (registered automatically)
| Job | Schedule |
|---|---|
wimakeit_product_label_refresh_dated | 5 |
This job re-indexes products whose special price or new-product date window opened or closed, and cleans the page cache for those products. It runs hourly rather than daily so store views in different timezones each get their date boundary handled on the hour it actually occurs for them. This mirrors what Magento itself does for catalog price rules.
Hyvä storefronts
Labels already render on Hyvä without any extra module: the listing, search, widgets, related blocks, comparison, wishlist and the cart page all go through the standard Magento image block.
Install wimakeit/module-product-label-hyva to add the two surfaces Hyvä builds differently — the product page gallery and the Alpine mini-cart drawer — and to expose the wm-* classes to your theme's Tailwind build:
composer require wimakeit/module-product-label-hyva
bin/magento module:enable Wimakeit_ProductLabelHyva
bin/magento setup:upgrade
bin/magento hyva:config:generate
cd app/design/frontend/<Vendor>/<theme>/web/tailwind && npm run build
Command line
bin/magento wimakeit:product-label:reindex # rebuild everything
bin/magento wimakeit:product-label:reindex --label=on_sale # one label, by code or id
bin/magento wimakeit:product-label:reindex --product=42,43 # specific products
bin/magento wimakeit:product-label:list # labels and their match counts
wimakeit:product-label:list shows how many products each label currently matches, which is the fastest way to confirm a conditions tree does what was intended without opening the storefront.
Cache types
The module registers a Product Labels cache type, holding the label definitions per store view. It is invalidated automatically whenever a label is saved or deleted.
- Version
- v1.2.0
- Support
- 12 mois
- Dernière mise à jour
- 18 août 2026
- Magento
- Magento 2.4.4 Magento 2.4.5 Magento 2.4.6 Magento 2.4.7 Mage-OS 2.0 Mage-OS 2.1
- PHP
- PHP 8.1 PHP 8.2 PHP 8.3
- Hyvä
- Compatible
- Package
-
wimakeit/module-product-label
Vérifier la compatibilité
Indiquez votre stack pour vérifier la compatibilité du module.
Changelog
Categories: Security, Feature, Fix, Perf, Admin, Deps.
[1.2.0] - 2026-08-18
Feature
- Cibler des produits par référence. Une condition SKU s'ajoute aux règles, avec le sélecteur de produits de Magento : recherche, tri, cases à cocher. Plusieurs références se choisissent d'un coup.
- Aperçu en direct. Le pavé Apparence affiche une carte produit d'exemple qui se met à jour à chaque réglage — forme, position, taille, couleurs — et reste visible pendant qu'on fait défiler.
- Cinq étiquettes d'exemple livrées prêtes à l'emploi, désactivées, pour partir d'une base plutôt que d'une page blanche.
Admin
- Rotation, opacité, arrondi et décalages se choisissent dans des listes plutôt que se saisir au clavier.
- Les étiquettes ne collent plus au bord de l'image, sauf les rubans de coin pour lesquels c'est voulu.
Fix
- L'écran d'édition d'une étiquette pouvait ne plus s'ouvrir du tout sur Magento 2.4.9 / Mage-OS 3.1.0.
- Une étiquette posée sur une vignette de listing pouvait faire disparaître la photo du produit.
- Les tailles xs à xl ne se distinguaient presque pas sur les formes pilule et texte seul.
- Les listes Vues de magasin et Groupes de clients n'affichaient aucune option.
[1.1.0] - 2026-08-17
Fix
- Les tables de l'extension n'étaient pas créées à l'installation, rendant l'écran des étiquettes inutilisable.
[1.0.0] - 2026-08-17
Feature
- Product labels and badges rendered over product images across every surface: category listings, search, widgets, related and cross-sell blocks, comparison, wishlist, cart, mini-cart and the product page.
- Fourteen parametric vector shapes — corner ribbons, banners, starbursts, hexagons, price tags, bookmarks and more — recoloured from the back-office with no image files and no extra HTTP request.
- Dynamic values in label text: discount percentage and amount, prices, tier price and its quantity threshold, salable quantity, days left on a promotion, and any product attribute. Percentages round down by default so a badge never over-promises.
- Targeting through the native Magento condition builder, extended with shortcuts for on sale, new, out of stock, low stock, tier price and final price, plus six presets that fill the builder rather than hiding a second engine behind it.
- Per-context overrides, so a label can be smaller in the mini-cart or hidden in the cart without duplicating its configuration.
Perf
- Server-side rendering with a dedicated product-to-label index: no JavaScript, no layout shift, and labels remain visible to search engines.
- A category page resolves the labels for all its products in a single database query, whatever the number of products displayed.
- Rendering varies by store view and customer group through the context Magento already uses for its page cache key, so group-specific labels cannot leak between visitors.
Admin
- Label grid with live badge previews and the number of products each label currently matches, plus duplicate, mass enable, disable and delete.
- Live preview in the edit form driven by the same renderer as the storefront, so what is approved is exactly what ships.
- Colours chosen from the native Magento colour picker, with the text colour derived automatically from the background luminance for readable contrast.
wimakeit:product-label:reindexandwimakeit:product-label:listcommand line tools, and an admin REST API for cross-environment provisioning.
Security
- No free-form CSS anywhere: colours and dimensions pass through a closed, validated set of CSS custom properties, emitted in a single nonce-carrying style block that survives an enforced Content-Security-Policy.
- Label text is escaped segment by segment, so neither a merchant-entered string nor a resolved product value can inject markup.
Vous avez trouvé un bug ? Faites-nous-en part.
Un court formulaire s'ouvre dans un nouvel onglet — le nom du module et votre langue sont déjà pré-remplis. Décrivez ce que vous avez tenté, ce qui n'a pas fonctionné, et nous vous répondrons sous un jour ouvré.
Signaler un bug pour Product LabelBesoin d'aide ?
Notre équipe est disponible pour vous accompagner dans l'intégration.