Module OSCommerceWS (développeur)
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.
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.