Module OSCommerceWS (développeur)

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search

Introduction

Le module OSCommerce2 permet de synchroniser une partie des informations d'une installation OSCommerce2 avec une installation de Dolibarr.

De cette manière, il est possible de

  • publier dans OSCommerce des produits introduits dans Dolibarr
  • importer des commandes (et leurs détails) dans Dolibarr depuis OSCommerce
  • importer des clients OSCommerce dans Dolibarr

Ce module fonctionne au travers de l'utilisation d'une librairie facilitant l'utilisation des services web: NuSOAP

Interface

On accède à l'interface via l'onglet OSCommerce dans le menu supérieur de l'interface par défaut de Dolibarr. Ce menu nous donne une première page récapitulative des données disponibles dans OSCommerce.


File:Oscommerce-menu.png

Le menu de gauche permet alors d'accéder à plus de fonctionnalités, notamment les fonctionnalités de synchronisation.

La liste de fonctionnalités suivante utilise la convention export=Dolibarr->OSCommerce et import=OSCommerce->Dolibarr

Exporter un produit

Importer un produit

Importer un client

Importer une commande

Synchroniser une catégorie

Code

Comme indiqué dans une ébauche de documentation très succinte au sein du code, c'est dans le répertoire htdocs/oscommerce_ws que l'on trouve le code de l'application. Il existe également pas mal de code dans un répertoire htdocs/boutique mais il est difficile de déterminer à quoi il sert (probablement au module OSCommerce1).

Le répertoire ws_server/ doit être copié sur le serveur OSCommerce, dans le répertoire catalog/. Il doit également être configuré, en modifiant le fichier ws_server/includes/configuration.php pour y placer la configuration de OSCommerce.


Problèmes

PHP5

La librairie NuSOAP originale (elle a été modifiée dans le code de Dolibarr pour la version 2.2) entre en conflit avec l'extension SOAP de PHP5, à cause du nom du client SOAP, soapclient qui est identique des deux côtés. Les autres classes ne causent pas de conflit.

Ceci donne lieu à une erreur du type "Cannot redeclare class SoapClient".

Erreur I/O

Il est possible que pour certaines requêtes le client (Dolibarr) renvoie une erreur fatale indiquant un problème d'entrée/sortie (une erreur HTTP 1.1 500 du côté serveur). Ce message d'erreur n'est pas très explicite dans le sens où il s'agit généralement d'un problème au niveau d'une méthode fournie en SOAP uniquement, et pas d'un script complet, comme il pourrait le laisser penser.

Pour corriger, une des deux méthodes suivantes est la bonne (pas encore pu filtrer, désolé): réordonner les appels, côté serveur, à $soap_server->register(méthode) ou donner des paramètres $in et $out à ces mêmes appels à register. D'une façon ou d'une autre, c'est cette partie qui pose problème.