Produtos Relacionados Automáticos para Magento 2
Crie recomendações inteligentes de produtos em Magento 2 sem ficar limitado a relações rígidas related, upsell e cross-sell.
Kowal_RelatedProductsProfiles é um módulo que permite criar cenários de recomendação próprios com base em perfis, atributos de produtos, condições de ativação, filtros de destino e incorporação flexível no layout da loja. Assim, as recomendações deixam de ser uma lista estática e passam a fazer parte da estratégia de vendas da loja.
Transforme listas de produtos comuns em cenários de venda reais
No Magento padrão, os produtos relacionados são muitas vezes demasiado simples para suportar implementações mais exigentes. A loja quer apresentar produtos diferentes na página de produto, outros no carrinho e outros no checkout. Por vezes, a lista deve funcionar apenas para grupos de clientes selecionados, apenas durante uma campanha sazonal ou apenas quando o produto cumpre condições específicas do catálogo.
Este módulo foi desenvolvido precisamente para estes casos.
Em vez de ligar produtos manualmente entre si, cria um perfil de recomendação. O perfil define:
- onde deve funcionar,
- para que produto deve ser ativado,
- como selecionar os produtos de destino,
- como os restringir e ordenar,
- como devem ser apresentados,
- onde devem ser renderizados,
- e se devem alimentar as listas nativas do Magento.
Uma ferramenta, vários locais de implementação
O módulo funciona nas áreas mais importantes da loja:
- na página de produto,
- no carrinho,
- no checkout,
- nos blocos nativos
Related Products, - nos blocos nativos
Upsell Products, - nos blocos nativos
Crosssell Products.
Isto significa que um perfil pode tornar-se parte de vários cenários de merchandising diferentes, e a equipa de implementação não precisa de construir uma lógica separada para cada local da loja.
Perfis que se adaptam ao seu catálogo
A maior força do módulo é permitir que as recomendações sejam criadas não só manualmente, mas também de forma dinâmica com base nos atributos dos produtos.
Pode criar perfis que:
- selecionam produtos da mesma coleção,
- procuram produtos com o mesmo grafismo,
- mostram produtos da mesma categoria,
- promovem outra base de produtos relacionada com o produto visualizado,
- restringem o resultado a tipos de produtos específicos,
- funcionam apenas para store views e grupos de clientes selecionados.
Um exemplo?
O cliente está a ver uma rashguard com o grafismo HALLOWEEN 25. O perfil pode encontrar automaticamente produtos com o mesmo grafismo noutras linhas de produto, por exemplo calções, leggings ou acessórios. Outro perfil pode, por sua vez, utilizar o mesmo produto como contexto no carrinho e sugerir ao cliente que complete a encomenda com produtos de uma base de sortido selecionada.
Crie recomendações com base em condições, não em exceções
Cada perfil pode ter os seus próprios:
Activation Conditions,Matching Rules,Target Product Filters,- ordenação,
- limites de produtos,
- variante de renderização,
- período de atividade.
Na prática, isto oferece uma enorme liberdade.
Pode criar um perfil que seja acionado apenas para produtos com o atributo brand = Nike, apenas na loja B2C, apenas para clientes de retalho e apenas durante uma campanha específica. Também pode criar um perfil que utilize o produto do carrinho como ponto de referência e proponha complementos com base em características comuns do catálogo.
Isto já não é uma simples lista de produtos. É um motor de recomendações baseado em regras, que pode ser ajustado ao modelo real de vendas da loja.
Escolha que produto deve ser o contexto
Na página de produto, o contexto é o produto atual. Mas no carrinho e no checkout esta resposta nem sempre é óbvia. Por isso, o módulo permite definir a Context Strategy, ou seja, a forma de selecionar o produto de contexto.
Pode decidir que os perfis se baseiam em:
- primeiro produto do carrinho,
- produto adicionado mais recentemente,
- produto com o preço mais elevado.
Esta flexibilidade faz uma grande diferença em projetos em que o cliente adiciona vários produtos diferentes ao carrinho e as recomendações têm de resultar de uma lógica de negócio específica.
Cenários separados para produto, carrinho e checkout
O que funciona bem na PDP nem sempre faz sentido no carrinho. O módulo permite separar estes cenários sem multiplicar extensões independentes.
Na página de produto, pode apresentar uma lista de produtos da mesma coleção ou do mesmo estilo. No carrinho, pode promover complementos que aumentam o valor da encomenda. No checkout, pode preparar uma lista simplificada e mais prudente de produtos de apoio ao cross-sell.
Tudo isto dentro de um único sistema de perfis.
Alimente as listas nativas do Magento: append ou replace
Nem todas as lojas querem abandonar de imediato os mecanismos nativos do Magento. Por isso, o módulo suporta a integração com:
Related Products,Upsell Products,Crosssell Products.
Cada perfil pode funcionar num de dois modos:
append
mantém os produtos nativos e acrescenta os resultados do módulo,replace
substitui totalmente a lista nativa por produtos do perfil.
É uma solução de implementação muito prática. Pode começar por uma extensão leve das listas Magento atuais e só depois avançar para o controlo completo das recomendações ao nível dos perfis.
Renderize exatamente onde pretende
Uma grande vantagem do módulo é a possibilidade de controlar o local de renderização através de campos XML atribuídos ao perfil.
Em vez de adaptar o módulo a um único layout rígido, pode incorporar a lista exatamente onde o projeto precisa:
- por baixo da descrição do produto,
- por baixo do preço,
- por baixo do formulário de compra,
- numa secção adicional,
- num contentor próprio do tema,
- num local resultante de um layout frontend personalizado.
Isto é especialmente importante em lojas baseadas em temas extensos ou muito modificados. O módulo não o obriga a um único layout. É o utilizador que decide onde e de que forma o perfil deve ser incorporado.
Três variantes de apresentação no frontend
O módulo não se fica pela lógica de seleção de produtos. Também permite ajustar a forma de apresentação da lista ao caráter da página e ao tipo de implementação.
Estão disponíveis as variantes:
Grid,Slider,Compact.
Assim, pode utilizar o mesmo motor de recomendações tanto para uma secção extensa na página de produto como para uma lista compacta no carrinho ou um módulo mais compacto no checkout.
Além disso, há controlo sobre os elementos da vista:
- nome do produto,
- preço,
- preço regular,
- descrição curta,
- botão de adicionar ao carrinho,
- função da imagem.
A criação de novos perfis é clara e escalável
O módulo foi desenvolvido para que a equipa de implementação ou a agência possa desenvolver novos cenários sem reconstruir toda a solução.
Ao criar um novo perfil, configura:
- informações administrativas básicas,
- placements e âmbito de funcionamento,
- store views e grupos de clientes,
- estratégia de contexto,
- intervalo de datas de atividade,
- condições de ativação,
- regras de correspondência,
- filtros de produtos de destino,
- ordenação e forma de apresentação,
- integração com listas nativas do Magento,
- incorporação através de XML.
Isto significa que o próximo cenário de merchandising não exige imediatamente outro módulo custom. Muitas vezes, basta outro perfil.
Exemplos reais de utilização
1. O mesmo grafismo, outra base de produtos
O cliente visualiza um produto de uma linha específica. Com base nas matching rules, o módulo procura produtos com o mesmo grafismo, mas de outras famílias de sortido. É um excelente cenário para marcas lifestyle, desportivas e de moda.
2. Cross-sell baseado no produto do carrinho
O cliente já tem um produto selecionado no carrinho. O perfil utiliza-o como contexto e seleciona complementos que combinam com a compra, mas que não estão ligados manualmente como cross-sell nativo.
3. Campanha limitada no tempo
Precisa de recomendações que funcionem apenas durante uma ação de venda específica? Basta configurar um perfil com From Date e To Date, sem criar lógica adicional.
4. Substituição dos upsells nativos
Se os upsells padrão do Magento forem demasiado simplificados, o perfil pode assumir essa função e funcionar no modo replace, oferecendo uma correspondência de produtos muito mais precisa.
5. Integração com um tema personalizado
Graças aos campos XML, a lista pode ser incorporada exatamente onde o frontend do projeto exige, sem construir outra extensão dedicada ao layout.
Para quem é este módulo
Kowal_RelatedProductsProfiles será especialmente valioso para:
- agências de implementação Magento 2,
- software houses que desenvolvem lojas e-commerce,
- comerciantes que querem tornar a lógica de recomendações independente de relações mantidas manualmente,
- projetos com catálogo extenso e muitos atributos de negócio,
- lojas que utilizam temas personalizados e layouts complexos.
O que ganha
Ao comprar o módulo, ganha não apenas mais uma lista de produtos, mas uma ferramenta para criar os seus próprios cenários de recomendação em Magento 2.
É uma solução que:
- aumenta a flexibilidade da implementação,
- organiza a lógica de merchandising,
- reduz a necessidade de escrever novas exceções no código,
- tira melhor partido dos atributos do catálogo,
- permite desenvolver a loja sem reconstruir todo o mecanismo de recomendações.
Se os related, upsell e cross-sell padrão forem demasiado limitados para o seu projeto, Kowal_RelatedProductsProfiles oferece uma camada de controlo que o Magento simplesmente não tem por defeito.
Instalação e configuração do módulo
Este documento descreve a instalação do módulo Kowal_RelatedProductsProfiles e a configuração básica de um perfil de recomendação de produtos no painel Magento.
Requisitos
- Magento 2 com suporte para módulos Composer.
- PHP compatível com o projeto:
^8.1,^8.2ou^8.3. - Módulo base
kowal/baseinstalado, porque o menu administrativo utiliza a estruturaKowal.co > Modules. - Acesso administrativo à CLI do Magento.
Instalação através do Composer
- Adicione o repositório do módulo:
composer config repositories.related.products.profiles vcs https://github.com/kowalco/related-bestsellers- Se o repositório for privado, adicione o token GitHub:
composer config --global --auth github-oauth.github.com - Instale o módulo:
composer require kowal/module-related-products-profiles- Ative o módulo:
php bin/magento module:enable Kowal_RelatedProductsProfiles- Execute a atualização da base de dados:
php bin/magento setup:upgradeDurante setup:upgrade, o módulo cria a tabela de perfis e executa um data patch com três perfis de exemplo: related, crossel, upsell. O patch não substitui perfis existentes com os mesmos códigos.
- Em modo de produção, reconstrua a dependency injection:
php bin/magento setup:di:compile- Limpe a cache:
php bin/magento cache:flushConfiguração global básica
Aceda a:
Stores > Configuration > Kowal > Related Product Profiles
Defina:
Enable Frontend Output:YesEnable Debug Logging:Noem produção,Yesapenas ao diagnosticar o funcionamento dos perfis
Guarde a configuração e limpe a cache, se o Magento o solicitar.
Permissões administrativas
O módulo adiciona recursos ACL para perfis e configuração.
Acesso à lista de perfis:
Kowal > Modules > Related Product Profiles > Profiles
Acesso à configuração:
Stores > Settings > Configuration > Related Product Profiles Configuration
Para um utilizador demo que deve gerir apenas perfis, atribua a permissão Profiles. Se o utilizador também tiver de alterar a definição global de ativação do módulo, atribua-lhe também o recurso de configuração.
Onde gerir perfis
A lista de perfis encontra-se no menu:
Kowal.co > Modules > Related Product Profiles > Profiles
Na lista, pode adicionar um novo perfil, editar um existente ou eliminar um perfil.
Exemplo de configuração do perfil Related Products
O exemplo abaixo cria um perfil que substitui o bloco nativo Magento Related Products na página de produto. Os produtos serão selecionados de acordo com o mesmo attribute_set_id, ou seja, do mesmo conjunto de atributos que o produto visualizado pelo cliente.
1. Criação do perfil
Aceda a:
Kowal.co > Modules > Related Product Profiles > Profiles
Clique em Add New Profile.
2. Secção General
Defina:
Name:Related ProductsCode:relatedIs Active: selecionadoSort Order:0Placements: selecioneProduct PageStore Views: selecioneAll Store ViewsCustomer Groups: selecioneAll Customer GroupsContext Strategy:First matching itemFrom Date: vazioTo Date: vazio
Notas:
- Para a página de produto, o contexto é sempre o produto atualmente visualizado.
Context Strategytem significado prático sobretudo para o carrinho e o checkout.Codetem de ser único.
3. Secção Activation Conditions
Adicione a condição:
| Attribute Code | Operator | Value |
|---|---|---|
status | Equals | 1 |
Significado:
- O perfil será acionado apenas quando o produto de contexto estiver ativo.
- Se a condição não for cumprida, todo o perfil será ignorado.
4. Secção Matching Rules
Adicione a regra:
| Source Attribute | Target Attribute | Operator | Required | Empty Value Policy | Default Value |
|---|---|---|---|---|---|
attribute_set_id | attribute_set_id | Equals | selecionado | Skip Rule | vazio |
Significado:
- O módulo obterá o
attribute_set_iddo produto atual. - Em seguida, encontrará produtos com o mesmo
attribute_set_id. Requiredsignifica que o produto de destino tem de cumprir esta regra.
Exemplos alternativos de regras:
brand->brand, operadorEquals: produtos da mesma marca.category_ids->category_ids, operadorCategory Intersects: produtos com pelo menos uma categoria em comum.color->color, operadorEquals: produtos da mesma cor.
5. Secção Target Product Filters
Adicione o filtro:
| Attribute Code | Operator | Value |
|---|---|---|
status | Equals | 1 |
Significado:
- Nos resultados serão apresentados apenas produtos ativos.
Opcionalmente, pode adicionar um filtro de visibilidade:
| Attribute Code | Operator | Value |
|---|---|---|
visibility | In List | 2,3,4 |
6. Secção Sorting & Display
Defina:
Sort Attribute:entity_idSort Direction:DESCSecondary Sort Attribute: vazioSecondary Sort Direction:NoneTitle:Related ProductsSubtitle: vazioProducts Limit:8Template Variant:SliderImage Role:category_page_gridShow Price: selecionadoShow Old Price: não selecionadoShow Add To Cart: selecionadoShow Product Name: selecionadoShow Short Description: não selecionadoShow Badges: não selecionadoHide If Empty: selecionadoExclude Current Product: selecionadoExclude Quote Products: selecionadoExclude Out Of Stock: selecionado
Significado dos campos mais importantes:
Template Variantcontrola o aspeto da lista:Grid,SliderouCompact.Products Limitlimita o número de produtos nos resultados.Exclude Current Productimpede que o produto atualmente visualizado seja apresentado nos resultados.Exclude Out Of Stockremove produtos indisponíveis.
7. Secção Native Magento Lists
Para Related Products, defina:
- checkbox
Related Products: selecionado Mode:ReplacePosition:Magento default position
Significado:
- Selecionar a checkbox significa que o módulo assume o bloco nativo Magento
Related Products. Replacesignifica que no bloco assumido serão apresentados apenas produtos do perfil.Appendsignifica que o módulo apresentará produtos nativos do Magento mais produtos do perfil.Positionpermite mover o bloco para outro local da página de produto.
Posições de exemplo:
Magento default position: mantém o bloco no local definido pelo tema Magento.sidebar.additional: move o bloco para a sidebar adicional.sidebar.main: move o bloco para a sidebar principal.content: move o bloco para o conteúdo principal da página.content.aside: move o bloco para a área lateral do content.product.info.main: move o bloco para a coluna principal de informação do produto.product.info.media: move o bloco para a área da galeria do produto.product.info.details: move o bloco para a área de detalhes ou separadores do produto.
Se o contentor selecionado não existir no tema atual, o Magento deixará o bloco no local predefinido.
Para Upsell Products e Crosssell Products, neste exemplo deixe as checkboxes não selecionadas.
8. Secção Layout XML
Para este exemplo, deixe os campos vazios:
Product Page XML: vazioEdit Cart XML: vazioCheckout XML: vazio
Não é necessário adicionar XML se utilizar a secção Native Magento Lists. O XML é útil quando o perfil deve ser renderizado como um bloco adicional do módulo fora das listas nativas do Magento.
9. Guardar o perfil
Clique em:
Save Profilepara guardar e voltar à lista de perfisSave and Continuepara guardar e permanecer no formulário
Depois de guardar, limpe a cache do Magento se o resultado não estiver imediatamente visível no frontend.
Exemplo de configuração de Upsell na sidebar
Se quiser mover Upsell Products para sidebar.additional:
- Em
Placements, selecioneProduct Page. - Em
Native Magento Lists, selecioneUpsell Products. - Defina
Mode:Append, se quiser apresentar upsells nativos do Magento mais produtos do perfil.Replace, se quiser apresentar apenas produtos do perfil.
- Defina
Position:Additional sidebar - sidebar.additional. - Selecione
Template Variant: normalmenteCompactadapta-se bem à sidebar.
Exemplo de configuração de Crosssell no carrinho
Para crosssell:
- Em
Placements, selecioneEdit Cart. - Em
Native Magento Lists, selecioneCrosssell Products. - Defina
Mode: na maioria dos casosReplace. Positionnão está disponível para crosssell, porque atualmente o posicionamento aplica-se apenas a blocos na página de produto.
Diagnóstico
Se o perfil não apresentar produtos:
- Verifique se o módulo está ativado na configuração.
- Verifique se o perfil tem
Is Activeselecionado. - Verifique se
Placementscorresponde ao local onde está a testar o perfil. - Verifique as condições em
Activation Conditions. - Verifique se o produto de contexto tem valores dos atributos utilizados em
Matching Rules. - Desative temporariamente
Exclude Out Of Stockse estiver a testar produtos sem stock. - Ative
Enable Debug Loggingapenas durante o diagnóstico.
Comandos após a implementação de alterações
Depois de atualizar o módulo, execute:
php bin/magento setup:upgradephp bin/magento cache:flushEm modo de produção, execute adicionalmente:
php bin/magento setup:di:compileVersão: 1.1.22
22.05.2026
Adicionado
- Adicionado data patch de instalação de perfis de exemplo com três perfis predefinidos:
relatedcrosselupsell
- Adicionada gestão da posição dos blocos nativos da página de produto para blocos Related e Upsell.
- Adicionados dropdowns de administração para posições dos blocos Related e Upsell.
- Adicionados destinos de posição suportados na página de produto:
contentcontent.asidesidebar.mainsidebar.additionalproduct.info.mainproduct.info.mediaproduct.info.details
- Adicionados os campos de perfil
related_block_positioneupsell_block_position.
Alterado
- A injeção nativa de Related, Upsell e Crosssell do Magento substitui agora a saída do bloco nativo pela saída renderizada pelo módulo quando a checkbox correspondente está ativada.
- O modo
Appendrenderiza agora produtos nativos do Magento mais produtos do perfil dentro da saída do módulo. - O modo
Replacerenderiza agora apenas produtos do perfil dentro da saída do módulo. - Related Products usa por defeito o modo
replace. - Os botões de ação do perfil na administração foram movidos para o topo do formulário pela ordem ao estilo Magento:
- Voltar
- Eliminar
- Guardar e continuar
- Guardar perfil
- A integração ACL/menu da administração foi alinhada com a estrutura de menu
Kowal_Base:Kowal.co > Modules > Related Product Profiles > Profiles- a configuração permanece na configuração Stores do Magento.
Corrigido
- Prevenida a renderização duplicada no storefront quando um perfil é tratado por uma substituição de lista nativa do Magento.
- Corrigida a visibilidade da entrada de menu Profiles para funções de administração limitadas, ligando o menu e os recursos ACL à árvore de módulos Kowal.
- Preservados os produtos de listas nativas do Magento para o modo
Append, evitando recursão durante a recolha de itens nativos.


















