Produse asociate automate pentru Magento 2
Construiește recomandări inteligente de produse în Magento 2 fără a te limita la relațiile rigide related, upsell și cross-sell.
Kowal_RelatedProductsProfiles este un modul care îți permite să proiectezi propriile scenarii de recomandare pe baza profilurilor, atributelor produselor, condițiilor de activare, filtrelor pentru produse țintă și integrării flexibile în layoutul magazinului. Astfel, recomandările nu mai sunt o listă statică, ci devin parte din strategia de vânzare a magazinului.
Transformă listele obișnuite de produse în scenarii reale de vânzare
În Magento standard, produsele asociate sunt adesea prea simple pentru implementări mai complexe. Magazinul vrea să afișeze anumite produse pe pagina produsului, altele în coș și altele în checkout. Uneori lista trebuie să funcționeze doar pentru anumite grupuri de clienți, doar în timpul unei campanii sezoniere sau doar atunci când produsul îndeplinește condiții specifice de catalog.
Acest modul a fost construit exact pentru astfel de situații.
În loc să legi manual produsele între ele, creezi un profil de recomandare. Profilul definește:
- unde trebuie să funcționeze,
- pentru ce produs trebuie să se activeze,
- cum sunt selectate produsele țintă,
- cum sunt filtrate și sortate,
- cum trebuie să arate,
- unde trebuie randate,
- și dacă trebuie să alimenteze listele native Magento.
Un singur instrument, mai multe zone de implementare
Modulul funcționează în cele mai importante zone ale magazinului:
- pe pagina produsului,
- în coș,
- în checkout,
- în blocurile native
Related Products, - în blocurile native
Upsell Products, - în blocurile native
Crosssell Products.
Asta înseamnă că un singur profil poate deveni parte din mai multe scenarii de merchandising, iar echipa de implementare nu trebuie să construiască logică separată pentru fiecare zonă a magazinului.
Profiluri care se adaptează catalogului tău
Cea mai mare forță a modulului este faptul că recomandările pot fi construite nu doar manual, ci și dinamic, pe baza atributelor produselor.
Poți crea profiluri care:
- selectează produse din aceeași colecție,
- caută produse cu aceeași grafică,
- afișează produse din aceeași categorie,
- promovează o altă bază de produse asociată cu produsul vizualizat,
- restrâng rezultatul la anumite tipuri de produse,
- funcționează doar pentru anumite store view-uri și grupuri de clienți.
Un exemplu?
Clientul vizualizează un rashguard cu grafica HALLOWEEN 25. Profilul poate găsi automat produse cu aceeași grafică în alte linii de produse, de exemplu shorts, leggings sau accesorii. Un alt profil poate folosi același produs drept context în coș și îi poate propune clientului completarea comenzii cu produse dintr-o bază de sortiment selectată.
Creează recomandări pe baza condițiilor, nu a excepțiilor
Fiecare profil poate avea propriile:
Activation Conditions,Matching Rules,Target Product Filters,- sortare,
- limite de produse,
- variantă de randare,
- interval de activitate.
În practică, acest lucru oferă o libertate foarte mare.
Poți construi un profil care se activează doar pentru produsele cu atributul brand = Nike, doar în magazinul B2C, doar pentru clienții retail și doar în timpul unei campanii concrete. De asemenea, poți construi un profil care folosește produsul din coș ca punct de referință și propune accesorii pe baza caracteristicilor comune din catalog.
Nu mai este o simplă listă de produse. Este un motor de recomandare bazat pe reguli, care poate fi adaptat modelului real de vânzare al magazinului.
Alege produsul care trebuie să fie contextul
Pe pagina produsului, contextul este produsul curent. Însă în coș și în checkout răspunsul nu este întotdeauna evident. De aceea, modulul permite definirea Context Strategy, adică metoda de alegere a produsului contextual.
Poți decide ca profilurile să se bazeze pe:
- primul produs din coș,
- produsul adăugat cel mai recent,
- produsul cu cel mai mare preț.
Această flexibilitate face o diferență importantă în proiectele în care clientul adaugă în coș mai multe produse diferite, iar recomandările trebuie să rezulte dintr-o logică de business concretă.
Scenarii separate pentru produs, coș și checkout
Ceea ce funcționează bine pe PDP nu are întotdeauna sens în coș. Modulul permite separarea acestor scenarii fără a multiplica extensiile separate.
Pe pagina produsului poți afișa o listă de produse din aceeași colecție sau cu aceeași stilistică. În coș poți promova accesorii care cresc valoarea comenzii. În checkout poți pregăti o listă simplificată, mai prudentă, de produse care susțin cross-sell-ul.
Toate acestea în cadrul unui singur sistem de profiluri.
Alimentează listele native Magento: append sau replace
Nu fiecare magazin vrea să renunțe imediat la mecanismele native Magento. De aceea, modulul susține integrarea cu:
Related Products,Upsell Products,Crosssell Products.
Fiecare profil poate funcționa în unul dintre cele două moduri:
append
păstrează produsele native și adaugă la ele rezultatele modulului,replace
înlocuiește complet lista nativă cu produsele din profil.
Este o soluție de implementare foarte comodă. Poți începe cu o extindere ușoară a listelor Magento existente, iar abia apoi poți trece la controlul complet al recomandărilor din nivelul profilurilor.
Randează acolo unde îți dorești cu adevărat
Un avantaj important al modulului este posibilitatea de a controla locul de randare prin câmpuri XML atribuite profilului.
În loc să adaptezi modulul la un singur layout rigid, poți insera lista exact acolo unde proiectul are nevoie:
- sub descrierea produsului,
- sub preț,
- sub formularul de cumpărare,
- într-o secțiune suplimentară,
- într-un container propriu al temei,
- într-un loc rezultat dintr-un layout frontend personalizat.
Acest lucru este deosebit de important în magazinele bazate pe teme complexe sau puternic modificate. Modulul nu te obligă la un singur layout. Tu decizi unde și în ce mod trebuie inserat profilul.
Trei variante de prezentare pe frontend
Modulul nu se oprește la logica de selecție a produselor. Îți permite și să adaptezi modul de prezentare a listei la caracterul paginii și la tipul implementării.
Sunt disponibile variantele:
Grid,Slider,Compact.
Poți folosi astfel același motor de recomandări atât pentru o secțiune extinsă pe pagina produsului, cât și pentru o listă compactă în coș sau un modul mai restrâns în checkout.
Se adaugă și controlul asupra elementelor vizualizării:
- numele produsului,
- prețul,
- prețul regulat,
- descrierea scurtă,
- butonul de adăugare în coș,
- rolul imaginii.
Crearea de profiluri noi este clară și scalabilă
Modulul a fost construit astfel încât echipa de implementare sau agenția să poată dezvolta scenarii noi fără a reconstrui întreaga soluție.
Atunci când creezi un profil nou, configurezi:
- informațiile administrative de bază,
- plasamentele și domeniul de acțiune,
- store view-urile și grupurile de clienți,
- strategia de context,
- intervalul de date al activității,
- condițiile de activare,
- regulile de potrivire,
- filtrele pentru produsele țintă,
- sortarea și modul de afișare,
- integrarea cu listele native Magento,
- inserarea prin XML.
Asta înseamnă că un nou scenariu de merchandising nu necesită imediat un alt modul custom. Foarte des, este suficient un alt profil.
Exemple reale de utilizare
1. Aceeași grafică, altă bază de produse
Clientul vizualizează un produs dintr-o anumită linie. Modulul, pe baza matching rules, caută produse cu aceeași grafică, dar din alte familii de sortiment. Este un scenariu excelent pentru brandurile lifestyle, sport și fashion.
2. Cross-sell bazat pe produsul din coș
Clientul are deja în coș un produs selectat. Profilul îl folosește drept context și selectează accesorii care se potrivesc achiziției, dar nu sunt legate manual ca cross-sell nativ.
3. Campanie limitată în timp
Ai nevoie de recomandări care funcționează doar în timpul unei acțiuni de vânzare concrete? Este suficient să configurezi un profil cu From Date și To Date, fără a construi logică suplimentară.
4. Înlocuirea upsell-urilor native
Dacă upsell-urile standard Magento sunt prea simplificate, profilul poate prelua acest rol și poate funcționa în modul replace, oferind o potrivire a produselor mult mai precisă.
5. Integrare cu o temă personalizată
Datorită câmpurilor XML, lista poate fi inserată exact acolo unde cere frontendul proiectului, fără a construi o altă extensie dedicată pentru layout.
Pentru cine este acest modul
Kowal_RelatedProductsProfiles va fi deosebit de valoros pentru:
- agenții de implementare Magento 2,
- software house-uri care dezvoltă magazine e-commerce,
- merchant-uri care doresc să decupleze logica recomandărilor de relațiile menținute manual,
- proiecte cu un catalog extins și numeroase atribute de business,
- magazine care folosesc teme personalizate și layouturi complexe.
Ce obții
Cumpărând modulul, obții nu doar încă o listă de produse, ci un instrument pentru proiectarea propriilor scenarii de recomandare în Magento 2.
Este o soluție care:
- crește flexibilitatea implementării,
- organizează logica de merchandising,
- reduce nevoia de a scrie noi excepții în cod,
- valorifică mai bine atributele de catalog,
- permite dezvoltarea magazinului fără reconstruirea întregului mecanism de recomandare.
Dacă standardele related, upsell și cross-sell sunt prea limitate pentru proiectul tău, Kowal_RelatedProductsProfiles oferă un strat de control pe care Magento pur și simplu nu îl are implicit.
Instalarea și configurarea modulului
Acest document descrie instalarea modulului Kowal_RelatedProductsProfiles și configurarea de bază a unui profil de recomandare a produselor în panoul Magento.
Cerințe
- Magento 2 cu suport pentru module Composer.
- PHP compatibil cu proiectul:
^8.1,^8.2sau^8.3. - Modulul de bază
kowal/baseinstalat, deoarece meniul administrativ folosește structuraKowal.co > Modules. - Acces administrativ la CLI Magento.
Instalare prin Composer
- Adaugă repository-ul modulului:
composer config repositories.related.products.profiles vcs https://github.com/kowalco/related-bestsellers- Dacă repository-ul este privat, adaugă tokenul GitHub:
composer config --global --auth github-oauth.github.com - Instalează modulul:
composer require kowal/module-related-products-profiles- Activează modulul:
php bin/magento module:enable Kowal_RelatedProductsProfiles- Rulează actualizarea bazei de date:
php bin/magento setup:upgradeÎn timpul setup:upgrade, modulul creează tabelul profilurilor și rulează un data patch cu trei profiluri exemplu: related, crossel, upsell. Patch-ul nu suprascrie profilurile existente cu aceleași coduri.
- În modul de producție, reconstruiește dependency injection:
php bin/magento setup:di:compile- Curăță cache-ul:
php bin/magento cache:flushConfigurare globală de bază
Mergi la:
Stores > Configuration > Kowal > Related Product Profiles
Setează:
Enable Frontend Output:YesEnable Debug Logging:Noîn producție,Yesdoar pentru diagnosticarea funcționării profilurilor
Salvează configurația și curăță cache-ul dacă Magento solicită acest lucru.
Permisiuni administrative
Modulul adaugă resurse ACL pentru profiluri și configurare.
Acces la lista de profiluri:
Kowal > Modules > Related Product Profiles > Profiles
Acces la configurare:
Stores > Settings > Configuration > Related Product Profiles Configuration
Pentru un utilizator demo care trebuie să gestioneze doar profiluri, acordă permisiunea Profiles. Dacă utilizatorul trebuie să modifice și setarea globală de activare a modulului, acordă-i și resursa de configurare.
Unde gestionezi profilurile
Lista de profiluri se află în meniu:
Kowal.co > Modules > Related Product Profiles > Profiles
În listă poți adăuga un profil nou, edita unul existent sau șterge un profil.
Exemplu de configurare a profilului Related Products
Exemplul de mai jos creează un profil care înlocuiește blocul nativ Magento Related Products pe pagina produsului. Produsele vor fi selectate după același attribute_set_id, adică din același set de atribute ca produsul vizualizat de client.
1. Crearea profilului
Mergi la:
Kowal.co > Modules > Related Product Profiles > Profiles
Apasă Add New Profile.
2. Secțiunea General
Setează:
Name:Related ProductsCode:relatedIs Active: bifatSort Order:0Placements: alegeProduct PageStore Views: alegeAll Store ViewsCustomer Groups: alegeAll Customer GroupsContext Strategy:First matching itemFrom Date: golTo Date: gol
Observații:
- Pentru pagina produsului, contextul este întotdeauna produsul vizualizat în prezent.
Context Strategyare importanță practică mai ales pentru coș și checkout.Codetrebuie să fie unic.
3. Secțiunea Activation Conditions
Adaugă condiția:
| Cod atribut | Operator | Valoare |
|---|---|---|
status | Equals | 1 |
Semnificație:
- Profilul se va activa doar atunci când produsul contextual este activ.
- Dacă această condiție nu este îndeplinită, întregul profil va fi omis.
4. Secțiunea Matching Rules
Adaugă regula:
| Atribut sursă | Atribut țintă | Operator | Obligatoriu | Politică pentru valoare goală | Valoare implicită |
|---|---|---|---|---|---|
attribute_set_id | attribute_set_id | Equals | bifat | Skip Rule | gol |
Semnificație:
- Modulul va prelua
attribute_set_iddin produsul curent. - Apoi va găsi produse cu același
attribute_set_id. Requiredînseamnă că produsul țintă trebuie să îndeplinească această regulă.
Exemple alternative de reguli:
brand->brand, operatorEquals: produse ale aceleiași mărci.category_ids->category_ids, operatorCategory Intersects: produse din cel puțin o categorie comună.color->color, operatorEquals: produse cu aceeași culoare.
5. Secțiunea Target Product Filters
Adaugă filtrul:
| Cod atribut | Operator | Valoare |
|---|---|---|
status | Equals | 1 |
Semnificație:
- Din rezultate vor fi afișate doar produsele active.
Opțional, poți adăuga un filtru de vizibilitate:
| Cod atribut | Operator | Valoare |
|---|---|---|
visibility | In List | 2,3,4 |
6. Secțiunea Sorting & Display
Setează:
Sort Attribute:entity_idSort Direction:DESCSecondary Sort Attribute: golSecondary Sort Direction:NoneTitle:Related ProductsSubtitle: golProducts Limit:8Template Variant:SliderImage Role:category_page_gridShow Price: bifatShow Old Price: nebifatShow Add To Cart: bifatShow Product Name: bifatShow Short Description: nebifatShow Badges: nebifatHide If Empty: bifatExclude Current Product: bifatExclude Quote Products: bifatExclude Out Of Stock: bifat
Semnificația celor mai importante câmpuri:
Template Variantcontrolează aspectul listei:Grid,SlidersauCompact.Products Limitlimitează numărul de produse din rezultate.Exclude Current Productprevine afișarea produsului vizualizat în prezent în rezultate.Exclude Out Of Stockelimină produsele indisponibile.
7. Secțiunea Native Magento Lists
Pentru Related Products setează:
- checkbox
Related Products: bifat Mode:ReplacePosition:Magento default position
Semnificație:
- Bifarea checkboxului înseamnă că modulul preia blocul nativ Magento
Related Products. Replaceînseamnă că în blocul preluat vor fi afișate doar produsele din profil.Appendînseamnă că modulul va afișa produsele native Magento plus produsele din profil.Positionpermite mutarea blocului în alt loc pe pagina produsului.
Poziții exemplu:
Magento default position: lasă blocul în locul setat de tema Magento.sidebar.additional: mută blocul în sidebarul suplimentar.sidebar.main: mută blocul în sidebarul principal.content: mută blocul în conținutul principal al paginii.content.aside: mută blocul în zona laterală a contentului.product.info.main: mută blocul în coloana principală cu informații despre produs.product.info.media: mută blocul în zona galeriei produsului.product.info.details: mută blocul în zona detaliilor sau a taburilor produsului.
Dacă containerul selectat nu există în tema curentă, Magento va lăsa blocul în locul implicit.
Pentru Upsell Products și Crosssell Products, în acest exemplu lasă checkboxurile nebifate.
8. Secțiunea Layout XML
Pentru acest exemplu, lasă câmpurile goale:
Product Page XML: golEdit Cart XML: golCheckout XML: gol
Nu trebuie să adaugi XML dacă folosești secțiunea Native Magento Lists. XML este util atunci când profilul trebuie randat ca bloc suplimentar al modulului în afara listelor native Magento.
9. Salvarea profilului
Apasă:
Save Profilepentru a salva și a reveni la lista de profiluriSave and Continuepentru a salva și a rămâne în formular
După salvare, curăță cache-ul Magento dacă rezultatul nu este vizibil imediat pe frontend.
Exemplu de configurare Upsell în sidebar
Dacă vrei să muți Upsell Products în sidebar.additional:
- În
PlacementsalegeProduct Page. - În
Native Magento ListsbifeazăUpsell Products. - Setează
Mode:Append, dacă vrei să afișezi upsell-urile native Magento plus produsele profilului.Replace, dacă vrei să afișezi doar produsele profilului.
- Setează
Position:Additional sidebar - sidebar.additional. - Alege
Template Variant: de obiceiCompactse potrivește bine în sidebar.
Exemplu de configurare Crosssell în coș
Pentru crosssell:
- În
PlacementsalegeEdit Cart. - În
Native Magento ListsbifeazăCrosssell Products. - Setează
Mode: cel mai desReplace. Positionnu este disponibil pentru crosssell, deoarece în prezent poziționarea se aplică doar blocurilor de pe pagina produsului.
Diagnosticare
Dacă profilul nu afișează produse:
- Verifică dacă modulul este activat în configurare.
- Verifică dacă profilul are
Is Activebifat. - Verifică dacă
Placementscorespunde locului în care testezi profilul. - Verifică condițiile din
Activation Conditions. - Verifică dacă produsul contextual are valorile atributelor folosite în
Matching Rules. - Dezactivează temporar
Exclude Out Of Stockdacă testezi pe produse fără stocuri. - Activează
Enable Debug Loggingdoar pe durata diagnosticării.
Comenzi după implementarea modificărilor
După actualizarea modulului, rulează:
php bin/magento setup:upgradephp bin/magento cache:flushÎn modul de producție, rulează suplimentar:
php bin/magento setup:di:compileVersiune: 1.1.22
22.05.2026
Adăugat
- A fost adăugat un data patch pentru instalarea profilurilor exemplu, cu trei profiluri implicite:
relatedcrosselupsell
- A fost adăugată gestionarea poziției blocurilor native de pe pagina produsului pentru blocurile Related și Upsell.
- Au fost adăugate dropdownuri în admin pentru pozițiile blocurilor Related și Upsell.
- Au fost adăugate ținte de poziționare acceptate pentru pagina produsului:
contentcontent.asidesidebar.mainsidebar.additionalproduct.info.mainproduct.info.mediaproduct.info.details
- Au fost adăugate câmpurile de profil
related_block_positionșiupsell_block_position.
Modificat
- Injectarea nativă Magento pentru Related, Upsell și Crosssell înlocuiește acum outputul blocului nativ cu output randat de modul atunci când checkboxul corespunzător este activat.
- Modul
Appendrandează acum produsele native Magento plus produsele profilului în interiorul outputului modulului. - Modul
Replacerandează acum doar produsele profilului în interiorul outputului modulului. - Related Products folosește implicit modul
replace. - Butoanele de acțiune ale profilului din admin au fost mutate în partea de sus a formularului, în ordinea specifică Magento:
- Back
- Delete
- Save and Continue
- Save Profile
- Integrarea ACL/meniu din admin a fost aliniată cu structura de meniu
Kowal_Base:Kowal.co > Modules > Related Product Profiles > Profiles- configurarea rămâne în configurația Stores din Magento.
Corectat
- A fost prevenită randarea duplicată pe storefront atunci când un profil este gestionat prin înlocuirea unei liste native Magento.
- A fost corectată vizibilitatea intrării de meniu Profiles pentru rolurile admin limitate, prin conectarea resurselor de meniu și ACL la arborele modulelor Kowal.
- Au fost păstrate produsele din listele native Magento pentru modul
Append, evitând în același timp recursivitatea în timpul colectării elementelor native.



















