Productos relacionados automáticos para Magento 2
Crea recomendaciones de productos inteligentes en Magento 2 sin limitarte a relaciones rígidas related, upsell y cross-sell.
Kowal_RelatedProductsProfiles es un módulo que permite diseñar escenarios de recomendación propios basados en perfiles, atributos de producto, condiciones de activación, filtros de destino y una inserción flexible en el layout de la tienda. Así, las recomendaciones dejan de ser una lista estática y se convierten en parte de la estrategia comercial de la tienda.
Convierte simples listas de productos en escenarios de venta reales
En Magento estándar, los productos relacionados suelen ser demasiado simples para cubrir implementaciones más exigentes. La tienda quiere mostrar unos productos en la ficha de producto, otros en el carrito y otros en el checkout. A veces, la lista debe funcionar solo para determinados grupos de clientes, solo durante una campaña estacional o solo cuando el producto cumple condiciones concretas del catálogo.
Este módulo se ha creado precisamente para esos casos.
En lugar de vincular productos manualmente entre sí, creas un perfil de recomendación. El perfil define:
- dónde debe funcionar,
- para qué producto debe activarse,
- cómo seleccionar los productos de destino,
- cómo acotarlos y ordenarlos,
- cómo deben mostrarse,
- dónde deben renderizarse,
- y si deben alimentar las listas nativas de Magento.
Una herramienta, múltiples ubicaciones de implementación
El módulo funciona en las áreas más importantes de la tienda:
- en la ficha de producto,
- en el carrito,
- en el checkout,
- en los bloques nativos
Related Products, - en los bloques nativos
Upsell Products, - en los bloques nativos
Crosssell Products.
Esto significa que un perfil puede formar parte de varios escenarios de merchandising diferentes, y el equipo de implementación no tiene que construir una lógica independiente para cada ubicación de la tienda.
Perfiles que se adaptan a tu catálogo
La mayor ventaja del módulo es que las recomendaciones pueden construirse no solo manualmente, sino también de forma dinámica a partir de los atributos de producto.
Puedes crear perfiles que:
- seleccionan productos de la misma colección,
- buscan productos con el mismo diseño gráfico,
- muestran productos de la misma categoría,
- promocionan otra base de productos relacionada con el producto visualizado,
- acotan el resultado a tipos de producto concretos,
- funcionan solo para determinados store views y grupos de clientes.
¿Un ejemplo?
El cliente está viendo un rashguard con el diseño HALLOWEEN 25. El perfil puede encontrar automáticamente productos con el mismo diseño gráfico en otras líneas de producto, por ejemplo shorts, leggings o accesorios. Otro perfil, a su vez, puede utilizar ese mismo producto como contexto en el carrito y proponer al cliente completar el pedido con productos de una base de surtido seleccionada.
Crea recomendaciones basadas en condiciones, no en excepciones
Cada perfil puede tener sus propios:
Activation Conditions,Matching Rules,Target Product Filters,- ordenación,
- límites de productos,
- variante de renderizado,
- intervalo temporal de actividad.
En la práctica, esto ofrece una enorme libertad.
Puedes crear un perfil que se active solo para productos con el atributo brand = Nike, solo en la tienda B2C, solo para clientes minoristas y solo durante una campaña concreta. También puedes crear un perfil que utilice el producto del carrito como punto de referencia y proponga complementos basados en características comunes del catálogo.
Ya no es una simple lista de productos. Es un motor de recomendaciones basado en reglas que puede adaptarse al modelo de venta real de la tienda.
Elige qué producto debe ser el contexto
En la ficha de producto, el contexto es el producto actual. Pero en el carrito y en el checkout, esa respuesta no siempre es evidente. Por eso el módulo permite definir Context Strategy, es decir, la forma de seleccionar el producto contextual.
Puedes decidir que los perfiles se basen en:
- el primer producto del carrito,
- el producto añadido más recientemente,
- el producto con el precio más alto.
Esta flexibilidad marca una gran diferencia en proyectos en los que el cliente añade al carrito varios productos distintos y las recomendaciones deben responder a una lógica de negocio concreta.
Escenarios independientes para producto, carrito y checkout
Lo que funciona bien en la PDP no siempre tiene sentido en el carrito. El módulo permite separar estos escenarios sin multiplicar extensiones independientes.
En la ficha de producto puedes mostrar una lista de productos de la misma colección o del mismo estilo. En el carrito puedes promocionar complementos que aumenten el valor del pedido. En el checkout puedes preparar una lista simplificada y más prudente de productos que apoyen el cross-sell.
Todo ello dentro de un único sistema de perfiles.
Alimenta las listas nativas de Magento: append o replace
No todas las tiendas quieren renunciar de inmediato a los mecanismos nativos de Magento. Por eso el módulo admite la integración con:
Related Products,Upsell Products,Crosssell Products.
Cada perfil puede funcionar en uno de dos modos:
append
conserva los productos nativos y añade a ellos los resultados del módulo,replace
sustituye por completo la lista nativa por los productos del perfil.
Es una solución de implementación muy cómoda. Puedes empezar ampliando ligeramente las listas actuales de Magento y, más adelante, pasar a controlar por completo las recomendaciones desde los perfiles.
Renderiza exactamente donde quieras
Una gran ventaja del módulo es la posibilidad de controlar el lugar de renderizado mediante campos XML asignados al perfil.
En lugar de adaptar el módulo a una estructura rígida, puedes insertar la lista exactamente donde lo necesite el proyecto:
- debajo de la descripción del producto,
- debajo del precio,
- debajo del formulario de compra,
- en una sección adicional,
- en un contenedor propio del tema,
- en un lugar derivado de un layout frontend personalizado.
Esto es especialmente importante en tiendas basadas en temas complejos o muy modificados. El módulo no te obliga a usar una única estructura. Tú decides dónde y de qué forma debe insertarse el perfil.
Tres variantes de presentación en el frontend
El módulo no se limita a la lógica de selección de productos. También permite adaptar la forma de presentar la lista al carácter de la página y al tipo de implementación.
Están disponibles las variantes:
Grid,Slider,Compact.
Así puedes utilizar el mismo motor de recomendaciones tanto para una sección amplia en la ficha de producto como para una lista compacta en el carrito o un módulo más reducido en el checkout.
A ello se suma el control sobre los elementos de la vista:
- nombre del producto,
- precio,
- precio regular,
- descripción breve,
- botón de añadir al carrito,
- rol de la imagen.
Crear nuevos perfiles es claro y escalable
El módulo se ha diseñado para que el equipo de implementación o la agencia pueda desarrollar nuevos escenarios sin reconstruir toda la solución.
Al crear un nuevo perfil, configuras:
- información administrativa básica,
- placements y alcance de funcionamiento,
- store views y grupos de clientes,
- estrategia de contexto,
- intervalo de fechas de actividad,
- condiciones de activación,
- reglas de coincidencia,
- filtros de productos de destino,
- ordenación y forma de visualización,
- integración con las listas nativas de Magento,
- inserción mediante XML.
Esto significa que un nuevo escenario de merchandising no requiere necesariamente otro módulo custom. Muy a menudo basta con crear otro perfil.
Ejemplos reales de uso
1. El mismo diseño gráfico, otra base de productos
El cliente está viendo un producto de una línea concreta. El módulo, basándose en matching rules, busca productos con el mismo diseño gráfico, pero de otras familias de surtido. Es un escenario excelente para marcas lifestyle, deportivas y de moda.
2. Cross-sell basado en un producto del carrito
El cliente ya tiene un producto seleccionado en el carrito. El perfil lo utiliza como contexto y selecciona complementos que encajan con la compra, pero que no están vinculados manualmente como cross-sell nativo.
3. Campaña limitada en el tiempo
¿Necesitas recomendaciones que funcionen solo durante una acción comercial concreta? Basta con configurar un perfil con From Date y To Date, sin construir lógica adicional.
4. Sustitución de upsells nativos
Si los upsells estándar de Magento son demasiado simples, el perfil puede asumir esa función y trabajar en modo replace, ofreciendo una selección de productos mucho más precisa.
5. Integración con un tema personalizado
Gracias a los campos XML, la lista puede insertarse exactamente donde lo requiere el frontend del proyecto, sin crear otra extensión dedicada al layout.
Para quién es este módulo
Kowal_RelatedProductsProfiles será especialmente valioso para:
- agencias de implementación de Magento 2,
- software houses que desarrollan tiendas e-commerce,
- merchants que quieren independizar la lógica de recomendaciones de relaciones mantenidas manualmente,
- proyectos con un catálogo amplio y muchos atributos de negocio,
- tiendas que utilizan temas personalizados y layouts complejos.
Qué obtienes
Al comprar el módulo, no obtienes simplemente otra lista de productos, sino una herramienta para diseñar tus propios escenarios de recomendación en Magento 2.
Es una solución que:
- aumenta la flexibilidad de la implementación,
- ordena la lógica de merchandising,
- reduce la necesidad de escribir nuevas excepciones en el código,
- aprovecha mejor los atributos del catálogo,
- permite desarrollar la tienda sin reconstruir todo el mecanismo de recomendaciones.
Si los related, upsell y cross-sell estándar son demasiado limitados para tu proyecto, Kowal_RelatedProductsProfiles aporta una capa de control que Magento simplemente no incluye por defecto.
Instalación y configuración del módulo
Este documento describe la instalación del módulo Kowal_RelatedProductsProfiles y la configuración básica de un perfil de recomendaciones de productos en el panel de Magento.
Requisitos
- Magento 2 con soporte para módulos Composer.
- PHP compatible con el proyecto:
^8.1,^8.2o^8.3. - Módulo base
kowal/baseinstalado, porque el menú administrativo utiliza la estructuraKowal.co > Modules. - Acceso administrativo a la CLI de Magento.
Instalación mediante Composer
- Añade el repositorio del módulo:
composer config repositories.related.products.profiles vcs https://github.com/kowalco/related-bestsellers- Si el repositorio es privado, añade un token de GitHub:
composer config --global --auth github-oauth.github.com - Instala el módulo:
composer require kowal/module-related-products-profiles- Activa el módulo:
php bin/magento module:enable Kowal_RelatedProductsProfiles- Ejecuta la actualización de la base de datos:
php bin/magento setup:upgradeDurante setup:upgrade, el módulo crea la tabla de perfiles y ejecuta un data patch con tres perfiles de ejemplo: related, crossel, upsell. El patch no sobrescribe perfiles existentes con los mismos códigos.
- En modo producción, recompila dependency injection:
php bin/magento setup:di:compile- Limpia la caché:
php bin/magento cache:flushConfiguración global básica
Ve a:
Stores > Configuration > Kowal > Related Product Profiles
Configura:
Enable Frontend Output:YesEnable Debug Logging:Noen producción,Yessolo al diagnosticar el funcionamiento de los perfiles
Guarda la configuración y limpia la caché si Magento lo solicita.
Permisos administrativos
El módulo añade recursos ACL para perfiles y configuración.
Acceso a la lista de perfiles:
Kowal > Modules > Related Product Profiles > Profiles
Acceso a la configuración:
Stores > Settings > Configuration > Related Product Profiles Configuration
Para un usuario demo que solo deba gestionar perfiles, concede el permiso Profiles. Si el usuario también debe cambiar el ajuste global de activación del módulo, asígnale también el recurso de configuración.
Dónde gestionar los perfiles
La lista de perfiles se encuentra en el menú:
Kowal.co > Modules > Related Product Profiles > Profiles
En la lista se puede añadir un nuevo perfil, editar uno existente o eliminar un perfil.
Ejemplo de configuración del perfil Related Products
El siguiente ejemplo crea un perfil que sustituye el bloque nativo de Magento Related Products en la ficha de producto. Los productos se seleccionarán según el mismo attribute_set_id, es decir, del mismo conjunto de atributos que el producto visto por el cliente.
1. Creación del perfil
Ve a:
Kowal.co > Modules > Related Product Profiles > Profiles
Haz clic en Add New Profile.
2. Sección General
Configura:
Name:Related ProductsCode:relatedIs Active: marcadoSort Order:0Placements: seleccionaProduct PageStore Views: seleccionaAll Store ViewsCustomer Groups: seleccionaAll Customer GroupsContext Strategy:First matching itemFrom Date: vacíoTo Date: vacío
Notas:
- Para la ficha de producto, el contexto siempre es el producto que se está viendo actualmente.
Context Strategytiene importancia práctica principalmente para el carrito y el checkout.Codedebe ser único.
3. Sección Activation Conditions
Añade una condición:
| Attribute Code | Operator | Value |
|---|---|---|
status | Equals | 1 |
Significado:
- El perfil se activará solo cuando el producto contextual esté activo.
- Si la condición no se cumple, todo el perfil se omitirá.
4. Sección Matching Rules
Añade una regla:
| Source Attribute | Target Attribute | Operator | Required | Empty Value Policy | Default Value |
|---|---|---|---|---|---|
attribute_set_id | attribute_set_id | Equals | marcado | Skip Rule | vacío |
Significado:
- El módulo obtendrá
attribute_set_iddel producto actual. - A continuación encontrará productos con el mismo
attribute_set_id. Requiredsignifica que el producto de destino debe cumplir esta regla.
Ejemplos alternativos de reglas:
brand->brand, operadorEquals: productos de la misma marca.category_ids->category_ids, operadorCategory Intersects: productos con al menos una categoría común.color->color, operadorEquals: productos del mismo color.
5. Sección Target Product Filters
Añade un filtro:
| Attribute Code | Operator | Value |
|---|---|---|
status | Equals | 1 |
Significado:
- En los resultados se mostrarán solo productos activos.
Opcionalmente se puede añadir un filtro de visibilidad:
| Attribute Code | Operator | Value |
|---|---|---|
visibility | In List | 2,3,4 |
6. Sección Sorting & Display
Configura:
Sort Attribute:entity_idSort Direction:DESCSecondary Sort Attribute: vacíoSecondary Sort Direction:NoneTitle:Related ProductsSubtitle: vacíoProducts Limit:8Template Variant:SliderImage Role:category_page_gridShow Price: marcadoShow Old Price: sin marcarShow Add To Cart: marcadoShow Product Name: marcadoShow Short Description: sin marcarShow Badges: sin marcarHide If Empty: marcadoExclude Current Product: marcadoExclude Quote Products: marcadoExclude Out Of Stock: marcado
Significado de los campos más importantes:
Template Variantcontrola el aspecto de la lista:Grid,SlideroCompact.Products Limitlimita el número de productos en los resultados.Exclude Current Productevita que el producto visto actualmente aparezca en los resultados.Exclude Out Of Stockelimina los productos no disponibles.
7. Sección Native Magento Lists
Para Related Products, configura:
- checkbox
Related Products: marcado Mode:ReplacePosition:Magento default position
Significado:
- Marcar el checkbox significa que el módulo asume el bloque nativo de Magento
Related Products. Replacesignifica que en el bloque asumido se mostrarán solo los productos del perfil.Appendsignifica que el módulo mostrará los productos nativos de Magento más los productos del perfil.Positionpermite mover el bloque a otro lugar de la ficha de producto.
Posiciones de ejemplo:
Magento default position: deja el bloque en el lugar definido por el tema de Magento.sidebar.additional: mueve el bloque al sidebar adicional.sidebar.main: mueve el bloque al sidebar principal.content: mueve el bloque al contenido principal de la página.content.aside: mueve el bloque al área lateral del content.product.info.main: mueve el bloque a la columna principal de información del producto.product.info.media: mueve el bloque al área de galería del producto.product.info.details: mueve el bloque al área de detalles o pestañas del producto.
Si el contenedor seleccionado no existe en el tema actual, Magento dejará el bloque en su ubicación predeterminada.
Para Upsell Products y Crosssell Products, en este ejemplo deja los checkbox sin marcar.
8. Sección Layout XML
Para este ejemplo, deja los campos vacíos:
Product Page XML: vacíoEdit Cart XML: vacíoCheckout XML: vacío
No es necesario añadir XML si utilizas la sección Native Magento Lists. XML es útil cuando el perfil debe renderizarse como un bloque adicional del módulo fuera de las listas nativas de Magento.
9. Guardar el perfil
Haz clic en:
Save Profile, para guardar y volver a la lista de perfilesSave and Continue, para guardar y permanecer en el formulario
Después de guardar, limpia la caché de Magento si el resultado no es visible de inmediato en el frontend.
Ejemplo de configuración de Upsell en el sidebar
Si quieres mover Upsell Products a sidebar.additional:
- En
Placements, seleccionaProduct Page. - En
Native Magento Lists, marcaUpsell Products. - Configura
Mode:Append, si quieres mostrar los upsells nativos de Magento más los productos del perfil.Replace, si quieres mostrar solo los productos del perfil.
- Configura
Position:Additional sidebar - sidebar.additional. - Selecciona
Template Variant: normalmenteCompactencaja bien en el sidebar.
Ejemplo de configuración de Crosssell en el carrito
Para crosssell:
- En
Placements, seleccionaEdit Cart. - En
Native Magento Lists, marcaCrosssell Products. - Configura
Mode: normalmenteReplace. Positionno está disponible para crosssell, porque actualmente el posicionamiento se aplica solo a bloques en la ficha de producto.
Diagnóstico
Si el perfil no muestra productos:
- Comprueba si el módulo está activado en la configuración.
- Comprueba si el perfil tiene
Is Activemarcado. - Comprueba si
Placementscoincide con el lugar donde estás probando el perfil. - Comprueba las condiciones en
Activation Conditions. - Comprueba si el producto contextual tiene valores de atributos utilizados en
Matching Rules. - Desactiva temporalmente
Exclude Out Of Stocksi estás probando con productos sin stock. - Activa
Enable Debug Loggingsolo durante el diagnóstico.
Comandos después de implementar cambios
Después de actualizar el módulo, ejecuta:
php bin/magento setup:upgradephp bin/magento cache:flushEn modo producción, ejecuta además:
php bin/magento setup:di:compileVersión: 1.1.22
22.05.2026
Añadido
- Añadido data patch de instalación de perfiles de ejemplo con tres perfiles predeterminados:
relatedcrosselupsell
- Añadida gestión de posición de bloques nativos en la página de producto para los bloques Related y Upsell.
- Añadidos desplegables de administración para las posiciones de los bloques Related y Upsell.
- Añadidos destinos de posición compatibles en la página de producto:
contentcontent.asidesidebar.mainsidebar.additionalproduct.info.mainproduct.info.mediaproduct.info.details
- Añadidos los campos de perfil
related_block_positionyupsell_block_position.
Cambiado
- La inyección nativa de Magento Related, Upsell y Crosssell ahora sustituye la salida del bloque nativo por la salida renderizada por el módulo cuando el checkbox correspondiente está activado.
- El modo
Appendahora renderiza los productos nativos de Magento más los productos del perfil dentro de la salida del módulo. - El modo
Replaceahora renderiza solo los productos del perfil dentro de la salida del módulo. - Related Products tiene por defecto el modo
replace. - Los botones de acción del perfil en administración se han movido a la parte superior del formulario en el orden de estilo Magento:
- Volver
- Eliminar
- Guardar y continuar
- Guardar perfil
- La integración de ACL/menú de administración se ha alineado con la estructura de menú de
Kowal_Base:Kowal.co > Modules > Related Product Profiles > Profiles- la configuración permanece en la configuración de Stores de Magento.
Corregido
- Se ha evitado el renderizado duplicado en storefront cuando un perfil se gestiona mediante una sustitución de lista nativa de Magento.
- Corregida la visibilidad de la entrada de menú Profiles para roles de administración limitados al conectar los recursos de menú y ACL con el árbol de módulos de Kowal.
- Se han conservado los productos de las listas nativas de Magento para el modo
Append, evitando la recursión durante la recopilación de elementos nativos.
























