PrestaShop é uma plataforma de e-commerce robusta de código aberto projetada para flexibilidade e personalização. Ela permite que os desenvolvedores modifiquem e aprimorem sua funcionalidade principal usando ganchos, que são pontos de entrada predefinidos no sistema. Esses ganchos permitem a integração perfeita de recursos personalizados, garantindo que as atualizações e a manutenção do sistema principal permaneçam sem complicações. Este blog fornece um guia abrangente para adicionar, salvar e exibir campos personalizados para formulários de produtos e clientes no PrestaShop. Ao final deste blog, você terá um entendimento completo de como crie campos de formulário personalizados no Prestashop, armazenar seus dados no banco de dados e exibir essas informações no painel do administrador.
Etapa 1: Adicionar campos personalizados aos formulários de produtos e clientes –
O primeiro passo na personalização do PrestaShop envolve a inserção de novos campos nos formulários para produtos e clientes.
Adicionando campos personalizados ao formulário do produto
Para isso, vamos usar o displayAdminProdutosExtra hook para anexar o campo personalizado ao formulário do produto. Este hook é acionado sempre que um produto é editado no painel de administração.
Visão geral do gancho: Este gancho permite que você adicione quaisquer campos ou informações extras à página de criação/edição do produto.
Explicação do Código:
O exemplo fornecido demonstra como buscar dados existentes para um campo personalizado do banco de dados e exibi-los no formulário. O ID do produto é recuperado dinamicamente do $ params, garantindo que os dados exibidos correspondam ao produto que está sendo editado.
Adicionar campos personalizados no formulário de registro do cliente
Campos de registro personalizados – Complementos Prestashop
Adicionando campos personalizados ao formulário do cliente
Da mesma forma, o displayAdminFormulárioClientes hook fornece um ponto de entrada para injetar campos no formulário do cliente.
Visão geral do gancho: Este gancho é acionado ao renderizar o formulário de criação/edição do cliente.
Ao atribuir variáveis Smarty, o modelo para o campo personalizado é perfeitamente integrado à interface do administrador.
Etapa 2: Criando os campos do banco de dados-
Por que modificar o banco de dados?
O PrestaShop adere a um modelo de banco de dados relacional. Ao adicionar colunas personalizadas ao ps_produto e ps_cliente tabelas, você garante que seus dados personalizados permaneçam associados ao seu respectivo produto ou cliente.
Consultas SQL:
Os scripts SQL fornecidos demonstram como adicionar colunas ao ps_produto e ps_cliente tabelas. Essas consultas são executadas uma vez para preparar o banco de dados para armazenar os valores dos campos personalizados.
Consulta SQL para produto:
Consulta SQL para o cliente:
Melhores práticas:
- Certifique-se de criar um backup do banco de dados antes de implementar ou prosseguir com displayAdminProdutosExtra quaisquer alterações de esquema.
- Use nomes de colunas que descrevam claramente sua finalidade para evitar confusão.
Etapa 3: Projetando os modelos de formulário personalizados –
Os modelos desempenham um papel vital para garantir que os campos personalizados se misturem perfeitamente à UI do administrador do PrestaShop. Usando o Smarty, o mecanismo de criação de modelos do PrestaShop, você pode criar formulários amigáveis e responsivos.
Modelo de formulário de produto (custom_product_form.tpl):
Modelo de formulário do cliente (custom_customer_form.tpl):
Melhorias:
- Adicionar validação: use JavaScript para validar a entrada do usuário antes do envio.
- Estilo: aprimore o formulário com classes CSS para uma aparência consistente.
Etapa 4: salvando os valores do campo personalizado-
Depois que os campos do formulário são enviados, os valores precisam ser salvos no banco de dados. Ganchos PrestaShop como açãoProdutoSalvar e açãoClienteSalvarDepois permitir que os desenvolvedores executem lógica personalizada durante a operação de salvamento.
Salvando valores de campo de produto
A açãoProdutoSalvar hook garante que os dados do campo personalizado sejam salvos quando um produto é salvo/atualizado:
Salvando valores de campo do cliente
A açãoClienteSalvarDepois O hook é usado para salvar os dados do campo do cliente personalizado:
Etapa 5: Exibindo valores de campos personalizados –
Exibir campos personalizados envolve recuperar os valores armazenados e renderizá-los adequadamente na interface do administrador.
Exibindo valores de campos personalizados do produto
Use o mesmo displayAdminProdutosExtra hook para mostrar o valor do campo personalizado junto com outros detalhes do produto. Os dados recuperados podem ser exibidos em um formato somente leitura ou editável, dependendo do caso de uso.
Exibindo valores de campos personalizados do cliente
Da mesma forma, o displayAdminFormulárioClientes O gancho recupera e exibe o valor do campo personalizado no formulário do cliente.
Dicas adicionais para desenvolvedores
1. Teste e Depuração:
- Use o modo de depuração do PrestaShop para identificar problemas.
- Teste seus campos personalizados com várias entradas para garantir a compatibilidade.
2. Escalabilidade:
- Se você quiser usar vários campos personalizados, considere criar uma tabela separada para armazená-los dinamicamente.
- Use colunas indexadas para consultas mais rápidas.
3. Segurança:
- Sempre valide e higienize as entradas do usuário usando pSQL().
- Restrinja o acesso a esses campos com base nas funções do usuário, se necessário.
4. Compatibilidade futura:
- Use ganchos exclusivamente para evitar modificar arquivos principais.
- Atualize seu código regularmente para permanecer compatível com versões mais recentes do PrestaShop.
Conclusão
Adicionar campos personalizados a produtos no PrestaShop é uma maneira simples, mas poderosa, de estender a funcionalidade da plataforma. Ao seguir este guia, você pode garantir que suas personalizações permaneçam modulares, sustentáveis e compatíveis com futuras atualizações do PrestaShop. Sinta-se à vontade para adaptar essas técnicas a outras áreas da sua loja PrestaShop e compartilhe seus resultados nos comentários abaixo!