Création de proposition commercial par API

Bonjour la communauté,

Je viens vers vous afin de savoir si quelqu’un pourrait éclairer ma lanterne.

Je suis novice dans l’utilisation de l’API Dolibarr et aussi plus largement dans la création d’API.
J’ai pris le temps de consulter le github de Dolibarr, dont le module Développer une API, mais je suis perdu.

J’ai pour mission de récupérer les devis créés sur un logiciel de GMAO (Carl software), et les transférer sur Dolibarr pour y créer ces même Devis.
J’ai créé un script python sur lequel:
1- je récupère les données du logiciel A (GMAO)
2- Je match le nom client devis (GMAO) avec le nom client ou prospect dans le tiers sur Dolibarr, je récupère l’ID que j’attribue au socid.
3- Je match ensuite dans un dictionnaire « donnee_devis » les données devis (GMAO) et les attributs à remplir sur les proposal de Dolibarr.
4- Je fais ma requête POST sur Dolibarr.

Cela ne fonctionne pas. J’ai eu plusieurs message d’erreur que j’ai plus où moins réussi à débogger:
1- {« error »:{« code »:500,« message »:« Erreur interne du serveur : erreur lors de la création du tiers »,« 0 »:null,« 1 »:« ErrorBadThirdPartyName »}} ==> Ici, j’ai fais une boucle qui dis gmao_name= dolibar_name return id, socid= la fonction. Je n’ai plus ce message (à voir si sa fonctionne bien).

2- "Erreur lors de la création du devis dans Dolibarr.
{« error »:{« code »:500,« message »:« Internal Server Error: Error creating order »,« 0 »:« Date of proposal is required »}} ==> Je ne comprend pas ce message. Pourquoi parle t-on de creating order pour un devis ? j’ai pris récupéré la date de création du devis, pourquoi ai-je « Date of proposal is required » ?

3- Autre message d’erreur que j’ai eu: {« error »:{« code »:400,« message »:« Bad Request: Invalid value specified for request_data »}} Qu’est ce que c’est ? où est le problème ?

Petit rappel, dans le scipt python que j’ai fais, je n’ai pas suivi la procédure github de création de classe spécifique etc. Si c’est le cas, pourriez vous me clarifier ce point. Entant que débutant, je ne comprend pas.

Je vous remercie pour votre aide.
Je peux être disponible ailleurs que sur le forum (teams ou meet) si mon cas est trop spécifique.

Bien à vous.

Bonjour,

Pouvez-vous donner les réquêtes POST que vous faites ?

Bonjour,

Je vous remercie pour votre retour. Voici le bout de code.

response_4 =requests.post(« @urlAPI/proposals »,
data=json.dumps(donnees_devis),
headers={« Content-Type »: « application/json », « DOLAPIKEY »: dolibarr_api_key})

# Vérifier si la requête a réussi

if response_4.status_code == 200:
print(« Devis créé avec succès dans Dolibarr. »)
else:
print(« Erreur lors de la création du devis dans Dolibarr. »)
print(response_4.text)

print(« Transfert des devis terminé. »)

Bonjour,

Je relance le sujet plus largement car je n’ai pas pu avancer.
Quelqu’un a t-il déjà créé une API en Python entre un logiciel externe vers Dolibarr ?

Bien à vous.
Jimmy

Bonjour,
utilisez le gestionnaire d’API via api/index.php/explorer/# pour tester vos requêtes
Le code

{"client": "0",
"client_code": "-1",
"name": "test client2"}

fonctionne sans soucis (testé en v17/v18)

Bonjour,

Les messages sur le forum avec des extraits de code non formattés sont illisibles. Cela ne donne pas envie de les lire, et encore moins d’y répondre.

Voir ce fil de discussion pour savoir comment faire