Personalizar
Quando você instala o módulo Product Recommendations, o Adobe Commerce cria o diretório ProductRecommendationsLayout
. Esse diretório contém arquivos de modelo que podem ser personalizados para alterar a forma como as recomendações são exibidas na loja. Especificamente, você pode modificar ou substituir o seguinte modelo:
<your theme>/Magento_ProductRecommendationsLayout/web/template/recommendations.html
Para obter mais informações sobre a modificação de arquivos de modelo, consulte Personalização de modelo no Guia do Desenvolvedor de Front-end.
Se você modificar o arquivo recommendations.html
, deverá preservar as seguintes marcas no arquivo para garantir que o Adobe Commerce possa coletar métricas de recomendação da sua loja:
<div data-bind="attr : {'data-unit-id' : unitId }"...</div>
<a data-bind="attr : {'data-sku' : sku, 'data-unit-id'}"...</a>
Observação: se você adicionar marcas de âncora, será necessário incluir esses atributos.
Além do arquivo recommendations.html
, o diretório ProductRecommendationsLayout
contém os seguintes subdiretórios:
layout
*.xml
arquivos para cada tipo de páginatemplates
web/js
web/template
magento/product-recommendations
Posicionamento da unidade de recomendação
Ao criar uma recomendação, especifique o local onde ele aparece na página. Uma unidade de recomendação pode ser colocada na parte superior ou inferior do container de conteúdo principal. No entanto, é possível personalizar essa disposição. Se você criar um tipo de conteúdo de recomendação do Page Builder, use as ferramentas do Page Builder para posicionar a unidade de recomendação na página. Para todos os outros tipos de página, edite os arquivos *.xml
gerados quando a recomendação é criada.
-
Alterar para o diretório
layout
:code language-bash cd `<your theme>/Magento_ProductRecommendationsLayout/layout`
A tabela a seguir lista os arquivos XML presentes nesse diretório:
table 0-row-2 1-row-2 2-row-2 3-row-2 4-row-2 5-row-2 Nome do arquivo Página catalog_category_view.xml
Categoria catalog_product_view.xml
Detalhes do produto checkout_cart_index.xml
Carrinho checkout_onepage_success.xml
Check-out cms_index_index.xml
Início note note NOTE Os nomes de arquivos no diretório layout
podem ser diferentes se o armazenamento usar extensões de terceiros. -
Modifique o arquivo
catalog_product_view.xml
para que a unidade de recomendação apareça após a imagem do produto na página de detalhes do produto. Antes de personalizar esse arquivo XML, examine-o e entenda as seções que você precisará modificar:code language-xml <?xml version="1.0"?> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <referenceBlock name="page.wrapper"> <block class="Magento\Framework\View\Element\Template" before="-" name="product_recommendations_fetcher" template="Magento_ProductRecommendationsStorefront::fetcher.phtml" /> </referenceBlock> <body> <referenceBlock name="main.content"> <block class="Magento\ProductRecommendationsStorefront\Block\Renderer" after="-" name="product_recommendations_product_below_content" template="Magento_ProductRecommendationsStorefront::renderer.phtml"> <arguments> <argument name="pagePlacement" xsi:type="string">below-main-content</argument> </arguments> </block> </referenceBlock> </body> </page>
No trecho acima, o bloco de referência
main.content
indica que a unidade de recomendação será colocada em algum lugar relativo a esse elemento. Seu elementoblock
contém o atributoafter="-"
, que especifica que a unidade de recomendação será exibida na página após o bloco de conteúdo principal. -
Vamos modificar esse arquivo especificando um bloco de conteúdo diferente.
Alterar o bloco de referência
name
demain.content
paraproduct.info.media
.code language-xml <?xml version="1.0"?> <page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd"> <referenceBlock name="page.wrapper"> <block class="Magento\Framework\View\Element\Template" before="-" name="product_recommendations_fetcher" template="Magento_ProductRecommendationsStorefront::fetcher.phtml" /> </referenceBlock> <body> <referenceBlock name="product.info.media"> <block class="Magento\ProductRecommendationsStorefront\Block\Renderer" after="-" name="product_recommendations_product_below_content" template="Magento_ProductRecommendationsStorefront::renderer.phtml"> <arguments> <argument name="pagePlacement" xsi:type="string">below-main-content</argument> </arguments> </block> </referenceBlock> </body> </page>
Essa alteração faz com que sua unidade de recomendação apareça depois da imagem do produto na página Detalhes do produto. Se desejar que a unidade de recomendação apareça antes de
product.info.media
, altere o atributoafter="-"
parabefore="-"
. O argumentopagePlacement
é um argumento interno que não deve ser modificado.
Consulte visão geral do layout para obter mais informações sobre os tipos de blocos na página.
Atributos de produto personalizados
Os desenvolvedores geralmente precisam acessar valores de atributos de produto personalizados em unidades de recomendações em vitrines para que possam adicionar tratamentos visuais aos produtos com base nesses atributos.
Por exemplo, se sua loja vende alguns produtos orgânicos, você pode ter um atributo personalizado nesses produtos designando-os como Organic = Yes
. Talvez seja necessário acessar esse valor de atributo na loja para que você possa dar a esses produtos um tratamento visual especial quando eles aparecerem no Recommendations. Da mesma forma, o acesso a esses valores de atributos de produto personalizados permite marcar os produtos ou direcionar a lógica personalizada na camada de apresentação do site.
Para garantir que um atributo de produto personalizado esteja disponível ao renderizar a unidade de recomendação na página, defina a propriedade Used in Product Listing
como Yes
na página Atributos de Produto no Administrador.
Quando essa propriedade é definida, a carga JSON inclui um objeto attributes
que contém uma matriz de códigos e valores de atributo. É possível aplicar o estilo personalizado da loja com base nesses valores de atributo, como adicionar tratamentos visuais especiais ou selos, conforme mencionado anteriormente.