Module OSCommerceWS (développeur)
OSCommerceWS | |
---|---|
Numéro/ID du module | {{{num}}} |
Doc utilisateur du module | Module OSCommerceWS |
Doc développeur du module | Cette page |
Fonction
Le module OSCommerceWS permet de synchroniser une partie des informations d'une installation OSCommerce 2 avec une installation de Dolibarr via des Web services.
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
Présentation
A l'usage, il m'est apparu que l'administration d'osCommerce ne me suffit pas. Voici quelques questions que j'ai rencontrées :
- Un revendeur est intéressé par une commande en quantité de mes articles vus sur le site. Ce qui suppose commande supplémentaire chez le fournisseur, conditions préférentielles, procédure d'export (Tahiti Rimai vend depuis la Polynésie), devis, acceptation du devis, paiement, facturation, envoi...
- Je rencontre quelqu'un qui veut acheter des produits sans passer par le site (marché local).
- En plus, a côté de l'activité liée au site, j'ai aussi une activité de prestations informatiques et là il ne me restait que la bureautique. Or la bureautique ça va un moment, mais j'aimerais pouvoir suivre mon CA, l'état de mon compte bancaire un peu plus sérieusement...
Fonctionnalités que Dolibarr propose. Donc l'idée de base consiste à faire collaborer OSC et Dolibarr :
- récupérer les informations utiles dans la base de données du site et les intégrer dans Dolibarr pour ensuite bénéficier des fonctions de Dolibarr (suivi de l'expédition d'une commande, intégration des paiements dans le suivi de compte, gestion des clients...)
- gérer le catalogue ( suivi des commandes fournisseurs) depuis Dolibarr et le mettre à jour sur le site.
Je propose de décrire ici les fonctions utiles pour réaliser cette interface. Sentez-vous libre d'y apporter vos contributions.
Les fonctions prévues
- Import des articles OSC => Dolibarr
- Cette fonction sert à importer un catalogue d'un site web dans dolibarr (mon cas par ex où le site tourne, mais pas encore Dolibarr) à tester
- Export d'articles Dolibarr => OSC
- pour la gestion du catalogue OSC depuis Dolibarr
- Import des clients et prospects OSC => Dolibarr
- pour le suivi des clients et la gestion des commandes à tester (pour les clients)
- Import des commandes OSC => Dolibarr
- en vue de leur suivi dans Dolibarr à tester
- Traitement des commandes dans Dolibarr et leur mise à jour sur OSC
- Il faut mettre à jour le suivi de la commande sur le site, car le client peut suivre l'état de sa commande.
L'utilisation de ces fonctions
Décrire comment elles seront implémentées et comment les intégrer dans Dolibarr.
Dans l'état actuel de ma réflexion (n'hésitez pas à me donner vos avis sur la question), je considère que le site e-commerce reste autonome par rapport à Dolibarr. Dolibarr est utilisé pour récupérer des infos du site et pour alimenter le site (intervention directe de l'utilisateur). On pourrait penser aussi un système où c'est le site e-commerce qui transmet les infos (commandes, clients...) à Dolibarr qui peut les iontégrer automatiquement dans ses traitements. Peut être à étudier par la suite.
Dans la release du cvs (et dans la 2.0.1), vous avez noté la présence d'un module expérimental d'un interface avec OSC. Elle permet de récupérer des données dans une base OSC, base qui doit tourner sur le même serveur que Dolibarr, ce qui est le cas pour une installation locale mais pas forcément pour un site en production hébergé. J'ai donc pensé implémenter cette interface sous forme de web-services développés à partir de nusoap (projet libre et GPL). Les web-services seront les fournisseurs de données (format OSC), et dans Dolibarr les clients se chargeront de la transformation des données OSC en objets Dolibarr (commandes, clients..), qui seront donc gérables par Dolibarr.
Description des webservices
Gestion des articles ws_articles
get_article($id="",$ref="")
: renvoie les données de l'article identifié par son id (OSC) ou sa référenceget_listearticles()
: renvoie la liste de tous les articles (sera optimisée car il peut y avoir beaucoup d'articles. Je réfléchis à un accès par catégories, fournisseurs, disponibilité.
gestion des clients ws_customers
get_Client($id="0")
: permet d'obtenir les infos pour tous les clients ($id=0) ou pour le client spécifié ($id est l'identifiant dans la base OSC)
gestion des commandes ws_orders
get_CAmensuel()
: renvoie le tableau du CA réalisé par mois pour l'année en cours.get_orders($nbmax, $statut)
: renvoie le tableau composé de nbmax commandes du statut donné (livré, en attente, en traitement...)get_lasOrderClients($id="", $name="", $limit="")
: renvoie les clients correspondant aux$limit
dernières commandes (les autres paramètres ne sont pas encore utilisés).get_Order($id="0")
renvoie les informations pour la commande d'identifiant $id (si$id >0
), On récupère aussi bien la commande que les lignes de la commande.
- Si
$id == 0
: la liste de toutes les commandes est renvoyée (mais sans les lignes de commandes).
- Si
Implémentation dans Dolibarr
La gestion d'une boutique osCommerce est implémentée dans le module osCommerce qui arrive avec la version cvs. Un fichier ReadMe
pour la configuration des webservices est contenu dans le répertoire du module. La configuration par défaut pointe vers le site de test mentionné dans cette doc. Le cvs de Dolibarr fournira toutes les sources, y compris des sources des webservices à installer sur la boutique avec un petit outil de tests.
Avant de pouvoir la tester, il faut créer le paramétrage au moyen de l'utilitaire de paramétrage habituel de Dolibarr.
L'ancienne implémentation (module boutique) est toujours disponible (attention il y a eu des modifications !! consulter la liste de developpement du cvs).
Dans les modules externes choisissez le module osCommerce et activez-le, et vous verrez apparaître un menu osCommerce dans le menu supérieur de Dolibarr (implémenté pour le menu Eldy pour le moment seulement, faites-le dans les menus que vous utilisez).
Fonctions dans Dolibarr
Il est ajouté dans le menu supérieur et vous positionne sur une page de synthèse : Le menu latéral donne accès aux fonctions de gestion du site OSC : gestion des articles, des clients et des commandes. On utilise les web-services de gestion des commandes.
Y figurent :
- Le CA mensuel réalisé sur le site pendant l'année en cours :
get_CAmensuel()
- Les 5 dernières commandes, leur mode de paiement leur statut :
get_orders()
- Les 5 dernières commandes en attente (il faut vérifier ce qui se passe) :
get_orders()
- Les 5 dernières commandes à traiter (prêtes à être expédiées donc à inclure dans Dolibarr) :
get_orders()
- Les clients liés aux 5 dernières commandes :
get_ClientOrders()
Les valeurs des paramètres utilisés dans les appels des web-services sont définis dans un fichier de configuration. Les codes de statut sont ceux utilisés sur le site OSC.
On arrive sur une page listant les articles du site (à affiner, car s'il y a beaucoup d'articles ...)
Possibilité d'ouvrir les détails d'un article et accès à un bouton importer qui créé un nouvel article dans la base de Dolibarr. Si l'article existe déjà (contrôle sur la référence) on met à jour l'article dans Dolibarr (pas encore fonctionnel).
Il n'y pas encore de fonction permettant l'import de tous les articles depuis OSC dans Dolibarr, il faut donc les importer un par un.
Cette fonction ne devriat servir que pour initialiser un système Dolibarr avec un site OSC. Au quotidien, il s'agira plutôt d'alimenter le site OSC avec les articles gérés dans Dolibarr (fonction pas encore réalisée).
Il est construit sur le même modèle que la gestion des produits : on affiche la liste des clients du site OSC et on peut ouvrir les détails pour un client et l'importer dans la base Dolibarr (création de la fiche société)
Il n'y a pas encore de fonction d'import de tous les clients.
NB : Lors de l'import d'une commande (voir plus loin), le client est automatiquement créé s'il n'existe pas encore.
Le schéma est le même : en cliquant le menu on affiche la liste des commandes du site OSC. On peut ensuite visualiser les détails de la commande et avoir accès à l'import dans Dolibarr. Si le client de la commande n'existe pas, il est créé. Par contre, mes articles commandés doivent exister (ou avoir été importés auparavant)
Frais de port : Il faut créer un service pour gèrer les frais de port (gestion des services) et renseigner la variable dans le fichier de configuration de l'interface.
Dans l'état actuel, une commande est importée et reçoit le statut "brouillon", il faut ensuite suivre les fonctions habituelles de Dolibarr pour la valider, gèrer l'expédition, le paiement...
- TODO
- Ici interviendront des règles de gestion pour automatiser encore plus cette gestion dans dolibarr : contrôler la validité des commandes OSC selon le type de livraison, le moyen de paiement (ex : si payée par CB, la commande est déjà payée, si c'est en contre remboursement, elle doit être envoyée et on est payé plus tard, si elle est payée par virement, elle est en attente jusqu'à réception du paiement) et probablement d'autres auxquelles je n'ai pas encore pensé... Vos avis sont les bienvenus.
Pour le moment, on va tester comme cela.
Les tests à effectuer
Installation
Le module est regroupé dans le répertoire osCommerce_ws de la version cvs. Il n'y a en principe rien d'autre à télécharger (merci Laurent -Eldy- de l'avoir intégré). Les mises à jour du CVS mettront aussi à jour ce module. Pour y avoir accès, activer le module osCommerce MS2 (attention : en activant ce module, l'ancien module OS Commerce MS1 est automatiquement désactivé, les 2 modules n'étant pas compatibles).
On y trouve les diverses fonctions pour accéder au site web osCommerce. Par défaut, vous accédez au site web de test que j'ai installé. Vous pouvez utiliser une autre plateforme aussi.
Les WebServices à installer sur un site OSC chez vous sont dans un sous-répertoire de osCommerce_ws/
. Un fichier README
décrit leur installation et leur configuration.
- NB
- A utiliser en mode test uniquement pour le moment. Tous les testeurs sont les bienvenus ! Merci de me renvoyer vos remarques et commentaires.
Plan de tests suggéré
On se retrouve donc avec deux couches à réaliser : les webservices coté OSC (le côté serveur donc) et les clients de ces webservices côté Dolibarr.
Le site où sont installés les webservices : http://www.tiaris.info/catalog
un dolibarr CVS avec accès au site ci-dessus http://www.tiaris.info/dolidemo/htdocs
Il s'agit d'un site de test, que vous pouvez utiliser sans problème (tout est fictif). Pas de paiement en ligne par carte bleue, et pas d'envoi de commandes à attendre ! Vous pouvez créer des commandes, vous enregistrer comme client, ça fera plus réaliste pour les tests Les services web : ils sont installés et les tests peuvent commencer dès que vous avez mis votre cvs à jour et activé le module osCommerce2.
Il y aura beaucoup de tests à prévoir pour valider le bon fonctionnement (en voici une première liste à affiner et à préciser au fur et à mesure).
Site Dolibarr (côté client)
Ce qui peut être testé est écrit en italique :
- La gestion des articles :
- leur récupération depuis OSC (et leur gestion ensuite comme tout article Dolibarr)
- la création d'un article sur OSC depuis Dolibarr (suite à commande et livraison fournisseur)
- la gestion du stock
- La gestion des clients - prospects :
- OSC ne distingue pas les clients (qui ont commandé) des prospects (inscrits mais sans commande)
- récupération des clients
- récupération des prospects
- la gestion de ces clients / prospects dans Dolibarr
- la gestion des mises à jour client
- La récupération des commandes
- leur intégration dans les commandes Dolibarr
- le suivi du paiement (maj de la commande sur OSC à prévoir)
- le suivi de l'expédition (maj de la commande sur OSC à prévoir)
- l'intégration dans la gestion comptable de Dolibarr (compte bancaire, CA, frais, TVA...)
Site osCommerce (côté serveur)
Ce qui peut être testé est écrit en italique :
- la gestion de l'accès
- les performances
- l'administration
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.
Permissions
Tables SQL
Aucune