Como criar uma aba personalizada na página de produtos do Back Office no PrestaShop

O PrestaShop, com sua estrutura poderosa e flexível, permite que os desenvolvedores personalizem vários aspectos da plataforma para atender a requisitos comerciais específicos. Uma dessas personalizações é adicionar uma guia personalizada na página de produto do back office. Neste blog, percorreremos o processo passo a passo para atingir isso criando um módulo de amostra chamado kbcustommodule.

Podemos criar a guia personalizada na página do produto do back office de duas maneiras:

  1. Usando componentes do Symfony.
  2. Usando o gancho displayAdminProductsExtra

Método 1:

Este tutorial é aplicável ao PrestaShop versão 8.1 e superiores, utilizando componentes Symfony.

Etapa 1: Crie seu módulo

kbcustommodule/ |– composer.json |– config/ | |– services.yml |– src/ | |– Form/ | | |– Modifier/ | | | |– ProductFormModifier.php | | |– Type/ | | | |– CustomTabType.php |– kbcustommodule.php Comece criando uma pasta chamada kbcustommodule no diretório de módulos da sua instalação do PrestaShop. Dentro dessa pasta, crie o arquivo kbcustommodule.php, que conterá a classe principal do seu módulo. A classe do módulo inicializa o módulo e registra os ganchos necessários. Aqui está um exemplo do arquivo kdcustommodule.php:

Execute o comando composer dump-autoload no diretório raiz do seu módulo para habilitar o carregamento automático do namespace.

Etapa 2: Definir serviços

Crie um arquivo services.yml sob o diretório config do seu módulo (kbcustommodule/config/services.yml). Este arquivo define os serviços Symfony necessários para a personalização do formulário.

Etapa 3: Crie o tipo de formulário de guia personalizado

Crie uma classe CustomTabType na pasta src/Form/Type do seu módulo. Essa classe define os campos que aparecerão na guia personalizada.

Etapa 4: Crie a classe ProductFormModifier

A classe ProductFormModifier define como a guia personalizada se integra ao formulário de produto existente.

Etapa final: instalar e testar

  1. Instale o módulo através do back office ou coloque-o manualmente no diretório de módulos e habilite-o.
  2. Navegue até a página do produto back office. Você deve ver uma nova aba chamada “Custom Tab” com um campo chamado “Custom Field”.
  3. Teste a funcionalidade adicionando dados ao campo personalizado e garantindo que ele seja salvo corretamente.

Após a instalação bem-sucedida do módulo acima. Você obterá o resultado como segue.

Integrar o Google Tag Manager com o Prestashop

Comprar

Método 2:

O hook displayAdminProductsExtra permite que você adicione conteúdo personalizado ou abas à página de edição do produto no Back Office. Esse método evita a complexidade de definir serviços Symfony e é mais fácil para desenvolvedores não familiarizados com Symfony.

Etapa 1: Crie o módulo

Comece criando uma estrutura básica de módulo. Por exemplo: Kbcustommodule/ |– config/ |– translations/ |– views/ | |– templates/ | |– admin/ | |– products/ | |– custom_tab.tpl |– Kbcustommodule.php

Etapa 2: Defina a classe do módulo

No arquivo Kbcustommodule.php, defina seu módulo e registre o hook displayAdminProductsExtra.

 

Etapa 3: Crie o arquivo de modelo

No arquivo views/templates/admin/products/custom_tab.tpl, defina o HTML e o conteúdo da sua guia personalizada.

Etapa 4: Salve os dados

Para salvar os dados personalizados, use o hook actionAdminControllerSetMedia junto com JavaScript ou PHP. Como alternativa, você pode usar o hook actionProductUpdate em PHP. Exemplo em Kbcustommodule.php:

Etapa 5: Adicione o campo ao banco de dados

Modifique o banco de dados para armazenar seus dados personalizados. Por exemplo: ———————————————————————— ALTER TABLE ps_product ADD custom_field TEXT NULL; ———————————————————————— Após a instalação bem-sucedida do módulo acima. Você obterá o seguinte resultado Para obter mais assistência, sinta-se à vontade para entrar em contato ou deixar um comentário abaixo. Ou você também pode entrar em contato conosco em Helpdesk da banda de conhecimento.