Difference between revisions of "Module OSCommerceWS (développeur)"

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search
m
m
Line 18: Line 18:
 
Ce module fonctionne au travers de l'utilisation d'une librairie facilitant l'utilisation des services web: ''NuSOAP''
 
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.
+
= Présentation =
  
La liste de fonctionnalités suivante utilise la convention '''export=Dolibarr->OSCommerce''' et '''import=OSCommerce->Dolibarr'''
+
A l'usage, il m'est apparu que l'administration d'osCommerce ne me suffit pas. Voici quelques questions que j'ai rencontrées :
  
== Exporter un produit ==
+
* 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...
  
En cliquant sur le lien ''AddProd'' (qui devrait être traduit en français par ''Ajout produit'', on arrive sur la page d'export des produits. Il suffit de sélectionner un produit et une quantité, puis d'appuyer sur le bouton ''OSCsell'' (qui devrait être traduit en français par ''Vendre sur OSCommerce'') pour que la requête de création soit envoyée.
+
* Je rencontre quelqu'un qui veut acheter des produits sans passer par le site (marché local).
  
Attention, la liste de produits est limitée en utilisant les limitations de listes de Dolibarr. Il se pourrait donc qu'au-delà de, par exemple, 50 produits, il soit impossible de voir le reste des produits. Pour changer cette limite, on peut aller la modifier dans la configuration de Dolibarr, ou si l'on veut s'en débarrasser, c'est dans '''htdocs/oscommerce_ws/produits/OSCVente.php''', chercher '''$html->select_produits''' et modifier '''$conf->produit->limit_size'''
+
* 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...  
  
== Importer un produit ==
+
Fonctionnalités que Dolibarr propose. Donc l'idée de base consiste à faire collaborer OSC et Dolibarr :
  
Importer un produit se fait au travers du menu "Produits". La page d'import affiche une liste des produits disponibles dans OSCommerce. Le lien de droite affiche "Importer" ou "Modifier", selon que les produits figurent ou non dans la table ''llx_osc_product''.
+
* 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...)
  
Si un produit existe localement et qu'on le supprime (localement), on trouve un joli bug de synchronisation, où le produit apparaît ensuite toujours comme à "Modifier" plutôt qu'importer.
+
* gérer le catalogue ( suivi des commandes fournisseurs) depuis Dolibarr et le mettre à jour sur le site.
  
Un produit importé de la sorte est importé hors de toute catégorie.
+
Je propose de décrire ici les fonctions utiles pour réaliser cette interface. Sentez-vous libre d'y apporter vos contributions.
  
Un message consécutif à l'importation indique si le produit a été importé.
+
== Les fonctions prévues ==
  
== Importer un client ==
+
; 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'''
  
Importer un client se fait via le menu de gauche '''Clients'''. Une liste des clients apparaît et, d'une façon identique à la liste des produits, on peut choisir d'importer un client dans Dolibarr depuis OSCommerce via un lien '''Importer'''.
+
; Export d'articles Dolibarr => OSC : pour la gestion du catalogue OSC depuis Dolibarr  
  
Un message d'information atteste de la réussite de l'opération, indiquant par la même occasion quel est l'identifiant interne attribué à ce client dans Dolibarr.
+
; Import des clients et prospects OSC => Dolibarr : pour le suivi des clients et la gestion des commandes '''à tester''' (pour les clients)
  
== Importer une commande ==
+
; Import des commandes OSC => Dolibarr : en vue de leur suivi dans Dolibarr '''à tester'''
  
L'importation d'une commande se fait via le menu de gauche "Commandes".
+
; 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'importation d'une commande nécessite la présence préalable dans Dolibarr du client et des produits concernés. Si ce n'est pas le cas, un message nous indique les produits ou clients manquants et bloque l'opération d'import.
+
== L'utilisation de ces fonctions ==
  
== Synchroniser une catégorie ==
+
Décrire comment elles seront implémentées et comment les intégrer dans Dolibarr.
  
La synchronisation des catégories se fait toujours à la main pour le moment. L'utilisation du menu de gauche '''Catégories''' nous mène à une page de liste des catégories existantes dans Dolibarr. Il est nécessaire d'indiquer, pour chaque catégorie de Dolibarr, à quelle catégorie de OSCommerce elle correspond. C'est assez peu intuitif pour le moment étant donné qu'il faut connaître le numéro de catégorie dans OSCommerce pour pouvoir appliquer la correspondance.
+
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.
  
= Code =
+
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.
  
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).
+
== Description des webservices ==
  
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.
+
=== Gestion des articles <code>ws_articles</code> ===
  
 +
# <code>get_article($id="",$ref="")</code> : renvoie les données de l'article identifié par son id (OSC) ou sa référence
 +
# <code>get_listearticles()</code> : 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é.
  
= Problèmes =
+
=== gestion des clients <code>ws_customers</code> ===
  
== PHP5 ==
+
# <code>get_Client($id="0")</code> : 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)
  
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.
+
=== gestion des commandes <code>ws_orders</code> ===
  
Ceci donne lieu à une erreur du type "Cannot redeclare class SoapClient".
+
# <code>get_CAmensuel()</code> : renvoie le tableau du CA réalisé par mois pour l'année en cours.
 +
# <code>get_orders($nbmax, $statut)</code> : renvoie le tableau composé de nbmax commandes du statut donné (livré, en attente, en traitement...)
 +
# <code>get_lasOrderClients($id="", $name="", $limit="")</code> : renvoie les clients correspondant aux <code>$limit</code> dernières commandes (les autres paramètres ne sont pas encore utilisés).
 +
# <code>get_Order($id="0")</code> renvoie les informations pour la commande d'identifiant $id (si <code>$id >0</code>), On récupère aussi bien la commande que les lignes de la commande.
 +
::Si <code>$id == 0</code> : la liste de toutes les commandes est renvoyée (mais sans les lignes de commandes).
  
== Erreur I/O ==
+
== Implémentation dans Dolibarr ==
  
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.
+
La gestion d'une boutique osCommerce est implémentée dans le module '''osCommerce''' qui arrive avec la version cvs. Un fichier <code>ReadMe</code> 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.  
  
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.
+
L'ancienne implémentation (module boutique) est toujours disponible (attention il y a eu des modifications !! consulter la liste de developpement du cvs).  
  
== Mon produit n'apparaît pas dans OSCommerce ==
+
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).
  
OSCommerce nécessite une entrée de description de produit pour que le produit apparaisse. Autrement dit, il faut que le produit ait un nom (et éventuellement une description) qui lui soient propres. Tout ça est très joli, le seul problème (dépendant de la version de Dolibarr que vous utilisez) c'est qu'il est possible que la requête d'insertion de la description du produit du côté OSCommerce ne fonctionne pas. Il s'agit de la requête située dans ws_server/ws_articles.php, dans la fonction create_article(). Il faut en fait commenter les 3 lignes commençant par '''products_head''' dans le deuxième tableau.
+
== Fonctions dans Dolibarr ==
Un produit bien inséré dans OSCommerce renvoie inévitablement un message du type '''le produit JADAA2 Aerosol 60/2 est en vente en ligne consulter'''. Si ce message n'apparaît pas, il y a fort à parier que le produit n'a pas été inséré.
+
 
 +
=== Le menu Boutique ===
 +
 
 +
[[Image:dolibarrosc_bureau.jpg|thumb|300px|right|Menu boutique]]
 +
 
 +
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 : <code>get_CAmensuel()</code>
 +
* Les 5 dernières commandes, leur mode de paiement leur statut : <code>get_orders()</code>
 +
* Les 5 dernières commandes en attente (il faut vérifier ce qui se passe) : <code>get_orders()</code>
 +
* Les 5 dernières commandes à traiter (prêtes à être expédiées donc à inclure dans Dolibarr) : <code>get_orders()</code>
 +
* Les clients liés aux 5 dernières commandes : <code>get_ClientOrders()</code>
 +
 
 +
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.
 +
 
 +
=== Le menu Produits ===
 +
 
 +
[[Image:dolibarrosc_produits.jpg|thumb|300px|right|Menu Produits]]
 +
 
 +
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).
 +
 
 +
=== Le menu clients ===
 +
 
 +
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 menu commandes ===
 +
 
 +
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 [http://www.tiaris.info/catalog 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 <code>osCommerce_ws/</code>. Un fichier <code>README</code> 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

Revision as of 12:28, 7 August 2009

OSCommerceWS
Numéro/ID du module {{{num}}}
Doc utilisateur du module Module OSCommerceWS
Doc développeur du module Cette page

Fonction

Le module OSCommerceWS (anciennement nommé OSCommerce2) permet de synchroniser une partie des informations d'une installation OSCommerce2 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

  1. get_article($id="",$ref="") : renvoie les données de l'article identifié par son id (OSC) ou sa référence
  2. get_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

  1. 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

  1. get_CAmensuel() : renvoie le tableau du CA réalisé par mois pour l'année en cours.
  2. get_orders($nbmax, $statut) : renvoie le tableau composé de nbmax commandes du statut donné (livré, en attente, en traitement...)
  3. get_lasOrderClients($id="", $name="", $limit="") : renvoie les clients correspondant aux $limit dernières commandes (les autres paramètres ne sont pas encore utilisés).
  4. 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).

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

Le menu Boutique

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.

Le menu Produits

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).

Le menu clients

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 menu commandes

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 :

  1. 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
  2. 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
  3. 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 :

  1. la gestion de l'accès
  2. les performances
  3. l'administration