Knowband Blog | Ecommerce Modules

Comment créer l’API du service Web du module Prestashop ?

Ce blog explique comment créer et utiliser l’API Prestashop Webservices. Prestashop dispose d’un outil de services Web par défaut qui permet d’accéder au magasin à partir d’applications distantes.

Pré-requis

  1. Votre boutique Prestashop devrait avoir la « réécriture de module » activée pour Apache.
  2. Il est préférable d’utiliser SSL (https:) pour les appels de services Web, car cela évite les problèmes de sécurité de type « homme du milieu ».
  3. Vérifiez que les cinq méthodes GET, POST, PUT, DELETE et HEAD sont supportées sur le serveur.

Pour garantir la sécurité et l’efficacité de vos services Web Prestashop, il est essentiel d’utiliser SSL (HTTPS) pour tous les appels de services Web. Cela évite les attaques de type « homme au milieu » et protège vos données pendant la transmission. De plus, vérifier que votre serveur prend en charge les méthodes HTTP GET, POST, PUT, DELETE et HEAD est crucial pour un fonctionnement transparent. En configurant ces paramètres, vous optimisez les performances et la sécurité de votre boutique, garantissant un accès et une gestion fiables de vos ressources Prestashop via l’API.

Comment configurer les Web Services dans Prestashop ?

1. Connectez-vous au back-office Prestashop. 2. Accédez aux options du menu Paramètres avancés -> Services Web pour ouvrir la page Services Web.

 

3. Il sera redirigé vers la page des services Web contenant la liste des services Web disponibles et le formulaire de configuration pour configurer le service. 4. Le formulaire de configuration comporte les champs suivants :

a) Activer le service Web de Prestashop: Activez le paramètre permettant d’utiliser le service Web dans la boutique Prestashop.

b) Activer le mode CGI pour PHP: Activez le paramètre pour utiliser PHP comme script CGI au lieu du module Apache. 5. Cliquez sur le bouton Enregistrer pour enregistrer la configuration. Vous pouvez désormais utiliser les services Web dans votre boutique Prestashop.

Comment ajouter/mettre à jour des services Web dans Prestashop ?

1. Connectez-vous au back-office Prestashop 2. Accédez aux options du menu Paramètres avancés -> Services Web pour ouvrir la page Services Web. 3. Il sera redirigé vers la page des services Web contenant une liste des services Web disponibles.

4. Cliquez sur le bouton “Ajouter une nouvelle clé de service Web” pour ajouter une nouvelle clé de service Web afin d’accéder uniquement à certaines ressources de la boutique Prestashop.

une clé: Il s’agit d’une clé unique. Vous pouvez la saisir manuellement ou cliquer sur le bouton Générer pour générer une clé aléatoire pour le service Web Prestashop.

b) Description de la clé: Vous pouvez fournir la description de la clé pour une meilleure compréhension.

c) Statut : activez la clé pour accorder une autorisation d’accès aux données à l’aide de la clé.

d) Autorisation: Fournissez l’autorisation d’accéder aux données à l’aide d’une certaine clé. Vous pouvez vérifier l’autorisation spécifique pour accorder l’accès aux données comme Ajouter, Modifier, supprimer ou afficher. Ici, nous avons vérifié l’autorisation des pays et de la devise. 5. Cliquez sur le bouton Enregistrer pour ajouter la clé aux services Web.

Comment accéder au Web Service ?

Une fois que vous avez créé la clé pour le service Web et correctement configuré, vous devez accéder à l’URL suivante dans votre navigateur : https://{chemin racine du magasin}/api/ Il vous demandera un nom d’utilisateur et un mot de passe pour accéder à la ressource.

a) Nom d’utilisateur : Entrez la clé du service Web généré à l’étape ci-dessus. Par exemple MWMHJVB9PBYBNYBSFTQ8ZXRCM43FQ2MW

b) Mot de passe : Il doit être vide car aucun mot de passe n’est requis. Après vous être connecté, vous accéderez à la liste des ressources et de toutes les options CRUD autorisées que vous avez configurées dans votre boutique Prestashop.

Vous êtes maintenant connecté avec succès au service Web Prestashop.

a) Pour OBTENIR la liste des entités pour une ressource particulière :

https://shop_root_url/api/resouce

Mise en situation : https://www.knowband.com/api/customers pour obtenir une liste de tous les clients.

b) Pour OBTENIR un client spécifique par ID :

https://shop_root_url/api/customers/1

Par exemple : Pour obtenir les détails du client ayant l’ID 10

https://www.knowband.com/api/customers/10

Recommander la montre : 

Comment créer l’API Webservice du module Prestashop pour Prestashop 1.7 ?

Nous allons vous montrer comment créer un module pour récupérer des clients. Pour cela, nous enregistrerons un hook addWebserviceResources de ServiceRequest pour les ressources au lieu de remplacer la fonction getResources() de la classe ServiceRequest dans Prestashop 1.7. La création d’API de service Web personnalisées dans Prestashop 1.7 implique l’utilisation de la classe WebserviceSpecificManagement. Celui-ci permet de définir des fonctionnalités spécifiques et de gérer le traitement des données. Par exemple, l’implémentation de la classe WebserviceSpecificManagementKbCustomer vous permet de gérer efficacement les données client. Par conséquent, cette approche fournit une solution flexible et robuste pour étendre les capacités de Prestashop, permettant des interactions personnalisées avec les données de votre boutique. En tirant parti de ces options de personnalisation avancées, vous pouvez créer des solutions de commerce électronique plus dynamiques et réactives qui répondent aux besoins commerciaux uniques. 1. Enregistrez le hook addWebserviceResources dans le module.

fonction publique install() { parent::install(); $this->registerHook('addWebserviceResources'); renvoie vrai ; }

2. Ajoutez un écouteur hook pour définir la classe et la description. Définissez Specific_management sur true si vous souhaitez utiliser WebserviceSpecificManagement au lieu du fichier ObjectModel.

public function hookAddWebserviceResources() { return array( 'kbcustomer' => array( 'description' => 'Knowband Custom Customer', 'special_management' => true, ), 'kbaddress' => array( 'description' => 'Knowband Adresse personnalisée', 'class' => 'kbaddress' ) ); }

3. Créez un fichier de classe WebserviceSpecificManagement en tant que WebserviceSpecificManagementCLASSNAME qui implémente WebserviceSpecificManagementInterface Par exemple – WebserviceSpecificManagementKbCustomer qui est similaire à /classes/webservice/WebserviceSpecificManagementImages.php. Vous devez inclure les fonctions définies dans la classe WebserviceSpecificManagementImages.php. Ceux-ci sont:

1. Ajoutez maintenant la clé ayant la ressource kbcustomer dans le service web du back-office. 2. Maintenant, visitez le https://{youstore.com}/api/kbcustomer pour voir la réponse en XML. Dans l’exemple ci-dessous, nous affichons la liste de tous les clients disponibles dans le magasin. Ajoutez include_once(_PS_MODULE_DIR_.’YOURMODULENAME/classes/WebserviceSpecificManagementKbCustomer.php’); dans votre fichier de module.

la classe WebserviceSpecificManagementKbcustomer implémente WebserviceSpecificManagementInterface { /** @var WebserviceOutputBuilder */ protected $objOutput; sortie $ protégée ; /** @var WebserviceRequest */ protected $wsObject; public function setUrlSegment($segments) { $this->urlSegment = $segments; renvoie $this ; } public function getUrlSegment() { return $this->urlSegment; } public function getWsObject() { return $this->wsObject; } public function getObjectOutput() { return $this->objOutput ; } /** * Cela doit renvoyer une chaîne avec des valeurs spécifiques comme l'attend WebserviceRequest. * * @return string */ public function getContent() { return $this->objOutput->getObjectRender()->overrideContent($this->output); } fonction publique setWsObject(WebserviceRequestCore $obj) { $this->wsObject = $obj; renvoie $this ; } /** * @param WebserviceOutputBuilderCore $obj * @return WebserviceSpecificManagementInterface */ public function setObjectOutput(WebserviceOutputBuilderCore $obj) { $this->objOutput = $obj; renvoie $this ; } fonction publique gérer() { $objects_products = array(); $objects_products['empty'] = nouveau client(); $customer_list = Client::getCustomers(); foreach ($customer_list as $list) { $objects_products[] = nouveau client ($list['id_customer']); } $this->_resourceConfiguration = $objects_products['empty']->getWebserviceParameters(); $this->output .= $this->objOutput->getContent($objects_products, null, $this->wsObject->fieldsToDisplay, $this->wsObject->profondeur, WebserviceOutputBuilder::VIEW_LIST, false); } }

La capture d’écran ci-dessous vous fournit le visuel de la sortie :

Si vous souhaitez la sortie au format JSON, ajoutez &output_format=JSON à la fin de l’URL. Par exemple: https://{yourstore.com}/api/kbcustomer&output_format=JSON

Sortie : {“customers”:[{“id”:1},{“id”:2},{“id”:3},{“id”:4},{“id”:5},{“id”:6},{“id”:7},{“id”:8},{“id”:9},{“id”:10},{“id”:11},{“id”:12},{“id”:13},{“id”:14},{“id”:15},{“id”:16},{“id”:17},{“id”:18},{“id”:19},{“id”:20},{“id”:21}]}

À la fin!

Avec plus de 13 ans d’expertise technique, Knowband propose des services complets de développement d’applications et de sites Web utilisant les dernières technologies, notamment divers frameworks PHP et React. Nous fournissons plus de 100 extensions prêtes à l’emploi pour les plateformes de commerce électronique populaires telles que Prestashop, Opencart, WooCommerce et Magento 2. Pour toute question, n’hésitez pas à nous contacter à support@knowband.com. Knowband est également un partenaire Prestashop Premium et un Superher Seller fournissant plus de 100 modules Prestashop pour répondre à tous vos besoins de commerce électronique. Consultez nos plus populaires Module Supercheckout d’une page pour Prestashop ici.

 

Module complémentaire Prestashop One Page Supercheckout

L’addon Prestashop One Page Supercheckout de Knowband rend le paiement plus rapide et plus facile en mettant tout sur une seule page, contribuant ainsi à réduire les abandons de panier.

Achetez maintenant