2.6 KiB
CRM Dolibarr
Docker Image tuxgasy/dolibarr
Description du composant
Dolibarr est le CRM utilisé pour gérer les stocks, les transactions et l'inventaire présents dans les entrepôts. Il est le pilier central du projet et nous servira d'interface pour gérer les transactions.
Spécifications techniques
- Image Docker: tuxgasy/dolibarr
- Plugins utilisés: Stock, API REST
- Utilisateur technique créé: Technical User IoT
Fonctionnalités principales
- Créer / Lister les différents entrepôts
- Créer / Lister les produits disponibles dans un entrepôt
- Créer un mouvement dans les stocks des produits disponibles dans chaque entrepôt
- Exposer différents webservices pour automatiser certaines tâches
Guide d'utilisation
Créer une instance de développement
Pour créer une instance de développement, nous allons utiliser l'image Docker de Dolibarr: tuxgasy/dolibarr
Pour simplifier l'installation, un fichier docker-compose est disponible à la racine du projet: ./docker-compose-dolibarr.yml
Pour lancer Dolibarr, exécutez la commande suivante :
$ docker compose -f docker-compose-dolibarr.yml up
Ensuite, il faut se rendre sur http://0.0.0.0/ puis se connecter avec les identifiants par défaut (admin, admin).
Appel des différents webservices de Dolibarr
L'URL de base pour toutes nos requêtes HTTP (avec l'image Docker) est : http://0.0.0.0/api/index.php
Pour commencer, récupérez l'API token d'un utilisateur pour pouvoir effectuer des requêtes API. Assurez-vous que l'utilisateur dispose des autorisations nécessaires.
Ensuite, utilisez ce token pour chaque route API en l'ajoutant dans les en-têtes : DOLAPIKEY = {{votre_api_token}}
de votre prochaine requête.
Pour récupérer le warehouse de base et vérifier son existence :
- Méthode: GET
- URL:
warehouses/{id}
Pour récupérer les produits disponibles :
- Méthode: GET
- URL:
products?sortfield=t.ref&sortorder=ASC&limit=10000
Pour créer un mouvement de stock :
- Méthode: POST
- URL:
stockmovements?sortfield=t.rowid&sortorder=ASC&limit=100
- Body (JSON):
{ "product_id": "1", // string, - ID du produit à déplacer "warehouse_id": "1", // string - ID de l'entrepôt "qty": 60, // int - quantité à déplacer (1 pour positif ou -1 pour enlever un article) "movementcode": "S-1", // string - code du mouvement "movementlabel": "Abc" // string - libellé du mouvement }