Automatische Gerelateerde Producten voor Magento 2
Bouw slimme productaanbevelingen in Magento 2 zonder beperkt te zijn tot vaste relaties related, upsell en cross-sell.
Kowal_RelatedProductsProfiles is een module waarmee u eigen aanbevelingsscenario’s kunt ontwerpen op basis van profielen, productattributen, activeringsvoorwaarden, doelfilters en flexibele plaatsing in de winkel-layout. Daardoor zijn aanbevelingen niet langer een statische lijst, maar worden ze onderdeel van de verkoopstrategie van de webshop.
Zet gewone productlijsten om in echte verkoopscenario’s
In standaard Magento zijn gerelateerde producten vaak te eenvoudig voor veeleisendere implementaties. Een webshop wil andere producten tonen op de productpagina, andere in de winkelwagen en weer andere in de checkout. Soms moet een lijst alleen werken voor geselecteerde klantgroepen, alleen tijdens een seizoenscampagne of alleen wanneer een product aan specifieke catalogusvoorwaarden voldoet.
Deze module is precies voor zulke situaties ontwikkeld.
In plaats van producten handmatig aan elkaar te koppelen, maakt u een aanbevelingsprofiel. Het profiel bepaalt:
- waar het actief moet zijn,
- voor welk product het moet worden geactiveerd,
- hoe de doelproducten moeten worden geselecteerd,
- hoe ze moeten worden beperkt en gesorteerd,
- hoe ze eruit moeten zien,
- waar ze moeten worden gerenderd,
- en of ze de native Magento-lijsten moeten voeden.
Eén tool, veel implementatieplekken
De module werkt in de belangrijkste delen van de webshop:
- op de productpagina,
- in de winkelwagen,
- in de checkout,
- in native blokken
Related Products, - in native blokken
Upsell Products, - in native blokken
Crosssell Products.
Dit betekent dat één profiel onderdeel kan worden van meerdere merchandising-scenario’s, terwijl het implementatieteam geen aparte logica hoeft te bouwen voor elke plek in de webshop.
Profielen die zich aanpassen aan uw catalogus
De grootste kracht van de module is dat aanbevelingen niet alleen handmatig, maar ook dynamisch op basis van productattributen kunnen worden opgebouwd.
U kunt profielen maken die:
- producten uit dezelfde collectie selecteren,
- producten met dezelfde afbeelding zoeken,
- producten uit dezelfde categorie tonen,
- een andere productbasis promoten die aan het bekeken product is gekoppeld,
- het resultaat beperken tot specifieke producttypen,
- alleen werken voor geselecteerde store views en klantgroepen.
Een voorbeeld?
Een klant bekijkt een rashguard met de afbeelding HALLOWEEN 25. Het profiel kan automatisch producten met dezelfde afbeelding vinden in andere productlijnen, bijvoorbeeld shorts, leggings of accessoires. Een ander profiel kan hetzelfde product vervolgens als context in de winkelwagen gebruiken en de klant voorstellen de bestelling aan te vullen met producten uit een geselecteerde assortimentbasis.
Maak aanbevelingen op basis van voorwaarden, niet van uitzonderingen
Elk profiel kan eigen instellingen hebben voor:
Activation Conditions,Matching Rules,Target Product Filters,- sortering,
- productlimieten,
- renderingvariant,
- tijdsbereik van activiteit.
In de praktijk geeft dit enorm veel vrijheid.
U kunt een profiel bouwen dat alleen wordt gestart voor producten met het attribuut brand = Nike, alleen in de B2C-winkel, alleen voor retailklanten en alleen tijdens een specifieke campagne. U kunt ook een profiel bouwen dat een product uit de winkelwagen als referentiepunt gebruikt en accessoires voorstelt op basis van gemeenschappelijke cataloguskenmerken.
Dit is geen eenvoudige productlijst meer. Het is een regelgestuurde aanbevelingsengine die kan worden afgestemd op het werkelijke verkoopmodel van de webshop.
Kies welk product de context moet zijn
Op de productpagina is het huidige product de context. Maar in de winkelwagen en checkout is dat antwoord niet altijd vanzelfsprekend. Daarom kunt u met de module de Context Strategy bepalen, oftewel de manier waarop het contextproduct wordt gekozen.
U kunt bepalen dat profielen gebaseerd moeten zijn op:
- het eerste product uit de winkelwagen,
- het laatst toegevoegde product,
- het product met de hoogste prijs.
Deze flexibiliteit maakt een groot verschil in projecten waarin de klant meerdere verschillende producten aan de winkelwagen toevoegt en aanbevelingen uit specifieke bedrijfslogica moeten voortkomen.
Aparte scenario’s voor product, winkelwagen en checkout
Wat goed werkt op de PDP, is niet altijd zinvol in de winkelwagen. Met de module kunt u deze scenario’s scheiden zonder meerdere aparte extensies te gebruiken.
Op de productpagina kunt u een lijst tonen met producten uit dezelfde collectie of dezelfde stijl. In de winkelwagen kunt u accessoires promoten die de orderwaarde verhogen. In de checkout kunt u een vereenvoudigde, voorzichtigere lijst met producten voorbereiden die cross-sell ondersteunen.
Dit alles binnen één profielsysteem.
Voed native Magento-lijsten: append of replace
Niet elke webshop wil direct afstappen van de native Magento-mechanismen. Daarom ondersteunt de module integratie met:
Related Products,Upsell Products,Crosssell Products.
Elk profiel kan in een van twee modi werken:
append
behoudt de native producten en voegt daar de resultaten van de module aan toe,replace
vervangt de native lijst volledig door producten uit het profiel.
Dit is een zeer praktische implementatieoplossing. U kunt beginnen met een lichte uitbreiding van de bestaande Magento-lijsten en later pas overstappen op volledige aansturing van aanbevelingen via profielen.
Render precies waar u dat wilt
Een groot voordeel van de module is de mogelijkheid om de renderlocatie te beheren met XML-velden die aan het profiel zijn toegewezen.
In plaats van de module aan te passen aan één vaste indeling, kunt u de lijst precies plaatsen waar het project dat vereist:
- onder de productbeschrijving,
- onder de prijs,
- onder het aankoopformulier,
- in een extra sectie,
- in een eigen themacontainer,
- op een plek die voortkomt uit een aangepaste frontend-layout.
Dit is vooral belangrijk in webshops die zijn gebaseerd op uitgebreide of sterk aangepaste thema’s. De module dwingt u niet tot één indeling. U beslist waar en hoe het profiel moet worden geplaatst.
Drie presentatievarianten aan de frontend
De module stopt niet bij de logica voor productselectie. U kunt ook de manier waarop de lijst wordt gepresenteerd afstemmen op het karakter van de pagina en het type implementatie.
Beschikbare varianten zijn:
Grid,Slider,Compact.
U kunt dezelfde aanbevelingsengine dus gebruiken voor een uitgebreide sectie op de productpagina, voor een compacte lijst in de winkelwagen of voor een compacter moduleblok in de checkout.
Daarbij komt controle over weergave-elementen:
- productnaam,
- prijs,
- reguliere prijs,
- korte beschrijving,
- knop om toe te voegen aan winkelwagen,
- rol van de afbeelding.
Nieuwe profielen maken is overzichtelijk en schaalbaar
De module is zo gebouwd dat een implementatie- of agencyteam nieuwe scenario’s kan ontwikkelen zonder de hele oplossing opnieuw op te bouwen.
Bij het maken van een nieuw profiel configureert u:
- basisinformatie voor beheer,
- placements en werkingsbereik,
- store views en klantgroepen,
- contextstrategie,
- datumbereik van activiteit,
- activeringsvoorwaarden,
- matching rules,
- filters voor doelproducten,
- sortering en weergavemethode,
- integratie met native Magento-lijsten,
- plaatsing via XML.
Dit betekent dat een volgend merchandising-scenario niet direct een extra custom module vereist. Heel vaak volstaat een nieuw profiel.
Praktische toepassingsvoorbeelden
1. Dezelfde afbeelding, andere productbasis
De klant bekijkt een product uit een specifieke lijn. Op basis van matching rules zoekt de module producten met dezelfde afbeelding, maar uit andere assortimentfamilies. Dit is een uitstekend scenario voor lifestyle-, sport- en fashionmerken.
2. Cross-sell gebaseerd op een product uit de winkelwagen
De klant heeft al een geselecteerd product in de winkelwagen. Het profiel gebruikt dit als context en kiest accessoires die bij de aankoop passen, maar niet handmatig als native cross-sell zijn gekoppeld.
3. Tijdelijk beperkte campagne
Heeft u aanbevelingen nodig die alleen tijdens een specifieke verkoopactie werken? Configureer eenvoudig een profiel met From Date en To Date, zonder extra logica te bouwen.
4. Native upsells vervangen
Als de standaard upsells van Magento te eenvoudig zijn, kan een profiel deze rol overnemen en in de modus replace werken, met een veel nauwkeurigere productmatching.
5. Integratie met een aangepast thema
Dankzij XML-velden kan de lijst precies daar worden geplaatst waar de frontend van het project dat vereist, zonder nog een aparte layout-extensie te bouwen.
Voor wie is deze module bedoeld
Kowal_RelatedProductsProfiles is vooral waardevol voor:
- Magento 2-implementatiebureaus,
- software houses die e-commercewebshops ontwikkelen,
- merchants die de aanbevelingslogica willen loskoppelen van handmatig beheerde relaties,
- projecten met een uitgebreide catalogus en veel zakelijke attributen,
- webshops die aangepaste thema’s en complexe layouts gebruiken.
Wat u krijgt
Met de aankoop van de module krijgt u niet alleen nog een productlijst, maar een tool om eigen aanbevelingsscenario’s in Magento 2 te ontwerpen.
Dit is een oplossing die:
- de flexibiliteit van implementatie vergroot,
- de merchandisinglogica ordent,
- de noodzaak vermindert om steeds nieuwe uitzonderingen in code te schrijven,
- catalogusattributen beter benut,
- het mogelijk maakt de webshop verder te ontwikkelen zonder het volledige aanbevelingsmechanisme opnieuw op te bouwen.
Als de standaard related, upsell en cross-sell te beperkt zijn voor uw project, biedt Kowal_RelatedProductsProfiles een besturingslaag die Magento standaard simpelweg niet heeft.
Installatie en configuratie van de module
Dit document beschrijft de installatie van de module Kowal_RelatedProductsProfiles en de basisconfiguratie van een productaanbevelingsprofiel in het Magento-paneel.
Vereisten
- Magento 2 met ondersteuning voor Composer-modules.
- PHP compatibel met het project:
^8.1,^8.2of^8.3. - Geïnstalleerde basismodule
kowal/base, omdat het beheermenu gebruikmaakt van de structuurKowal.co > Modules. - Beheertoegang tot Magento CLI.
Installatie via Composer
- Voeg de modulerepository toe:
composer config repositories.related.products.profiles vcs https://github.com/kowalco/related-bestsellers- Als de repository privé is, voeg dan een GitHub-token toe:
composer config --global --auth github-oauth.github.com - Installeer de module:
composer require kowal/module-related-products-profiles- Schakel de module in:
php bin/magento module:enable Kowal_RelatedProductsProfiles- Voer de database-update uit:
php bin/magento setup:upgradeTijdens setup:upgrade maakt de module de profielentabel aan en start een data patch met drie voorbeeldprofielen: related, crossel, upsell. De patch overschrijft geen bestaande profielen met dezelfde codes.
- Bouw in productiemodus dependency injection opnieuw op:
php bin/magento setup:di:compile- Leeg de cache:
php bin/magento cache:flushBasis globale configuratie
Ga naar:
Stores > Configuration > Kowal > Related Product Profiles
Stel in:
Enable Frontend Output:YesEnable Debug Logging:Noop productie,Yesalleen bij het diagnosticeren van profielwerking
Sla de configuratie op en leeg de cache als Magento daarom vraagt.
Beheerdersrechten
De module voegt ACL-resources toe voor profielen en configuratie.
Toegang tot de profiellijst:
Kowal > Modules > Related Product Profiles > Profiles
Toegang tot configuratie:
Stores > Settings > Configuration > Related Product Profiles Configuration
Voor een demogebruiker die alleen profielen mag beheren, kent u de machtiging Profiles toe. Als de gebruiker ook de globale inschakelinstelling van de module mag wijzigen, kent u hem ook de configuratieresource toe.
Waar profielen beheren
De profiellijst bevindt zich in het menu:
Kowal.co > Modules > Related Product Profiles > Profiles
In de lijst kunt u een nieuw profiel toevoegen, een bestaand profiel bewerken of een profiel verwijderen.
Voorbeeldconfiguratie van een Related Products-profiel
Het onderstaande voorbeeld maakt een profiel dat het native Magento-blok Related Products op de productpagina vervangt. Producten worden geselecteerd op basis van dezelfde attribute_set_id, dus uit dezelfde attributenset als het product dat de klant bekijkt.
1. Een profiel maken
Ga naar:
Kowal.co > Modules > Related Product Profiles > Profiles
Klik op Add New Profile.
2. Sectie General
Stel in:
Name:Related ProductsCode:relatedIs Active: aangevinktSort Order:0Placements: kiesProduct PageStore Views: kiesAll Store ViewsCustomer Groups: kiesAll Customer GroupsContext Strategy:First matching itemFrom Date: leegTo Date: leeg
Opmerkingen:
- Voor de productpagina is de context altijd het product dat momenteel wordt bekeken.
Context Strategyheeft vooral praktische betekenis voor de winkelwagen en checkout.Codemoet uniek zijn.
3. Sectie Activation Conditions
Voeg een voorwaarde toe:
| Attribuutcode | Operator | Waarde |
|---|---|---|
status | Equals | 1 |
Betekenis:
- Het profiel wordt alleen gestart wanneer het contextproduct actief is.
- Als niet aan de voorwaarde wordt voldaan, wordt het hele profiel overgeslagen.
4. Sectie Matching Rules
Voeg een regel toe:
| Bronattribuut | Doelattribuut | Operator | Vereist | Beleid voor lege waarde | Standaardwaarde |
|---|---|---|---|---|---|
attribute_set_id | attribute_set_id | Equals | aangevinkt | Skip Rule | leeg |
Betekenis:
- De module haalt
attribute_set_idop uit het huidige product. - Daarna vindt de module producten met dezelfde
attribute_set_id. Requiredbetekent dat het doelproduct aan deze regel moet voldoen.
Alternatieve regelvoorbeelden:
brand->brand, operatorEquals: producten van hetzelfde merk.category_ids->category_ids, operatorCategory Intersects: producten uit minstens één gemeenschappelijke categorie.color->color, operatorEquals: producten met dezelfde kleur.
5. Sectie Target Product Filters
Voeg een filter toe:
| Attribuutcode | Operator | Waarde |
|---|---|---|
status | Equals | 1 |
Betekenis:
- Uit de resultaten worden alleen actieve producten getoond.
Optioneel kunt u een zichtbaarheidsfilter toevoegen:
| Attribuutcode | Operator | Waarde |
|---|---|---|
visibility | In List | 2,3,4 |
6. Sectie Sorting & Display
Stel in:
Sort Attribute:entity_idSort Direction:DESCSecondary Sort Attribute: leegSecondary Sort Direction:NoneTitle:Related ProductsSubtitle: leegProducts Limit:8Template Variant:SliderImage Role:category_page_gridShow Price: aangevinktShow Old Price: niet aangevinktShow Add To Cart: aangevinktShow Product Name: aangevinktShow Short Description: niet aangevinktShow Badges: niet aangevinktHide If Empty: aangevinktExclude Current Product: aangevinktExclude Quote Products: aangevinktExclude Out Of Stock: aangevinkt
Betekenis van de belangrijkste velden:
Template Variantbepaalt het uiterlijk van de lijst:Grid,SliderofCompact.Products Limitbeperkt het aantal producten in de resultaten.Exclude Current Productvoorkomt dat het momenteel bekeken product in de resultaten wordt getoond.Exclude Out Of Stockverwijdert niet-beschikbare producten.
7. Sectie Native Magento Lists
Stel voor Related Products in:
- checkbox
Related Products: aangevinkt Mode:ReplacePosition:Magento default position
Betekenis:
- Het aanvinken van de checkbox betekent dat de module het native Magento-blok
Related Productsoverneemt. Replacebetekent dat in het overgenomen blok alleen producten uit het profiel worden getoond.Appendbetekent dat de module native Magento-producten plus producten uit het profiel toont.Positionmaakt het mogelijk het blok naar een andere plek op de productpagina te verplaatsen.
Voorbeeldposities:
Magento default position: laat het blok op de plek die door het Magento-thema is ingesteld.sidebar.additional: verplaatst het blok naar de extra sidebar.sidebar.main: verplaatst het blok naar de hoofdsidebar.content: verplaatst het blok naar de hoofdinhoud van de pagina.content.aside: verplaatst het blok naar het zijdelingse contentgebied.product.info.main: verplaatst het blok naar de hoofdkolom met productinformatie.product.info.media: verplaatst het blok naar het gebied van de productgalerij.product.info.details: verplaatst het blok naar het gebied met productdetails of tabs.
Als de geselecteerde container niet bestaat in het huidige thema, laat Magento het blok op de standaardplek staan.
Laat voor Upsell Products en Crosssell Products in dit voorbeeld de checkboxen uitgevinkt.
8. Sectie Layout XML
Laat voor dit voorbeeld de velden leeg:
Product Page XML: leegEdit Cart XML: leegCheckout XML: leeg
U hoeft geen XML toe te voegen als u de sectie Native Magento Lists gebruikt. XML is nuttig wanneer het profiel als extra moduleblok buiten de native Magento-lijsten moet worden gerenderd.
9. Profiel opslaan
Klik op:
Save Profileom op te slaan en terug te keren naar de profiellijstSave and Continueom op te slaan en op het formulier te blijven
Leeg na het opslaan de Magento-cache als het resultaat niet direct zichtbaar is aan de frontend.
Voorbeeldconfiguratie van Upsell in de sidebar
Als u Upsell Products naar sidebar.additional wilt verplaatsen:
- Kies in
Placementsde optieProduct Page. - Vink in
Native Magento ListsUpsell Productsaan. - Stel
Modein:Appendals u native Magento-upsells plus profielproducten wilt tonen.Replaceals u alleen profielproducten wilt tonen.
- Stel
Positionin:Additional sidebar - sidebar.additional. - Kies
Template Variant: meestal pastCompactgoed bij de sidebar.
Voorbeeldconfiguratie van Crosssell in de winkelwagen
Voor crosssell:
- Kies in
Placementsde optieEdit Cart. - Vink in
Native Magento ListsCrosssell Productsaan. - Stel
Modein: meestalReplace. Positionis niet beschikbaar voor crosssell, omdat positionering momenteel alleen geldt voor blokken op de productpagina.
Diagnostiek
Als het profiel geen producten weergeeft:
- Controleer of de module in de configuratie is ingeschakeld.
- Controleer of
Is Activevoor het profiel is aangevinkt. - Controleer of
Placementsovereenkomt met de plek waar u het profiel test. - Controleer de voorwaarden in
Activation Conditions. - Controleer of het contextproduct waarden heeft voor de attributen die in
Matching Rulesworden gebruikt. - Schakel
Exclude Out Of Stocktijdelijk uit als u test met producten zonder voorraadstatussen. - Schakel
Enable Debug Loggingalleen in voor de duur van de diagnose.
Commando’s na het implementeren van wijzigingen
Voer na het updaten van de module uit:
php bin/magento setup:upgradephp bin/magento cache:flushVoer in productiemodus daarnaast uit:
php bin/magento setup:di:compileVersie: 1.1.22
22.05.2026
Toegevoegd
- Data patch voor installatie van voorbeeldprofielen toegevoegd met drie standaardprofielen:
relatedcrosselupsell
- Beheer van native blokposities op de productpagina toegevoegd voor Related- en Upsell-blokken.
- Admin-dropdowns toegevoegd voor posities van Related- en Upsell-blokken.
- Ondersteunde positiedoelen op de productpagina toegevoegd:
contentcontent.asidesidebar.mainsidebar.additionalproduct.info.mainproduct.info.mediaproduct.info.details
- Profielvelden
related_block_positionenupsell_block_positiontoegevoegd.
Gewijzigd
- Native Magento-injectie voor Related, Upsell en Crosssell vervangt nu de output van het native blok door door de module gerenderde output wanneer de bijbehorende checkbox is ingeschakeld.
- De modus
Appendrendert nu native Magento-producten plus profielproducten binnen de module-output. - De modus
Replacerendert nu alleen profielproducten binnen de module-output. - Related Products gebruikt standaard de modus
replace. - Actieknoppen van het adminprofiel zijn naar de bovenkant van het formulier verplaatst in Magento-volgorde:
- Terug
- Verwijderen
- Opslaan en doorgaan
- Profiel opslaan
- Admin ACL/menu-integratie is afgestemd op de menustructuur van
Kowal_Base:Kowal.co > Modules > Related Product Profiles > Profiles- configuratie blijft onder Magento Stores-configuratie.
Opgelost
- Dubbele rendering in de storefront voorkomen wanneer een profiel wordt afgehandeld door vervanging van een native Magento-lijst.
- Zichtbaarheid van de menu-entry Profiles voor beperkte adminrollen opgelost door menu- en ACL-resources te koppelen aan de Kowal-modulestructuur.
- Native Magento-lijstproducten behouden voor de modus
Append, terwijl recursie tijdens het verzamelen van native items wordt vermeden.
























