API des bons de commande
đ Pourquoi utiliser lâAPI des bons de commandeâ?â
Les bons de commande sont des Ă©lĂ©ments essentiels de la gestion des stocks et de la logistique dans DataDocks. Ils reprĂ©sentent des ententes pour la livraison de produits Ă vos entrepĂŽts (entrants) ou leur expĂ©dition (sortants). LâAPI des bons de commande vous permet de crĂ©er, suivre et gĂ©rer ces documents essentiels de façon programmatique, en connectant directement vos systĂšmes de la chaĂźne dâapprovisionnement Ă vos opĂ©rations dâentrepĂŽt.
ProblĂšmes rĂ©solus par cette APIâ
- Rationaliser le traitement des commandes : Créez et mettez à jour automatiquement des bons de commande à partir de votre ERP ou systÚme de gestion des commandes
- Améliorer la visibilité sur les stocks : Suivez les arrivées et départs prévus avec des informations détaillées sur les produits
- Simplifier la gestion des transporteurs : Associez des transporteurs aux bons de commande pour simplifier la logistique
- Optimiser la planification : DĂ©finissez les Ă©chĂ©anciers prĂ©vus pour mieux gĂ©rer les ressources de lâentrepĂŽt
- Permettre lâanalyse avancĂ©e : AccĂ©dez Ă des donnĂ©es structurĂ©es sur les bons de commande pour le reporting et lâanalyse
DĂ©marrage rapide en 5 minutesâ
PrĂȘt Ă crĂ©er votre premier bon de commande via lâAPIâ? Suivez ces Ă©tapes simplesâ:
- Obtenez votre jeton API auprĂšs du support
- Identifiez votre sous-domaine dâemplacement (ex. :
votre-entrepot.datadocks.com) - Créez un bon de commande de base avec cette commande :
Voir exemple cURL
curl -X POST \
https://your-warehouse.datadocks.com/api/v1/purchase_orders \
-H 'Authorization: Token YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"purchase_order": {
"po_number": "PO-2023-001",
"carrier_name": "Express Logistics",
"outbound": false,
"expected_starts_at": "2023-06-01T08:00:00-04:00",
"expected_ends_at": "2023-06-01T16:00:00-04:00",
"purchase_order_items": [
{
"product_name": "Widgets",
"unit_name": "Pallet",
"quantity": 10,
"weight": 500
}
]
}
}'
- Câest faitâ! Votre bon de commande est maintenant dans DataDocks. VĂ©rifiez votre tableau de bord pour le consulter.
Aperçu de lâarchitecture de lâAPIâ
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â Votre systĂšme ââââââââ¶â API DataDocksââââââââ¶â Ops EntrepĂŽt â
â (ERP/OMS/TMS) ââââââââ†(REST/JSON) ââââââââ†(BC/Articles) â
âââââââââââââââââââ âââââââââââââââââââ âââââââââââââââââââ
â âČ
â â
⌠â
âââââââââââââââââââ
â Rendez-vous â
â & horaires â
â â
âââââââââââââââââââ
Authentificationâ
Toutes les requĂȘtes API doivent inclure votre jeton API dans lâen-tĂȘte Authorizationâ:
Authorization: Token YOUR_API_TOKEN
Liste des bons de commandeâ
Objectifâ
RĂ©cupĂšre une liste paginĂ©e des bons de commande, avec possibilitĂ© de filtrer par numĂ©ro de bon. Utilisez ce point dâaccĂšs pour synchroniser vos bons de commande avec vos systĂšmes, vĂ©rifier lâĂ©tat des livraisons attendues ou prĂ©parer vos rapports dâactivitĂ© dâentrepĂŽt.
Cas dâutilisation mĂ©tierâ
- Synchroniser les bons de commande avec votre ERP ou systĂšme de gestion de commandes
- Générer des rapports sur les mouvements de stocks attendus
- Surveiller les livraisons ou expéditions à venir
- Suivre la performance des transporteurs Ă travers les bons de commande
RequĂȘte HTTPâ
GET https://[location_subdomain].datadocks.com/api/v1/purchase_orders
ParamĂštres de requĂȘteâ
| ParamĂštre | Type | Obligatoire | Description | Exemple |
|---|---|---|---|---|
page | Entier | Non | N° de page pour la pagination (par défaut à 1) | page=2 |
po_number | Texte | Non | Filtrer par le numéro exact de bon (insensible à la casse) | po_number=A-1000 |
Format de la rĂ©ponseâ
La rĂ©ponse contient un tableau dâobjets bon de commande, chacun avec les champs suivantsâ:
| Champ | Type | Description |
|---|---|---|
id | Entier | Identifiant unique du bon de commande |
po_number | Texte | Numéro du bon de commande |
name | Texte | Nom auto-généré basé sur les détails du bon |
carrier_name | Texte | Nom du transporteur affecté au bon |
location_name | Texte | Nom du site/entrepĂŽt |
outbound | Booléen | Sortant (true) ou entrant (false) |
expected_starts_at | Texte | Horodatage ISO8601 du début prévu |
expected_ends_at | Texte | Horodatage ISO8601 de la fin prévue |
custom_values | Objet | Paires clé/valeur de champs personnalisés |
purchase_order_items | Tableau | Liste des articles associés à ce bon |
Chaque item dans purchase_order_items contientâ:
| Champ | Type | Description |
|---|---|---|
id | Entier | Identifiant unique de lâarticle |
customer_name | Texte | Nom du client associĂ© Ă lâarticle |
product_name | Texte | Nom du produit |
unit_name | Texte | UnitĂ© de mesure (ex.â: «âPaletteâ», «âBoĂźteâ») |
quantity | Nombre | Quantité du produit |
weight | Nombre | Poids de lâarticle |
custom_values | Objet | Champs personnalisés pour cet article |
Exemples de codeâ
cURLâ
Voir exemple cURL
# Liste de base
curl -H "Authorization: Token YOUR_API_TOKEN" \
https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders
# Filtré par numéro de bon
curl -H "Authorization: Token YOUR_API_TOKEN" \
"https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders?po_number=A-1000"
JavaScriptâ
Voir exemple JavaScript
// Utiliser fetch API avec filtre sur le numéro de bon
const getPurchaseOrders = async (poNumber) => {
const params = new URLSearchParams();
if (poNumber) params.append("po_number", poNumber);
const response = await fetch(
`https://YOUR_LOCATION.datadocks.com/api/v1/purchase_orders?${params.toString()}`,
{
method: "GET",
headers: {
Authorization: "Token YOUR_API_TOKEN",
"Content-Type": "application/json",
},
}
);
if (!response.ok) {
const errorData = await response.json();
throw new Error(
`Ăchec de lâobtention des bons de commande : ${JSON.stringify(errorData)}`
);
}
return response.json();
};
Exemple de rĂ©ponseâ
Voir exemple de réponse
[
{
"id": 1,
"po_number": "A-1000",
"name": "A-1000-FastCo-Cereal",
"carrier_name": "FastCo",
"location_name": "Toronto",
"outbound": false,
"expected_starts_at": "2020-10-09T13:35:00-04:00",
"expected_ends_at": "2020-10-15T13:35:00-04:00",
"custom_values": {
"expected_at": "2020-10-09",
"travel_type": "Plane",
"forklift_operator": "Joe"
},
"purchase_order_items": [
{
"id": 2,
"customer_name": "FishCo",
"product_name": "Trout",
"unit_name": "Skid",
"quantity": 16,
"weight": 102,
"custom_values": {}
},
{
"id": 1,
"customer_name": "FishCo",
"product_name": "Cereal",
"unit_name": "Skid",
"quantity": 33,
"weight": 581,
"custom_values": {}
}
]
}
]