Recommandez wixiweb sur Google.
24-03-2011

Installation et configuration des webservices Prestashop

Cet article a pour but de vous présenter une des nouvelles fonctionnalités de Prestashop 1.4 :
Le webservices
Les heureux possesseurs de Prestashop pourront maintenant s'interconnecter avec d'autres logiciels pouvant être écrit dans n'importe quels langages de programmation.

Pré-requis

  • Prestashop 1.4.17 (stable) ou supérieur
  • La réécriture d'URL activée
  • PHP 5.3.x (ou inférieur si patchée)
  • Des connaissances en XML, HTTP, REST, ...

Patcher Prestashop pour PHP 5.2 et antérieur

Cette fonctionnalité étant toute récente, il était évident qu'elle allait cacher quelques bugs.
Si vous utilisez Prestashop 1.4.17 sur un PHP 5.2 ou antérieur, vous risquez donc de rencontrer le bug PSCFI-1187 que nous avons signalé à l'équipe de prestashop.
Si c'est le cas, pas de panique, nous avons le patch qui va avec.
  1. Ouvrez le fichier "webservice/dispatcher.php"
  2. Allez à la ligne 67
  3. Remplacez le code suivant :
$result = $class_name::getInstance()->fetch($key, $method, $_GET['url'], $params, $bad_class_name, $input_xml);
Par :
$class_instance = call_user_func(array($class_name,'getInstance'));
$result = $class_instance->fetch($key, $method, $_GET['url'], $params, $bad_class_name, $input_xml);

Cette solution permet de ne plus utiliser le Late Static Bindings qui est disponible uniquement sur PHP 5.3

Activer le webserivce

Pour activer la fonctionnalité webservice, vous devez activer la réecriture d'URL
Ensuite, rendez-vous dans :
Panneau d'administration > Outils > Service web
Activation webservice prestashop

Autorisation et droits d'accès

Une fois activé, le webservice reste fermé à l'ensemble des utilisateurs
Vous devez maintenant générer un clé d'accès au webservice et y affecter un certains nombre de droits
Pour cela, rendez-vous dans :
Panneau d'administration > Outils > Service web > Nouveau

Cliquez ensuite sur Générer une clé
Cle webservice prestashop
Vous devez ensuite ajouter des droits pour chaque entité de votre boutique.
Nous allons donc faire un compte ayant accès aux produits et aux tags en lecture :
Permission webservice prestashop
En retournant sur la page webservice, nous pouvons maintenant voir que notre clé est bien activée :
Recapitulatif webservice prestashop

Tester le webserivce

Il ne nous reste plus qu'à essayer d'accéder aux informations de notre plateforme à travers ce webservice.
Pour cela, nous allons juste esayer quelques requêtes simple depuis notre navigateur.
Tout d'abord, nous allons lister les services auquels nous avons le droit avec notre clé. Rendez-vous sur votre site internet prestashop en ajoutant api à la fin de l'adresse :
http://prestashop.monserveur.com/api/

Un fenêtre va vous demander de vous identifier. Vous devez inscrir votre clé dans le champ "Login" en laissant le mot de passe vide.
Authentification webservice prestashop
Si tout ce passe bien,vous devez voir un retour XML contenant la liste des méthodes autorisées :
Si vous ne voyez pas le XML, essayez d'afficher le code source de votre navigateur.
Liste des méthodes webservice prestashop

Utilisation du webserivce produits

En lisant les actualités au sujet de cette fonctionnalité, j'avais cru comprendre que le webservice était de type SOAP.
Vous pouvez maintenant voir que ça ne semble pas du tout être le cas. Il n'y a pas de WSDL, pas d'enveloppe, ...
Nous avons à faire à un webservice de type REST.

Le but de cette partie ne va pas être de vous faire un cours sur REST mais simplement de vous faire voir un moyen d'avancer.
Rendez-vous sur :
http://prestashop.monserveur.com/api/products

Vous pouvez voir que vous retrouvez la liste des derniers produits ajoutés.
Liste des produits webservice prestashop
Maintenant que vous avez les ID des produits, vous pouvez récupérer toutes les informations d'un produit :
Liste des produits webservice prestashop

Conclusion

Même si REST n'est pas forcement le protocole (ou le non-protocole) avec lequel j'ai le plus d'affinité, cette fonctionnalité est tout de même un grand pas en avant pour prestashop.
Ceci vous permettra de vous connecter avec des clients, des fournisseurs, des applications mobiles : iPad, iPhone, Android ...
Le potentiel est là ! Il ne reste plus qu'à trouver des experts pour développer :)
N'hésitez pas à nous contacter si vous souhaitez être accompagné dans la mise en place de webservices.
PROJETS EN COURS

Extranet 1to1 English
Site internet et extranet mettant à disposition des enseignants et apprenants, des outils leur permettant de travailler ensemble.

E-Commerce CBHS
Site internet E-Commerce et interface Client/Fournisseur permettant d'interconnecter l'entreprise à l'ensemble de ses partenaires.

ACTUS TWITTER

23-04-2012 Des photos de la conférence #NWXTECH3 et #NWXTECH2 sur notre page Facebook https://t.co/tJx3X9Ih . Suivez-nous aussi sur #Facebook

05-04-2012 @SIPOnline Nous avons travaillé sur cette nouvelle version : Migration, Mysql, dev PHP, push-iPhone, Zend Framework, Site Web, performance..

A PROPOS DE Wixiweb

Agence web spécialisée dans la création de site internet, extranet, intranet et optimisation de système d'informations pour les entreprises.

Compétences techniques : PHP, Mysql, Zend Framework, JQUERY, ExtJS, Wordpress, Joomla, Drupal, Magento, référencement, service-web (SOAP)

CONTACT

Si vous avez un projet à nous soumettre ou si vous êtes à la recherche d'un prestataire en freelance Contactez-nous.