Cómo guardar y mostrar el valor de un campo de formulario personalizado mediante el gancho de PrestaShop

PrestaShop es una plataforma de comercio electrónico robusta y de código abierto diseñada para brindar flexibilidad y personalización. Permite a los desarrolladores modificar y mejorar su funcionalidad principal mediante manos, que son puntos de entrada predefinidos en el sistema. Estos enlaces permiten la integración perfecta de funciones personalizadas, lo que garantiza que las actualizaciones y el mantenimiento del sistema central se realicen sin problemas. Este blog proporciona una guía completa para agregar, guardar y mostrar campos personalizados para formularios de productos y clientes en PrestaShop. Al final de este blog, comprenderá en profundidad cómo crear campos de formulario personalizados en Prestashop, almacenar sus datos en la base de datos y mostrar esta información en el panel de administración.

Paso 1: Agregar campos personalizados a formularios de productos y clientes

El primer paso para personalizar PrestaShop implica inyectar nuevos campos en los formularios para productos y clientes.

Cómo agregar campos personalizados al formulario de producto

Para esto, usaremos el mostrarAdminProductosExtra Gancho para agregar el campo personalizado al formulario del producto. Este gancho se activa siempre que se edita un producto en el panel de administración.

Descripción general del gancho: Este gancho le permite agregar campos o información adicional a la página de creación/edición del producto.

Explicación del código:

El ejemplo proporcionado demuestra cómo recuperar datos existentes para un campo personalizado de la base de datos y mostrarlos en el formulario. El ID del producto se recupera dinámicamente de la base de datos. $ params, garantizando que los datos mostrados corresponden al producto que se está editando.

Agregar campos personalizados en el formulario de registro de clientes

Campos de registro personalizados – Complementos de Prestashop

COMPRAR AHORA

Cómo agregar campos personalizados al formulario del cliente

Del mismo modo, el mostrarFormularioAdminClientes hook proporciona un punto de entrada para inyectar campos en el formulario del cliente.

Descripción general del gancho: Este gancho se activa al representar el formulario de creación/edición de clientes.

Al asignar variables Smarty, la plantilla para el campo personalizado se integra perfectamente en la interfaz de administración.

Paso 2: Creación de los campos de la base de datos

¿Por qué modificar la base de datos?

PrestaShop se adhiere a un modelo de base de datos relacional. Al agregar columnas personalizadas a la ps_producto y ps_cliente tablas, garantiza que sus datos personalizados permanezcan asociados con su respectivo producto o cliente.

Consultas SQL:

Los scripts SQL proporcionados demuestran cómo agregar columnas a la ps_producto y ps_cliente Tablas. Estas consultas se ejecutan una vez para preparar la base de datos para almacenar los valores de los campos personalizados.

Consulta SQL para el producto:

Consulta SQL para el cliente:

Mejores prácticas:

  • Asegúrese de crear una copia de seguridad de la base de datos antes de implementar o continuar con mostrarAdminProductosExtra cualquier cambio de esquema.
  • Utilice nombres de columnas que describan claramente su propósito para evitar confusiones.

Paso 3: Diseño de plantillas de formulario personalizadas

Las plantillas desempeñan un papel fundamental para garantizar que los campos personalizados se integren a la perfección en la interfaz de usuario de administración de PrestaShop. Con Smarty, el motor de plantillas de PrestaShop, puede diseñar formularios interactivos y fáciles de usar.

Plantilla de formulario de producto (custom_product_form.tpl):

Plantilla de formulario de cliente (custom_customer_form.tpl):

Mejoras:

  • Agregar validación: utilice JavaScript para validar la entrada del usuario antes del envío.
  • Estilo: mejore el formulario con clases CSS para lograr una apariencia consistente.

Paso 4: Guardar los valores de los campos personalizados

Una vez que se envían los campos del formulario, los valores deben guardarse en la base de datos. Los ganchos de PrestaShop como AcciónProductoGuardar y acciónClienteGuardarDespués Permitir a los desarrolladores ejecutar lógica personalizada durante la operación de guardado.

Guardar valores de campos de productos

La AcciónProductoGuardar El gancho garantiza que los datos del campo personalizado se guarden cuando se guarda o actualiza un producto:

Guardar valores de campos de clientes

La acciónClienteGuardarDespués El gancho se utiliza para guardar los datos del campo de cliente personalizado:

Paso 5: Visualización de valores de campos personalizados

Mostrar campos personalizados implica recuperar los valores almacenados y representarlos adecuadamente en la interfaz de administración.

Visualización de valores de campos personalizados de productos

Usar lo mismo mostrarAdminProductosExtra Gancho para mostrar el valor del campo personalizado junto con otros detalles del producto. Los datos recuperados se pueden mostrar en formato de solo lectura o editable, según el caso de uso.

Visualización de valores de campos personalizados del cliente

Del mismo modo, el mostrarFormularioAdminClientes hook recupera y muestra el valor del campo personalizado en el formulario del cliente.

Consejos adicionales para desarrolladores

1. Pruebas y depuración:

  • Utilice el modo de depuración de PrestaShop para identificar problemas.
  • Pruebe sus campos personalizados con varias entradas para garantizar la compatibilidad.

2. escalabilidad:

  • Si desea utilizar varios campos personalizados, considere crear una tabla separada para almacenarlos dinámicamente.
  • Utilice columnas indexadas para consultas más rápidas.

3. Seguridad:

  • Siempre valide y desinfecte las entradas del usuario utilizando pSQL().
  • Restrinja el acceso a estos campos según los roles de usuario, si es necesario.

4. Compatibilidad futura:

  • Utilice ganchos exclusivamente para evitar modificar los archivos principales.
  • Actualice periódicamente su código para seguir siendo compatible con las versiones más nuevas de PrestaShop.

Conclusión

Añadir campos personalizados a los productos en PrestaShop es una forma sencilla pero potente de ampliar la funcionalidad de la plataforma. Si sigue esta guía, podrá asegurarse de que sus personalizaciones sigan siendo modulares, fáciles de mantener y compatibles con futuras actualizaciones de PrestaShop. ¡Siéntase libre de adaptar estas técnicas a otras áreas de su tienda PrestaShop y comparta sus resultados en los comentarios a continuación!