API : purchase_order
Permet de créer / remplacer / annuler une commande d'achat (purchase order) dans PMS, à partir d'un payload JSON.
Cette API est l'équivalent JSON de l'ancien endpoint XML <purchase_order>.
- action = Create : crée la commande d'achat. Si la référence existe déjà, l'API retourne une erreur
duplicate. - action = Replace : remplace la commande d'achat (suppression puis réimport). Si une réception a déjà démarré, l'API retourne une erreur
locked. - action = Cancel : annule la commande d'achat (si possible). Sinon erreur
locked.
Cas particulier historique : pour action = Replace, si status vaut 90 la commande est clôturée ; si status vaut 99 la commande est supprimée (ou clôturée si suppression impossible).
Exemple de requête
$json_request = "{...}";
$ch = curl_init();
curl_setopt_array($ch, array(
CURLOPT_URL => "https://{account-name}.pms1.net/edi/api/purchase_order",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_POSTREDIR => true,
CURLOPT_VERBOSE => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => $json_request,
CURLOPT_HTTPHEADER => array(
'Accept: application/json',
'Content-Type: application/json',
'Authorization: Basic ' . base64_encode('{account-name}:{password}')
)
));
$reply = curl_exec ($ch);
curl_close($ch);
$json = json_decode($reply);
Exemple de requête
{
"action": "Create",
"purchase_order_ref": "PO-2026-000123",
"purchase_order_supplier_ref": "ERP-PO-000123",
"purchase_order_title": "Réassort Mars",
"purchase_order_date": "2026-02-06",
"expected_date": "2026-02-15",
"supplier_ref": "SUP-001",
"supplier_name": "ACME Supplies",
"is_transfer": 0,
"warehouse_ref": "WH-01",
"products": [
{
"sku": "SKU-123",
"ean": "12345678910",
"quantity": 10,
"unit_purchase_price": 4.25
},
{
"sku": "SKU-987",
"quantity": 2,
"unit_purchase_price": 19.9
}
]
}
- purchase_order_ref : identifiant de la commande d'achat dans votre ERP
- purchase_order_supplier_ref : identifiant de la commande d'achat chez le fournisseur
- purchase_order_date / expected_date : acceptent
YYYY-MM-DD - supplier_ref : identifiant du fournisseur dans votre ERP
- warehouse_ref : identifiant de l'entrepôt de réception dans votre ERP
- products[].sku : SKU produit
Exemple de réponse
{
"result": "ok",
"purchase_order_id": 12345,
"purchase_order_ref": "PO-2026-000123"
}
Exemple d'erreur
{
"error": "duplicate"
}