Comment enregistrer et afficher la valeur d’un champ de formulaire personnalisé à l’aide du hook PrestaShop

PrestaShop est une plate-forme de commerce électronique open source robuste conçue pour la flexibilité et la personnalisation. Elle permet aux développeurs de modifier et d’améliorer ses fonctionnalités de base à l’aide de crochets, qui sont des points d’entrée prédéfinis dans le système. Ces hooks permettent une intégration transparente des fonctionnalités personnalisées, garantissant que les mises à jour et la maintenance du système de base restent sans tracas. Ce blog fournit un guide complet sur l’ajout, l’enregistrement et l’affichage de champs personnalisés pour les formulaires de produits et de clients dans PrestaShop. À la fin de ce blog, vous aurez une compréhension approfondie de la manière de créer des champs de formulaire personnalisés dans Prestashop, stockent leurs données dans la base de données et affichent ces informations dans le panneau d’administration.

Étape 1 : Ajout de champs personnalisés aux formulaires de produits et de clients-

La première étape de la personnalisation de PrestaShop consiste à injecter de nouveaux champs dans les formulaires pour les produits et les clients.

Ajout de champs personnalisés au formulaire de produit

Pour cela, nous utiliserons le afficherAdminProduitsExtra hook pour ajouter le champ personnalisé au formulaire du produit. Ce hook est déclenché chaque fois qu’un produit est modifié dans le panneau d’administration.

Présentation du crochet : Ce hook vous permet d’ajouter des champs ou des informations supplémentaires à la page de création/modification du produit.

Explication du code :

L’exemple fourni montre comment récupérer les données existantes pour un champ personnalisé à partir de la base de données et les afficher dans le formulaire. L’ID du produit est récupéré de manière dynamique à partir de la base de données. $paramètres, en s’assurant que les données affichées correspondent au produit en cours d’édition.

Ajouter des champs personnalisés sur le formulaire d’inscription client

Champs d’inscription personnalisés – Modules complémentaires Prestashop

MAGASINER

Ajout de champs personnalisés au formulaire client

De même, le afficherAdminCustomersForm hook fournit un point d’entrée pour injecter des champs dans le formulaire client.

Présentation du crochet : Ce hook est déclenché lors du rendu du formulaire de création/modification du client.

En attribuant des variables Smarty, le modèle du champ personnalisé est parfaitement intégré à l’interface d’administration.

Étape 2 : Création des champs de la base de données-

Pourquoi modifier la base de données ?

PrestaShop adhère à un modèle de base de données relationnelle. En ajoutant des colonnes personnalisées à la ps_produit et ps_client tables, vous assurez que vos données personnalisées restent associées à leur produit ou client respectif.

Requêtes SQL :

Les scripts SQL fournis montrent comment ajouter des colonnes à la ps_produit et ps_client tables. Ces requêtes sont exécutées une fois pour préparer la base de données au stockage des valeurs des champs personnalisés.

Requête SQL pour le produit :

Requête SQL pour le client :

Les meilleures pratiques:

  • Assurez-vous de créer une sauvegarde de la base de données avant de mettre en œuvre ou de poursuivre afficherAdminProduitsExtra toute modification de schéma.
  • Utilisez des noms de colonnes qui décrivent clairement leur objectif pour éviter toute confusion.

Étape 3 : Conception des modèles de formulaires personnalisés-

Les modèles jouent un rôle essentiel pour garantir que les champs personnalisés s’intègrent parfaitement dans l’interface d’administration de PrestaShop. Grâce à Smarty, le moteur de création de modèles de PrestaShop, vous pouvez concevoir des formulaires conviviaux et réactifs.

Modèle de formulaire de produit (custom_product_form.tpl) :

Modèle de formulaire client (custom_customer_form.tpl) :

Améliorations

  • Ajouter une validation : utilisez JavaScript pour valider la saisie de l’utilisateur avant la soumission.
  • Style : améliorez le formulaire avec des classes CSS pour une apparence cohérente.

Étape 4 : Enregistrement des valeurs des champs personnalisés-

Une fois les champs du formulaire soumis, les valeurs doivent être enregistrées dans la base de données. Les hooks PrestaShop comme actionProduitEnregistrer et actionClientEnregistrerAprès permettre aux développeurs d’exécuter une logique personnalisée pendant l’opération de sauvegarde.

Sauvegarde des valeurs des champs de produits

Votre actionProduitEnregistrer hook garantit que les données du champ personnalisé sont enregistrées lorsqu’un produit est enregistré/mis à jour :

Sauvegarde des valeurs des champs clients

Votre actionClientEnregistrerAprès le crochet est utilisé pour enregistrer les données du champ client personnalisé :

Étape 5 : Affichage des valeurs des champs personnalisés-

L’affichage des champs personnalisés implique la récupération des valeurs stockées et leur rendu approprié dans l’interface d’administration.

Affichage des valeurs des champs personnalisés du produit

Utilisez le même afficherAdminProduitsExtra crochet pour afficher la valeur du champ personnalisé à côté d’autres détails du produit. Les données récupérées peuvent être affichées dans un format en lecture seule ou modifiable, selon le cas d’utilisation.

Affichage des valeurs des champs personnalisés du client

De même, le afficherAdminCustomersForm hook récupère et affiche la valeur du champ personnalisé sur le formulaire client.

Conseils supplémentaires pour les développeurs

1. Test et débogage:

  • Utilisez le mode débogage de PrestaShop pour identifier les problèmes.
  • Testez vos champs personnalisés avec différentes entrées pour garantir la compatibilité.

2. Évolutivité:

  • Si vous souhaitez utiliser plusieurs champs personnalisés, pensez à créer une table séparée pour les stocker de manière dynamique.
  • Utilisez des colonnes indexées pour des requêtes plus rapides.

3. Sécurité:

  • Validez et nettoyez toujours les entrées utilisateur à l’aide de pSQL().
  • Restreignez l’accès à ces champs en fonction des rôles des utilisateurs, si nécessaire.

4. Compatibilité future:

  • Utilisez des hooks exclusivement pour éviter de modifier les fichiers de base.
  • Mettez régulièrement à jour votre code pour rester compatible avec les nouvelles versions de PrestaShop.

Pour aller plus loin

Ajout de champs personnalisés aux produits dans PrestaShop est un moyen simple mais puissant d’étendre les fonctionnalités de la plateforme. En suivant ce guide, vous pouvez vous assurer que vos personnalisations restent modulaires, maintenables et compatibles avec les futures mises à jour de PrestaShop. N’hésitez pas à adapter ces techniques à d’autres domaines de votre boutique PrestaShop et partagez vos résultats dans les commentaires ci-dessous !