Como personalizar o layout da página do produto no Magento

Publicados: 2021-08-16

Índice

Como você deve saber, cada produto requer um layout de página específico com base em seus recursos exclusivos. Portanto, a coisa aqui é personalizar um layout de página de produto específico para vários produtos em uma categoria sem alterar o layout da categoria .

Para isso, precisaremos passar pelo básico e, somente a partir daí, aprenderemos a personalizar o layout da página do produto com arquivos de layout.

Sobre arquivos de layout

No Magento, arquivos de layout são arquivos .XML que são usados ​​para definir a estrutura de uma determinada página. Os arquivos de layout são classificados em:

  • Layouts base : os arquivos de layout fornecidos pelos módulos
Modelo Localização
Configuração de página e arquivos de layout genéricos <module_dir>/view/frontend/layout
Arquivos de layout de página <module_dir>/view/frontend/page_layout
  • Layouts de tema : os arquivos de layout fornecidos pelos temas
Modelo Localização
Configuração de página e arquivos de layout genéricos <theme_dir>/<Namespace>_<Module>/layout
Arquivos de layout de página <theme_dir>/<Namespace>_<Module>/page_layout

Como personalizar o layout da página do produto

Para personalizar o layout de uma determinada página, você precisará substituir o arquivo de layout dessa página por um personalizado. Para fazer isso, você precisará localizar os arquivos de layout da página do produto do seu tema.

Personalize o layout da página do produto para todos os tipos de produtos

Magento 2 Página anterior/próxima do produto

Magento 2 Previous Next Product Page é um recurso otimizado que permite que os clientes naveguem pelas páginas do produto com um único clique sem problemas. Esse recurso eleva a usabilidade da sua loja e mantém uma experiência de navegação suave e agradável para seus clientes.

E se você quiser personalizar o layout da página do produto para todos os seus tipos de produtos?

Essa é a parte fácil, pois você só precisará fazer alterações no arquivo de layout comum, ou seja, catalog_product_view.xml (localizado em /theme_dir/Magento_Catalog/layout/) para que a alteração seja refletida em todos os seus tipos de produto.

Estruturar o conteúdo no layout usando contêineres

O layout das páginas do seu produto é estruturado usando contêineres , que podem ser referenciados ou ter mais blocos adicionados a ele.

Exemplo :

 <move element="product.info.social" destination="product.info.main" before="product.info.price"/>

Aqui estão os contêineres comuns usados ​​no layout da página do produto:

  • product.info.main
  • product.info.price
  • product.info.stock.sku
  • product.info.form.content
  • product.info.extrahint
  • product.info.social
  • product.info.media

Personalize o layout da página do produto para um produto específico

Há duas maneiras de personalizar o layout da página do produto para um produto específico, ambas envolvem colocar arquivos em uma pasta /layout/ especificada.

Método 1 : Criar uma atualização de layout personalizada

A partir do Magento 2.3.4, o campo XML de atualização de layout no painel de administração do Magento agora é convertido em um seletor, o que significa que você não pode mais adicionar código livremente neste campo.

layout de página de design
A atualização de layout personalizado para páginas de produtos agora é convertida em um seletor

Para aplicar atualizações de layout personalizado para suas páginas de produtos, você precisará colocar um arquivo .XML em uma pasta especificada ( app/design/frontend/<Vendor>/<Theme>/Magento_Catalog/layout/ ). A atualização de layout desse arquivo .XML aparecerá em Atualização de layout personalizado como uma opção selecionável.

A regra para nomes de arquivo de atualização de layout personalizado

Seus nomes de arquivo de atualização de layout personalizado precisarão seguir a seguinte regra:

catalog_product_view_selectable_<Product SKU>_<Name for Layout Update>.xml

Onde:

  • <Product_SKU> : é o SKU do produto ao qual você deseja aplicar a atualização de layout personalizado
  • <Name for Layout Update> : é o nome deste layout que será mostrado no seletor Custom Layout Update

Por exemplo, se quisermos aplicar uma nova atualização de layout personalizado para este SKU: MH05. Precisaremos colocar um arquivo de layout personalizado chamado catalog_product_view_selectable_ MH05_test.xml em /theme_dir/Magento_Catalog/layout/ , com o conteúdo abaixo:

arquivo MH05
 <?xml version="1.0"?>
<page layout="1column" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
    <corpo>
        <move element="page.main.title" destination="product.info.main" before="-"/>
        <move element="product.info.stock.sku" destination="product.info.price" after="product.price.final"/>
        <move element="product.info.review" destination="product.info.main" before="product.info.price"/>
		<referenceContainer name="page.wrapper">
             <referenceBlock name="breadcrumbs" remove="true"/>
         </referenceContainer>
    </body>
</page>

O que esse layout de teste fará é remover as migalhas de pão da página do produto SKU MH05.

Em seguida, em Catálogo > Produtos , escolha o produto com SKU MH05. Agora você poderá ver uma atualização de layout personalizada chamada test :

arquivo de teste de projeto

Escolha esta nova atualização de layout personalizado e salve as alterações.

Agora limpe seu cache usando:

 php bin/cache magento:flush

E as alterações agora devem ser refletidas em seu frontend.

sem migalhas de pão
Nosso produto (SKU MH05) com uma atualização de layout personalizada para remover migalhas de pão

Método 2 : Substituindo o layout

Com o método addPageLayoutHandles, você pode substituir o layout usando:

  • ID do produto
  • SKU do produto
  • Tipo de Produto

Por exemplo, se você quiser personalizar o layout da página do produto para um produto com ID 68, o nome do arquivo de layout precisará seguir o seguinte formato:

catalog_product_view_id_number.xml

por exemplo, catalog_product_view_id_68

E o arquivo precisará estar na seguinte parte:

/theme_dir/Magento_Catalog/layout/

ID de layout 68
Personalize o layout da página do produto para ID/SKU/tipo de produto específico

Limpe o cache seguindo a mensagem do sistema. Caso contrário, você pode acessar o frontend para conferir o novo layout de página personalizado para o produto específico.

Para o tipo de produto, você pode seguir as mesmas etapas e alterar o nome do arquivo de acordo. Por exemplo, use catalog_product_view_type_bundle.xml para aplicar o novo layout de página para produtos agrupados.

Espero que goste do novo layout de página para seus itens adoráveis!


Postagens relacionadas:
Como personalizar o processo de checkout no Magento 2
Como personalizar seus modelos de e-mail Magento