Produits associés automatiques pour Magento 2
Créez des recommandations produit intelligentes dans Magento 2 sans vous limiter aux relations rigides related, upsell et cross-sell.
Kowal_RelatedProductsProfiles est un module qui vous permet de concevoir vos propres scénarios de recommandation à partir de profils, d’attributs produit, de conditions d’activation, de filtres cibles et d’une intégration flexible dans le layout de la boutique. Ainsi, les recommandations ne sont plus une liste statique, mais deviennent un élément à part entière de la stratégie commerciale de la boutique.
Transformez de simples listes de produits en véritables scénarios de vente
Dans Magento standard, les produits associés sont souvent trop simples pour répondre à des déploiements plus exigeants. Une boutique souhaite afficher certains produits sur la fiche produit, d’autres dans le panier et d’autres encore dans le checkout. Parfois, la liste ne doit fonctionner que pour certains groupes de clients, uniquement pendant une campagne saisonnière ou seulement lorsque le produit répond à des conditions catalogue spécifiques.
Ce module a été conçu précisément pour ces cas d’usage.
Au lieu d’associer manuellement les produits entre eux, vous créez un profil de recommandation. Le profil définit :
- où il doit fonctionner,
- pour quel produit il doit s’activer,
- comment sélectionner les produits cibles,
- comment les affiner et les trier,
- comment ils doivent être présentés,
- où ils doivent être rendus,
- et s’ils doivent alimenter les listes natives de Magento.
Un seul outil, de nombreux emplacements de déploiement
Le module fonctionne dans les zones les plus importantes de la boutique :
- sur la fiche produit,
- dans le panier,
- dans le checkout,
- dans les blocs natifs
Related Products, - dans les blocs natifs
Upsell Products, - dans les blocs natifs
Crosssell Products.
Cela signifie qu’un même profil peut devenir une partie de plusieurs scénarios de merchandising différents, et que l’équipe de déploiement n’a pas besoin de créer une logique distincte pour chaque emplacement de la boutique.
Des profils qui s’adaptent à votre catalogue
La plus grande force du module est que les recommandations peuvent être construites non seulement manuellement, mais aussi dynamiquement à partir des attributs produit.
Vous pouvez créer des profils qui :
- sélectionnent des produits de la même collection,
- recherchent des produits avec le même visuel,
- affichent des produits de la même catégorie,
- mettent en avant une autre base produit liée au produit consulté,
- limitent les résultats à des types de produits spécifiques,
- fonctionnent uniquement pour certaines store views et certains groupes de clients.
Un exemple ?
Le client consulte un rashguard avec le visuel HALLOWEEN 25. Le profil peut automatiquement trouver des produits avec le même visuel dans d’autres lignes de produits, par exemple des shorts, leggings ou accessoires. Un autre profil peut, à son tour, utiliser ce même produit comme contexte dans le panier et proposer au client de compléter sa commande avec des produits issus d’une base d’assortiment sélectionnée.
Créez des recommandations à partir de conditions, et non d’exceptions
Chaque profil peut disposer de ses propres :
Activation Conditions,Matching Rules,Target Product Filters,- tri,
- limites de produits,
- variante de rendu,
- période d’activité.
En pratique, cela offre une très grande liberté.
Vous pouvez créer un profil qui ne se déclenche que pour les produits avec l’attribut brand = Nike, uniquement dans la boutique B2C, uniquement pour les clients particuliers et seulement pendant une campagne précise. Vous pouvez également créer un profil qui utilise le produit présent dans le panier comme point de référence et propose des accessoires à partir de caractéristiques catalogue communes.
Ce n’est plus une simple liste de produits. C’est un moteur de recommandation basé sur des règles, que vous pouvez adapter au modèle de vente réel de la boutique.
Choisissez quel produit doit servir de contexte
Sur la fiche produit, le contexte est le produit en cours. Mais dans le panier et le checkout, cette réponse n’est pas toujours évidente. C’est pourquoi le module permet de définir la Context Strategy, c’est-à-dire la méthode de sélection du produit contextuel.
Vous pouvez décider que les profils doivent s’appuyer sur :
- le premier produit du panier,
- le dernier produit ajouté,
- le produit au prix le plus élevé.
Cette flexibilité fait une grande différence dans les projets où le client ajoute plusieurs produits différents au panier et où les recommandations doivent découler d’une logique métier précise.
Des scénarios distincts pour la fiche produit, le panier et le checkout
Ce qui fonctionne bien sur une PDP n’a pas toujours de sens dans le panier. Le module permet de séparer ces scénarios sans multiplier les extensions distinctes.
Sur la fiche produit, vous pouvez afficher une liste de produits de la même collection ou du même style. Dans le panier, vous pouvez promouvoir des accessoires qui augmentent la valeur de la commande. Dans le checkout, vous pouvez préparer une liste simplifiée et plus prudente de produits soutenant le cross-sell.
Tout cela au sein d’un seul système de profils.
Alimentez les listes natives de Magento : append ou replace
Toutes les boutiques ne souhaitent pas abandonner immédiatement les mécanismes natifs de Magento. C’est pourquoi le module prend en charge l’intégration avec :
Related Products,Upsell Products,Crosssell Products.
Chaque profil peut fonctionner selon l’un des deux modes :
append
conserve les produits natifs et y ajoute les résultats du module,replace
remplace entièrement la liste native par les produits du profil.
C’est une solution de déploiement très pratique. Vous pouvez commencer par une extension légère des listes Magento existantes, puis passer ensuite à un pilotage complet des recommandations depuis les profils.
Effectuez le rendu exactement là où vous le souhaitez
Un avantage majeur du module est la possibilité de contrôler l’emplacement de rendu grâce aux champs XML associés au profil.
Au lieu d’adapter le module à une seule mise en page rigide, vous pouvez intégrer la liste exactement là où le projet en a besoin :
- sous la description du produit,
- sous le prix,
- sous le formulaire d’achat,
- dans une section supplémentaire,
- dans votre propre conteneur de thème,
- à l’emplacement défini par un layout frontend personnalisé.
C’est particulièrement important pour les boutiques reposant sur des thèmes avancés ou fortement modifiés. Le module ne vous impose pas une mise en page unique. Vous décidez où et comment le profil doit être intégré.
Trois variantes de présentation sur le frontend
Le module ne se limite pas à la logique de sélection des produits. Il permet aussi d’adapter la présentation de la liste au caractère de la page et au type de déploiement.
Les variantes disponibles sont :
Grid,Slider,Compact.
Vous pouvez donc utiliser le même moteur de recommandation aussi bien pour une section étendue sur la fiche produit que pour une liste condensée dans le panier ou un module plus compact dans le checkout.
À cela s’ajoute le contrôle des éléments de vue :
- nom du produit,
- prix,
- prix régulier,
- brève description,
- bouton d’ajout au panier,
- rôle de l’image.
La création de nouveaux profils est claire et évolutive
Le module a été conçu pour permettre à une équipe de déploiement ou à une agence de développer de nouveaux scénarios sans reconstruire toute la solution.
Lorsque vous créez un nouveau profil, vous configurez :
- les informations administratives de base,
- les placements et le périmètre d’action,
- les store views et les groupes de clients,
- la stratégie de contexte,
- la période d’activité,
- les conditions d’activation,
- les règles de correspondance,
- les filtres des produits cibles,
- le tri et le mode d’affichage,
- l’intégration avec les listes natives de Magento,
- l’intégration via XML.
Cela signifie qu’un nouveau scénario de merchandising ne nécessite pas forcément un nouveau module custom. Très souvent, un profil supplémentaire suffit.
Exemples d’utilisation concrets
1. Même visuel, autre base produit
Le client consulte un produit d’une ligne spécifique. À partir des matching rules, le module recherche des produits avec le même visuel, mais issus d’autres familles d’assortiment. C’est un excellent scénario pour les marques lifestyle, sportives et fashion.
2. Cross-sell basé sur le produit du panier
Le client a déjà un produit sélectionné dans son panier. Le profil l’utilise comme contexte et sélectionne des accessoires adaptés à l’achat, sans qu’ils soient associés manuellement comme cross-sell natif.
3. Campagne limitée dans le temps
Vous avez besoin de recommandations actives uniquement pendant une action commerciale précise ? Il suffit de configurer un profil avec From Date et To Date, sans créer de logique supplémentaire.
4. Remplacement des upsells natifs
Si les upsells standard de Magento sont trop simplifiés, un profil peut reprendre ce rôle et fonctionner en mode replace, en offrant une correspondance de produits beaucoup plus précise.
5. Intégration avec un thème personnalisé
Grâce aux champs XML, la liste peut être intégrée exactement à l’endroit requis par le frontend du projet, sans créer une extension dédiée supplémentaire pour le layout.
À qui s’adresse ce module
Kowal_RelatedProductsProfiles sera particulièrement utile pour :
- les agences d’intégration Magento 2,
- les éditeurs logiciels développant des boutiques e-commerce,
- les marchands qui souhaitent rendre la logique de recommandation indépendante des relations maintenues manuellement,
- les projets avec un catalogue étendu et de nombreux attributs métier,
- les boutiques utilisant des thèmes personnalisés et des layouts complexes.
Ce que vous obtenez
En achetant ce module, vous obtenez non seulement une liste de produits supplémentaire, mais aussi un outil pour concevoir vos propres scénarios de recommandation dans Magento 2.
C’est une solution qui :
- augmente la flexibilité du déploiement,
- structure la logique de merchandising,
- réduit le besoin d’écrire de nouvelles exceptions dans le code,
- exploite mieux les attributs catalogue,
- permet de faire évoluer la boutique sans reconstruire tout le mécanisme de recommandation.
Si les fonctionnalités standard related, upsell et cross-sell sont trop limitées pour votre projet, Kowal_RelatedProductsProfiles apporte une couche de pilotage que Magento ne propose tout simplement pas par défaut.
Installation et configuration du module
Ce document décrit l’installation du module Kowal_RelatedProductsProfiles ainsi que la configuration de base d’un profil de recommandation de produits dans le panneau Magento.
Prérequis
- Magento 2 avec prise en charge des modules Composer.
- PHP compatible avec le projet :
^8.1,^8.2ou^8.3. - Module de base
kowal/baseinstallé, car le menu d’administration utilise la structureKowal.co > Modules. - Accès administrateur au CLI Magento.
Installation via Composer
- Ajoutez le dépôt du module :
composer config repositories.related.products.profiles vcs https://github.com/kowalco/related-bestsellers- Si le dépôt est privé, ajoutez un token GitHub :
composer config --global --auth github-oauth.github.com - Installez le module :
composer require kowal/module-related-products-profiles- Activez le module :
php bin/magento module:enable Kowal_RelatedProductsProfiles- Effectuez la mise à jour de la base de données :
php bin/magento setup:upgradePendant setup:upgrade, le module crée la table des profils et exécute un data patch avec trois profils d’exemple : related, crossel, upsell. Le patch n’écrase pas les profils existants ayant les mêmes codes.
- En mode production, reconstruisez la dependency injection :
php bin/magento setup:di:compile- Videz le cache :
php bin/magento cache:flushConfiguration globale de base
Allez dans :
Stores > Configuration > Kowal > Related Product Profiles
Définissez :
Enable Frontend Output:YesEnable Debug Logging:Noen production,Yesuniquement pour diagnostiquer le fonctionnement des profils
Enregistrez la configuration et videz le cache si Magento vous le demande.
Droits d’administration
Le module ajoute des ressources ACL pour les profils et la configuration.
Accès à la liste des profils :
Kowal > Modules > Related Product Profiles > Profiles
Accès à la configuration :
Stores > Settings > Configuration > Related Product Profiles Configuration
Pour un utilisateur de démonstration qui doit uniquement gérer les profils, accordez l’autorisation Profiles. Si l’utilisateur doit également modifier le paramètre global d’activation du module, accordez-lui aussi la ressource de configuration.
Où gérer les profils
La liste des profils se trouve dans le menu :
Kowal.co > Modules > Related Product Profiles > Profiles
Depuis la liste, vous pouvez ajouter un nouveau profil, modifier un profil existant ou supprimer un profil.
Exemple de configuration d’un profil Related Products
L’exemple ci-dessous crée un profil qui remplace le bloc natif Magento Related Products sur la fiche produit. Les produits seront sélectionnés selon le même attribute_set_id, c’est-à-dire à partir du même jeu d’attributs que le produit consulté par le client.
1. Création du profil
Allez dans :
Kowal.co > Modules > Related Product Profiles > Profiles
Cliquez sur Add New Profile.
2. Section General
Définissez :
Name:Related ProductsCode:relatedIs Active: cochéSort Order:0Placements: sélectionnezProduct PageStore Views: sélectionnezAll Store ViewsCustomer Groups: sélectionnezAll Customer GroupsContext Strategy:First matching itemFrom Date: videTo Date: vide
Remarques :
- Pour la fiche produit, le contexte est toujours le produit actuellement consulté.
Context Strategya une importance pratique principalement pour le panier et le checkout.Codedoit être unique.
3. Section Activation Conditions
Ajoutez une condition :
| Attribute Code | Operator | Value |
|---|---|---|
status | Equals | 1 |
Signification :
- Le profil ne se déclenchera que si le produit contextuel est actif.
- Si la condition n’est pas remplie, tout le profil sera ignoré.
4. Section Matching Rules
Ajoutez une règle :
| Source Attribute | Target Attribute | Operator | Required | Empty Value Policy | Default Value |
|---|---|---|---|---|---|
attribute_set_id | attribute_set_id | Equals | coché | Skip Rule | vide |
Signification :
- Le module récupérera
attribute_set_iddepuis le produit actuel. - Il trouvera ensuite les produits ayant le même
attribute_set_id. Requiredsignifie que le produit cible doit satisfaire cette règle.
Exemples de règles alternatives :
brand->brand, opérateurEquals: produits de la même marque.category_ids->category_ids, opérateurCategory Intersects: produits appartenant à au moins une catégorie commune.color->color, opérateurEquals: produits de la même couleur.
5. Section Target Product Filters
Ajoutez un filtre :
| Attribute Code | Operator | Value |
|---|---|---|
status | Equals | 1 |
Signification :
- Seuls les produits actifs seront affichés dans les résultats.
Vous pouvez éventuellement ajouter un filtre de visibilité :
| Attribute Code | Operator | Value |
|---|---|---|
visibility | In List | 2,3,4 |
6. Section Sorting & Display
Définissez :
Sort Attribute:entity_idSort Direction:DESCSecondary Sort Attribute: videSecondary Sort Direction:NoneTitle:Related ProductsSubtitle: videProducts Limit:8Template Variant:SliderImage Role:category_page_gridShow Price: cochéShow Old Price: non cochéShow Add To Cart: cochéShow Product Name: cochéShow Short Description: non cochéShow Badges: non cochéHide If Empty: cochéExclude Current Product: cochéExclude Quote Products: cochéExclude Out Of Stock: coché
Signification des champs les plus importants :
Template Variantcontrôle l’apparence de la liste :Grid,SliderouCompact.Products Limitlimite le nombre de produits dans les résultats.Exclude Current Productempêche l’affichage du produit actuellement consulté dans les résultats.Exclude Out Of Stocksupprime les produits indisponibles.
7. Section Native Magento Lists
Pour Related Products, définissez :
- case à cocher
Related Products: cochée Mode:ReplacePosition:Magento default position
Signification :
- Cocher la case signifie que le module prend en charge le bloc natif Magento
Related Products. Replacesignifie que seuls les produits du profil seront affichés dans le bloc pris en charge.Appendsignifie que le module affichera les produits natifs Magento plus les produits du profil.Positionpermet de déplacer le bloc à un autre emplacement de la fiche produit.
Exemples de positions :
Magento default position: laisse le bloc à l’emplacement défini par le thème Magento.sidebar.additional: déplace le bloc vers la sidebar supplémentaire.sidebar.main: déplace le bloc vers la sidebar principale.content: déplace le bloc vers le contenu principal de la page.content.aside: déplace le bloc vers la zone latérale du contenu.product.info.main: déplace le bloc vers la colonne principale des informations produit.product.info.media: déplace le bloc vers la zone de galerie produit.product.info.details: déplace le bloc vers la zone des détails ou des onglets produit.
Si le conteneur sélectionné n’existe pas dans le thème actuel, Magento laissera le bloc à son emplacement par défaut.
Pour Upsell Products et Crosssell Products, laissez les cases décochées dans cet exemple.
8. Section Layout XML
Pour cet exemple, laissez les champs vides :
Product Page XML: videEdit Cart XML: videCheckout XML: vide
Il n’est pas nécessaire d’ajouter du XML si vous utilisez la section Native Magento Lists. Le XML est utile lorsque le profil doit être rendu comme un bloc supplémentaire du module en dehors des listes natives Magento.
9. Enregistrement du profil
Cliquez sur :
Save Profilepour enregistrer et revenir à la liste des profilsSave and Continuepour enregistrer et rester sur le formulaire
Après l’enregistrement, videz le cache Magento si le résultat n’est pas immédiatement visible sur le frontend.
Exemple de configuration Upsell dans la sidebar
Si vous souhaitez déplacer Upsell Products vers sidebar.additional :
- Dans
Placements, sélectionnezProduct Page. - Dans
Native Magento Lists, cochezUpsell Products. - Définissez
Mode:Appendsi vous souhaitez afficher les upsells natifs Magento plus les produits du profil.Replacesi vous souhaitez afficher uniquement les produits du profil.
- Définissez
Position:Additional sidebar - sidebar.additional. - Sélectionnez
Template Variant: généralement,Compactconvient bien à la sidebar.
Exemple de configuration Crosssell dans le panier
Pour le crosssell :
- Dans
Placements, sélectionnezEdit Cart. - Dans
Native Magento Lists, cochezCrosssell Products. - Définissez
Mode: le plus souventReplace. Positionn’est pas disponible pour le crosssell, car le positionnement concerne actuellement uniquement les blocs sur la fiche produit.
Diagnostic
Si le profil n’affiche pas de produits :
- Vérifiez que le module est activé dans la configuration.
- Vérifiez que
Is Activeest coché pour le profil. - Vérifiez que
Placementscorrespond à l’emplacement où vous testez le profil. - Vérifiez les conditions dans
Activation Conditions. - Vérifiez que le produit contextuel possède les valeurs d’attribut utilisées dans
Matching Rules. - Désactivez temporairement
Exclude Out Of Stocksi vous testez des produits sans stock. - Activez
Enable Debug Logginguniquement pendant le diagnostic.
Commandes après le déploiement des modifications
Après la mise à jour du module, exécutez :
php bin/magento setup:upgradephp bin/magento cache:flushEn mode production, exécutez également :
php bin/magento setup:di:compileVersion : 1.1.22
22.05.2026
Ajouté
- Ajout d’un data patch d’installation de profils d’exemple avec trois profils par défaut :
relatedcrosselupsell
- Ajout de la gestion de la position des blocs natifs de fiche produit pour les blocs Related et Upsell.
- Ajout de listes déroulantes d’administration pour les positions des blocs Related et Upsell.
- Ajout des cibles de position prises en charge sur la fiche produit :
contentcontent.asidesidebar.mainsidebar.additionalproduct.info.mainproduct.info.mediaproduct.info.details
- Ajout des champs de profil
related_block_positionetupsell_block_position.
Modifié
- L’injection native Magento Related, Upsell et Crosssell remplace désormais la sortie du bloc natif par une sortie rendue par le module lorsque la case correspondante est cochée.
- Le mode
Appendrend désormais les produits natifs Magento plus les produits du profil dans la sortie du module. - Le mode
Replacerend désormais uniquement les produits du profil dans la sortie du module. - Related Products utilise par défaut le mode
replace. - Les boutons d’action du profil dans l’administration ont été déplacés en haut du formulaire, dans l’ordre de style Magento :
- Back
- Delete
- Save and Continue
- Save Profile
- L’intégration ACL/menu de l’administration a été alignée sur la structure de menu
Kowal_Base:Kowal.co > Modules > Related Product Profiles > Profiles- la configuration reste sous la configuration Stores de Magento.
Corrigé
- Empêche le rendu en double sur le storefront lorsqu’un profil est géré par le remplacement d’une liste native Magento.
- Correction de la visibilité de l’entrée de menu Profiles pour les rôles administrateur limités, en reliant le menu et les ressources ACL à l’arborescence des modules Kowal.
- Préservation des produits des listes natives Magento pour le mode
Append, tout en évitant la récursion pendant la collecte des éléments natifs.


















