Bonjour,
L'API permettant de créer une facture fonctionne correctement quand on lui passe la liste des produit en dur dans le script, exemple :
"positions" => [
["name" => "Produit 11", "tax" => "20", "total_price_gross" => "82.50", "quantity" => "1"],
["name" => "Produit 21", "tax" => "20", "total_price_gross" => "12.50", "quantity" => "3"]
]
En revanche, quand nous construisons un tableau en automatique, l'api nous retourne une erreur 500.
D'après ce que je comprends, cela vient du fait que le tableau qu'on envoi possède des indices pour chaque nouveau tableau.
En effet, le code suivant :
$tab_prod1 = [
'name' => 'Produit 11',
"tax" => "20",
"total_price_gross" => "82.50",
"quantity" => "1"
];
$tab_prod2 = [
'name' => 'Produit 22',
"tax" => "20",
"total_price_gross" => "12.50",
"quantity" => "3"
];
$tab_contenu=array($tab_prod1, $tab_prod2);
Nous retournes ceci :
array(2) { [0]=> array(4) { ["name"]=> string(53) "Produit 11" ["tax"]=> string(5) "20.00" ["total_price_gross"]=> float(82.50) ["quantity"]=> string(4) "1.00" } [1]=> array(4) { ["name"]=> string(57) "Produit 22" ["tax"]=> string(5) "20.00" ["total_price_gross"]=> float(12.50) ["quantity"]=> string(4) "3.00" } }
Avez-vous une idée?
Cordialement,
Création d'une facture par API suggestion Nouveau
Réponse:
Pour que notre service technique puisse vous aider, nous aurons besoin de l'intégralité du code. Malheureusement, sur la base des extraits de code que vous avez fournis, il est difficile de définir le problème. De plus, veuillez noter que normalement, nous ne fournissons pas d'aide pour écrire ou débuguer des codes qui ne sont pas rédigés par VosFactures.
Qui a voté:
+ 2
Anonyme
Commentaires
damian@vosfactures.fr
Damian
--
Tel: +33(0)4.83.58.05.64
06 décembre 2023 14:12:45
CMRP
$tab_prod1 = [
'name' => 'Produit 11',
"tax" => "20",
"total_price_gross" => "82.50",
"quantity" => "1"
];
$tab_prod2 = [
'name' => 'Produit 22',
"tax" => "20",
"total_price_gross" => "12.50",
"quantity" => "3"
];
$tab_contenu=array($tab_prod1, $tab_prod2);
$headers = [
'Accept: application/json',
'Content-Type: application/json',
];
$data_api = [
'api_token' => $api_token,
'invoice' => [
"kind" => "vat",
"number" => "null",
"sell_date" => "2023-10-12",
"issue_date" => "2023-10-12",
"payment_to" => "2023-10-19",
"department_id" => "XXXX",
"client_id" => "XXXX",
"test" => "true",
"positions" => [
$tab_contenu
]
]
];
var_dump($data_api);
$ch = curl_init();
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data_api));
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, $url_api);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$retour_api = curl_exec($ch);
curl_close ($ch);
A noter que si dans position je remplace $tab_contenu par : ["name" => "Produit 11", "tax" => "20", "total_price_gross" => "82.50", "quantity" => "1"], ["name" => "Produit 22", "tax" => "20", "total_price_gross" => "12.50", "quantity" => "3"] tout fonctionne bien.
06 décembre 2023 16:50:49
CMRP
Le problème a été corrigé, je partage donc mon retour si ça peut aider d'autres personnes.
L'erreur que je faisais était de laisser les [ ] pour le champ "positions". Vu que ma variable $tab_contenu était déjà un array, il n'y a pas besoin de rajouter les crochets.
07 décembre 2023 10:37:22