Point de terminaison d’URI de base de l’API
Le point de terminaison de tous nos appels d’API est le suivant : https://app.prodsmart.com/
Authentification
L’API Prodsmart utilise une autorisation de jeton simple. Commencez par créer un jeton (ou en acquérir un). Une fois que vous avez acquis votre jeton, vous pouvez l’utiliser pour accéder à d’autres ressources dans l’étendue du jeton.
Votre jeton d’authentification dure 2 heures, puis vous devez en demander un nouveau avec vos informations d’identification API.
Types de support
Les demandes avec un corps de message utilisent le format JSON standard pour définir ou mettre à jour les états des ressources.
États d’erreur
Les codes d’état de réponse HTTP communs sont utilisés.
Json non valide
Si vous recevez une réponse indiquant « JSON non valide », validez la charge utile JSON que vous utilisez sur JSONLint.
Limite de taux
Les demandes d’API sont limitées à 120 demandes par minute par société. Une fois la limite dépassée, les demandes suivantes recevront une réponse avec le code d’état HTTP 429 « Requêtes trop nombreuses ».
En outre, un en-tête indique le nombre de secondes d’attente avant de relancer la requête :
Retry-After: <delay-seconds>
Pratiques recommandées pour gérer la limite de taux :
Répartissez les demandes de manière uniforme dans le temps pour éviter les pics d’utilisation qui peuvent entraîner des réponses limitées.
Développez une logique qui utilise les informations de nouvelle tentative pour savoir quand la demande peut être renouvelée.
Vérifiez qu’aucune intégration inutile ne fonctionne en parallèle, car toutes les intégrations seront comptabilisées dans la limite.
Format de date
Le format des champs de date de l’API suit la représentation de la norme ISO 8601 :
YYYY-MM-DDThh:mm:ssZ
Dans ce format, la lettre T fonctionne comme un séparateur obligatoire, tandis que Z est un indicateur de fuseau horaire, si nécessaire. Si Z n’est pas utilisé, le fuseau horaire appliqué à la date est le même que celui défini dans votre société Prodsmart. Z correspond au fuseau horaire Zéro, car il est décalé de 0.
Exemple d’utilisation :
Si l’heure utilisée est 1 heure avant l’heure UTC, l’indicateur de zone doit être « +01:00 », « +0100 » ou simplement « +01 ».
Si le fuseau horaire d’une société est défini sur -05:00 et que la date d’envoi est au format 2020-07-20T09:15:15Z, la date s’affichera dans Prodsmart sous la forme 20/07/2020 - 04:15.
Si le format envoyé est 2020-07-20T09:15:15, la date s’affichera dans Prodsmart comme suit : 20/07/2020 - 09:15:15 (avec -05:00 fuseau horaire), ce qui signifie que si un utilisateur a défini le fuseau horaire sur -04:00, il verra la date au format suivant : 20/07/2020 - 10:15:15
Intégrations ERP courantes
Les scénarios habituels pour les intégrations ERP sont la synchronisation des ordres de production, des stocks et du catalogue de produits.
Ordres d’exécution
Lorsqu’un ordre d’exécution est créé côté ERP, ERP doit envoyer les données d’ordre d’exécution au format JSON à l’API de Prodsmart, à l’aide du service de création d’ordre d’exécution. S’il faut effectuer une mise à jour côté ERP quand un ordre d’exécution est créé ou mis à jour sur Prodsmart, il y a deux possibilités : soit le côté ERP peut être contacté de l’extérieur : dans ce cas, il est possible de configurer des webhooks sur Prodsmart et les webhooks seront appelés lors de la création, de la mise à jour et de la suppression des ordres d’exécution côté Prodsmart. Si le système ERP ne peut pas être contacté de l’extérieur, il doit interroger le service de liste des ordres d’exécution pour détecter les modifications.
Stocks
Généralement, le système ERP (ou WMS) est le gestionnaire des stocks. Nous fournissons donc un service (mise à jour du stock de produits) qui permet au système ERP/WMS de mettre à jour le stock actuel d’un produit sur une quantité spécifique. Parfois, le système ERP/WMS peut être averti des modifications du stock de production en observant les modifications sur les ordres d’exécution ou en utilisant des webhooks ou un service Web de stock actuel (sur demande).
Produits
Le catalogue de produits est également synchronisé, mais ce n’est pas si fréquent. Dans ce cas, le système ERP est toujours le gestionnaire et peut créer des produits et des opérations à l’aide du service de création de produits.
Webhooks
Les webhooks sont disponibles pour les événements d’ordre d’exécution à partir du menu Intégrations dans l’application. Pour utiliser cette fonction, ajoutez le rappel d’URL du point de terminaison avec les événements de notification que vous souhaitez écouter. Nous nous efforçons d’envoyer des notifications webhook aussi rapidement que les événements se produisent dans notre système. Si vous avez modifié un grand nombre d’ordres d’exécution simultanément, vous risquez d’obtenir un flot de notifications dans un court laps de temps. Actuellement, nous ne prenons pas en charge les nouvelles tentatives.
En-têtes
En-têtes Webhook
x-prodsmart-topic: "productionOrder/create"x-prodsmart-hmac-sha256: "c938fe31379c0d89b37468e1cae9e3aab2d56834"x-prodsmart-api-version: "1"x-prodsmart-webhook-uuid: "91cb972d-b476-4936-947c-4be471b9da5b"x-prodsmart-triggered-at: "2023-08-29T20:39:46.142Z"
Remarque :
x-prodsmart-topic : permet d’identifier la rubrique du webhook.
x-prodsmart-hmac-sha256 : permet de vérifier l’origine du webhook.
x-prodsmart-api-version : version de l’API utilisée pour envoyer le webhook.
x-prodsmart-webhook-uuid : permet d’identifier un webhook unique.
x-prodsmart-trigger-at : heure à laquelle le webhook a été déclenché.
Vérification du webhook
Avant de répondre avec un code d’état 200, il est essentiel de confirmer que le webhook provient de Prodsmart. Cette vérification est effectuée en calculant une signature.
Chaque requête webhook est fournie avec un en-tête spécifique appelé x-prodsmart-hmac-sha1, qui est codé en base64. Cet en-tête est généré à l’aide du secret d’API et des données incluses dans la requête webhook.
Pour vérifier l’authenticité du webhook, vous devez calculer vous-même une signature à l’aide du même secret d’API et des données fournies.
Une fois que vous avez calculé la signature, comparez-la à la valeur trouvée dans l’en-tête x-prodsmart-hmac-sha1 de la requête webhook entrante.
Si la signature calculée correspond à la valeur de l’en-tête x-prodsmart-hmac-sha1, vous pouvez être sûr que le webhook a bien été envoyé depuis Prodsmart et que vous pouvez continuer à y répondre avec un code d’état 200.
Ordres d’exécution
Demande (application/json)
Méthode : POST
Corps
{ "products": [ { "product": "V23076", "quantity-ordered": 3500, "observations": "", "quantity-produced": 700 } ], "code": "Test Production Order", "shipping": { "code": "shipping 45" }, "serial-number": "", "description": "", "start-date": "2023-04-20T09:15:15Z", "due-date": "2023-05-16T17:15:15Z", "workers-assigned": [ { "number": 120 }, { "number": 11 }, { "number": 10 }, { "number": 1 } ], "ended": false, "machines": [ { "code": "A32" }, { "code": "F1" } ], "pieces-by-box": 20, "status": "onschedule", "running-status": "started", "notes": "", "id": 1}
Remarque : l’état d’exécution sera supprimé lors de la suppression de l’ordre d’exécution.
Horloge de pointage
Demande (application/json)
Méthode : POST
Corps
{ "id": 932015, "date": "2022-05-19T14:35:30.000+01:00", "notification": "punchClock_created", "worker": { "number": 0 }, "entry": 1}
valeurs d’entrée possibles :
1 - Entrée
0 - Sortie
valeurs possibles de notification :
punchClock_created
punchClock_updated
punchClock_deleted
Mouvement de stock d’expédition
Mouvement de stock d’expédition créé/mis à jour
Demande (application/json)
Méthode : POST
Corps
[{ "product": { "id": 222, "code": "product-code", "uom": "uom" }, "lot": { "code": "lot-code", "expiration-date": "lot-expiration-date", "supplier-lot": "supplier-lot-name" }, "date": "2022-02-21T00:00:00Z", "quantity": 10.0, "stock-type": "out", "comment": "comment", "warehouse-location": { "id": 333, "code": "warehouse-location-code", "warehouse": { "id": 444, "code": "warehouse-code" } }, "sales-order": { "id": 555, "code": "sales-order-code", "client": { "id": 777, "code": "client-code" }, "parameters": [{ "name": "parameterX", "value": "valueX" }] }, "shipping": { "id": 666, "code": "shipping-code" }, "worker": { "id": 333, "number": 0, "name": "worker-name" }}]
valeurs possibles de notification :
shipping_inventory_movement_created
shipping_inventory_movement_updated
Mouvement de stock d’expédition supprimé
Demande (application/json)
Méthode : POST
Corps
{ "id": 111}
valeurs possibles de notification :
shipping_inventory_movement_deleted
Mouvement de stock de réception
Mouvement de stock de réception créés/mis à jour
Demande (application/json)
Méthode : POST
Corps
[{ "product": { "id": 222, "code": "product-code", "uom": "uom" }, "lot": { "code": "lot-code", "expiration-date": "lot-expiration-date", "supplier-lot": "supplier-lot-name" }, "date": "2022-02-21T00:00:00Z", "quantity": 10.0, "stock-type": "in", "comment": "comment", "warehouse-location": { "id": 333, "code": "warehouse-location-code", "warehouse": { "id": 444, "code": "warehouse-code" } }, "purchase-order": { "id": 555, "code": "purchase-order-code", "supplier": "supplier-code", "parameters": [{ "name": "parameterX", "value": "valueX" }] }, "receiving": { "id": 666, "code": "receiving-code" }, "worker": { "id": 333, "number": 0, "name": "worker-name" }}]
valeurs possibles de notification :
receiving_inventory_movement_created
receiving_inventory_movement_updated
Mouvement de stock de réception supprimé
Demande (application/json)
Méthode : POST
Corps
{ "id": 111}
valeurs possibles de notification :
receiving_inventory_movement_deleted
Mouvement de stock interne
Mouvement de stock interne créé/mis à jour
Demande (application/json)
Méthode : POST
Corps
[{ "product": { "id": 222, "code": "product-code", "uom": "uom" }, "lot": { "code": "lot-code", "expiration-date": "lot-expiration-date", "supplier-lot": "supplier-lot-name" }, "date": "2022-02-21T00:00:00Z", "quantity": 10.0, "stock-type": "in", "comment": "comment", "warehouse-location": { "id": 333, "code": "warehouse-location-code", "warehouse": { "id": 444, "code": "warehouse-code" } }, "worker": { "id": 333, "number": 0, "name": "worker-name" }}]
valeurs possibles de notification :
internal_inventory_movement_created
internal_inventory_movement_updated
Mouvement de stock interne supprimé
Demande (application/json)
Méthode : POST
Corps
{ "id": 111}
valeurs possibles de notification :
internal_inventory_movement_deleted
Mouvement de mise à disposition de matériaux
Mise à disposition de matériaux créée/mise à jour
Demande (application/json)
Méthode : POST
Corps
[{ "product": { "id": 222, "code": "product-code", "uom": "uom" }, "production-order": { "id": 333, "code": "production-order-code" }, "lot": { "code": "lot-code", "expiration-date": "lot-expiration-date", "supplier-lot": "supplier-lot-name" }, "date": "2022-02-21T00:00:00Z", "quantity": 10.0, "warehouse-location": { "id": 333, "code": "warehouse-location-code", "warehouse": { "id": 444, "code": "warehouse-code" } }, "worker": { "id": 333, "number": 0, "name": "worker-name" }}]
valeurs possibles de notification :
material_staging_created
material_staging_updated
Mise à disposition de matériau supprimée
Demande (application/json)
Méthode : POST
Corps
{ "id": 111}
valeurs possibles de notification :
material_staging_deleted
Lot
Lot créé/mis à jour
Demande (application/json)
Méthode : POST
Corps
[{ "code": "lot-code", "creation-date": "2022-02-21T00:00:00Z", "expiration-date": "2022-02-21T00:00:00Z", "supplier-lot": "supplier-lot-name", "product": { "id": 222, "code": "product-code", "uom": "uom" }}]
valeurs possibles de notification :
lot_created
lot_updated
Lot supprimé
Demande (application/json)
Méthode : POST
Corps
{ "id": 111}
valeurs possibles de notification :
lot_deleted
Temps d’arrêt
Temps d’arrêt créé/mis à jour/supprimé
Demande (application/json)
Méthode : POST
Corps
{ "id": 1, "start-time": "2000-01-01T00:00:00.000+01:00", "end-time": "2099-12-31T23:59:59.999+01:00", "started-by": {}, "closed-by": { "number": 0 }, "workers": [ { "number": 0 } ], "machines": [], "product": "", "production-order": "", "checked-out": true, "downtime-type": "downtime1 type", "time-spent": "08:00:00", "event-type": "downTime_created"}
valeurs possibles de notification :
downTime_created
downTime_updated
downTime_deleted
Canaux de flux de changements
Si, pour quelque raison que ce soit, vous ne pouvez pas utiliser les webhooks, nous proposons actuellement une alternative sous la forme d’une pile de changements qui stockera les changements survenus dans les dernières 24 heures, ou depuis que vous avez demandé les changements via le service Web que nous fournissons. Pour utiliser cette fonction, vous devez créer un canal dans le menu Intégrations (https://app.prodsmart.com/admin/integrations). Vous pouvez créer jusqu’à 3 canaux par organisation.
Il existe six types de canaux de changements :
DOWN_TIME
PRODUCT
PRODUCTION
PRODUCTION_ORDER
PUNCH_CLOCK
STOCK
Obtenir les modifications
GET /api/changes/{channel}{?access_token}
Quand vous appelez ce service, vous obtenez une liste des entités qui ont changé soit parce qu’elles ont été créées/mises à jour/supprimées, soit parce que leur état a changé. Vous recevez un tableau avec l’état actuel des entités (organisées des changements les plus anciens aux plus récents), avec un maximum de 25 par appel de service. Les entités que vous obtenez du service sont supprimées de la pile (jusqu’à ce qu’elles soient mises à jour). Le service renvoie un tableau vide (« [] ») s’il n’y a pas de changements.
Exemples d’URI
GET /api/changes/channel?access_token=
Paramètres d’URI
Paramètres d’URI
canal
chaîne (obligatoire)
le canal auquel accéder
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
opérateurs
booléen (facultatif)
afficher la liste des opérateurs sur la réponse du canal des ordres d’exécution
Request
Request
Content-Type: application/json
TEMPS D’ARRÊT
[ { "id": 1435048, "start-time": "2022-04-22T14:47:00.000+01:00", "end-time": "2022-04-23T00:00:00.000+01:00", "started-by": {}, "closed-by": { "number": 1 }, "workers": [ { "number": 1 } ], "machines": [], "product": "", "production-order": "", "checked-out": true, "downtime-type": "Maintenance", "time-spent": "09:13:00", "event-type": "downTime_deleted", }]
Remarque : le champ de type événement n’apparaît que si vous supprimez un temps d’arrêt.
ORDRES D’EXÉCUTION
[ { "products": [ { "product": "RN2", "quantity-ordered": 30.0, "observations": "", "quantity-produced": 0.0 } ], "code": "Production Order 123", "description": "", "shipping": {}, "start-date": "2022-04-21T00:00:00.000+01:00", "due-date": "2022-04-28T00:00:00.000+01:00", "ended": false, "machines": [], "notes": "", "is-active": true, "running-status": "notstarted", "status": "onschedule", "material-staging-complete": false, "id": 1379919 }]
Remarque : la valeur du champ d’état d’exécution est supprimée lorsqu’un ordre d’exécution est supprimé.
PRODUITS
[ { "code": "V23076", "name": "V23076", "observations": "", "section": null, "unit-cost": null, "unit-price": null, "families": [], "operations": [], "components": [], "custom-fields": [], "notification": null, "serializable": null, "shipping-package-types": [], "external-stock": null, "stock-max": null, "min-quantity-reorder": null, "quantity-multiple": null, "scrap-allowance": null, "shelf-life": null, "parameters": [] }]
Remarque : la valeur product_deleted du champ de notification est supprimée lorsque le produit est supprimé.
ENREGISTREMENTS DE PRODUCTION ¶
[ { "production-order": { "code": "P1 - Week 14", "id": 3641 }, "operation": { "code": "CUT3", "product": "P1" }, "worker": { "number": 6 }, "machine": { "code": "WJC" }, "quantity": 0.0, "checked-out": false, "produced-waste": [], "consumptions": [], "total-time-factor": 1.0, "rework": false, "work-time": "00H00m00s", "start-time": "2022-04-22T14:43:00.000+01:00", "end-time": "2022-04-22T14:43:00.000+01:00", "status": "deleted", "show-check-in-checklist-and-c-f": false, "id": 12952533 }]
Remarque : le champ d’état ne s’affiche que si un enregistrement de production est supprimé.
HORLOGES DE POINTAGE
[ { "id": 932015, "date": "2022-05-19T14:35:30.000+01:00", "notification": "punchClock_deleted", "worker": { "number": 0 }, "entry": 1 }]
Remarque : le champ de notification n’apparaît que si une entrée d’horloge de pointage est supprimée.
STOCK
[ { "product-code": "P1", "stock": 2395.0, "lot": [ { "code": "Lot 0086", "stock": 500.0 } ] }]
Fournisseur
Ressources de fournisseur de l’API Prodsmart.
FOURNISSEUR
Un seul objet Fournisseur.
La ressource fournisseur possède les attributs suivants :
id (fourni)
code (chaîne, obligatoire, unique) - code fournisseur
name (chaîne, obligatoire) - nom du fournisseur
number (chaîne, facultatif) - numéro de TVA fournisseur
expiration-date (date, facultatif, format AAAA-MM-JJJJ:MM:SSZ) - date d’expiration du fournisseur
addresses (tableau, facultatif)
code (chaîne, obligatoire, unique) - code d’adresse
name (chaîne, facultatif) - nom d’adresse
address (chaîne, obligatoire) - ligne d’adresse
city (chaîne, facultatif) - ville d’adresse
post-code (chaîne, facultatif) - code postal de l’adresse
state (chaîne, facultatif) - état/région de l’adresse
country (chaîne, obligatoire) - code pays de l’adresse
default (booléen, facultatif - valeur par défaut : false) : si la valeur est true, il s’agit de l’adresse par défaut du fournisseur
contacts (tableau, facultatif)
numéro de téléphone (chaîne, obligatoire en l’absence d’e-mail) - numéro de téléphone du contact
email (chaîne, obligatoire s’il n’y a pas de numéro de téléphone) - adresse e-mail de contact
name (chaîne, facultatif) - nom du contact
default (booléen, facultatif - valeur par défaut : false) : si la valeur est true, il s’agit du contact par défaut du fournisseur
Règles d’adresse/de contact par défaut :
Les contacts et les adresses ne peuvent avoir qu’un seul contact ou une seule adresse par défaut, respectivement.
Si un fournisseur possède des adresses, l’une d’entre elles doit être la valeur par défaut.
Si un fournisseur possède des contacts, l’un d’entre eux doit être celui par défaut.
Lors de la création/mise à jour d’un fournisseur, si aucune adresse/contact par défaut n’est indiqué, le premier contact/la première adresse est le contact par défaut.
Créer un fournisseur
POST /api/suppliers{?access_token}
Statut : disponible
Pour créer un fournisseur, fournissez un hachage JSON des attributs du nouveau fournisseur. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
POST /api/suppliers?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "2020-01-01T00:00:00Z", "contacts": [ { "email": "supplier@supplier.com", "phone-number": "12345678", "name": "Contact1", "default": true }, { "email": "supplier2@supplier2.com", "phone-number": "123456789", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "city": "Lisbon", "address": "Address 1 Street", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "city": "San Francisco", "address": "Address 1 Street", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Réponse 201
Réponse 201
Corps
{ "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Liste des fournisseurs
GET /api/suppliers{?access_token}
Pour afficher la liste des fournisseurs. Cette action nécessite un access_token avec une étendue productions_write. Ce service est paginé et renvoie 25 fournisseurs par page.
Exemples d’URI
GET /api/suppliers?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Divers
numérique (facultatif)
index de la page de résultats, à partir de 1
ID
numéro (facultatif)
répertorier les fournisseurs filtrés par id
code
chaîne (facultatif)
répertorier les fournisseurs filtrés par code
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
[ { "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }, { "id": 987356124, "code": "Supplier2", "name": "Supplier2", "number": "213457", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier3@supplier3.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier4@supplier4.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address3", "name": "Address3", "address": "Address 3 Street", "city": "Paris", "post-code": "111-111", "state": "Paris", "country": "FR", "default": true }, { "code": "Address4", "name": "Address4", "address": "Address 4 Street", "city": "Madrid", "post-code": "111-111", "state": "Madrid", "country": "ES", "default": false } ] } ]
Réponse 400Afficher
Réponse 400Afficher
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Récupérer un fournisseur
GET /api/suppliers/{id}{?access_token}
Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/suppliers/id?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
ID
numérique (obligatoire)
ID du fournisseur
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 201
Réponse 201
Corps
{ "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Mettre à jour un fournisseur
PUT /api/suppliers/{id}{?access_token}
Pour mettre à jour un fournisseur, fournissez un hachage JSON des attributs du nouveau fournisseur.
Contacts
Les contacts de fournisseur indiqués remplaceront les contacts actuels.
Si un contact portant le même nom qu’un contact existant est indiqué, les valeurs du contact portant ce nom seront remplacées par celles indiquées.
Si aucun contact n’est indiqué, les contacts existants sont supprimés.
Adresses
Les adresses indiquées remplaceront les adresses actuelles.
Si une adresse avec le même code qu’une adresse existante est indiquée, les valeurs de l’adresse avec ce code seront remplacées par celles indiquées.
Si aucune adresse n’est indiquée, les adresses existantes sont supprimées.
Si une adresse est associée à des entités, la demande échouera, car l’adresse ne peut pas être supprimée.
Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
PUT /api/suppliers/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID client
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "2020-01-01T00:00:00Z", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Réponse 201
Réponse 201
Corps
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Supprimer un fournisseur
DELETE /api/suppliers/{id}{?access_token}
Exemples d’URI
DELETE /api/suppliers/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID du fournisseur
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 204
Réponse 204
Corps
Supplier was deleted
Réponse 412
Réponse 412
Corps
It's not possible to delete this supplier. It has dependent entities.
Client
Ressources client de l’API Prodsmart.
CLIENT
Un seul objet Client.
La ressource Client possède les attributs suivants :
id (fourni)
code (chaîne, obligatoire, unique) - code client
name (chaîne, obligatoire) - nom du client
number (chaîne, facultatif) - numéro client
phone-number (chaîne, facultatif) - numéro de téléphone du client
email (chaîne, facultatif) - email du client
addresses (tableau, facultatif)
code (chaîne, obligatoire, unique) - code d’adresse
name (chaîne, facultatif) - nom d’adresse
address (chaîne, obligatoire) - ligne d’adresse
city (chaîne, facultatif) - ville d’adresse
post-code (chaîne, facultatif) - code postal de l’adresse
state (chaîne, facultatif) - état/région de l’adresse
country (chaîne, obligatoire) - code pays de l’adresse
default (booléen, facultatif - valeur par défaut : false) : si la valeur est true, il s’agit de l’adresse par défaut du client.
contacts (tableau, facultatif)
numéro de téléphone (chaîne, obligatoire en l’absence d’e-mail) - numéro de téléphone du contact
email (chaîne, obligatoire s’il n’y a pas de numéro de téléphone) - adresse e-mail de contact
name (chaîne, facultatif) - nom du contact
default (booléen, facultatif - valeur par défaut : false) : si la valeur est true, il s’agit du contact par défaut du client.
Règles d’adresse/de contact par défaut :
Les contacts et les adresses ne peuvent avoir qu’un seul contact ou une seule adresse par défaut, respectivement.
Si un client possède des adresses, l’une d’entre elles doit être la valeur par défaut.
Si un client possède des contacts, l’un d’entre eux doit être celui par défaut.
Lors de la création/mise à jour d’un client, si aucune adresse/aucun contact par défaut n’est indiqué, le premier contact/la première adresse est le contact/l’adresse par défaut.
Créer un client
POST /api/clients{?access_token}
Pour créer un client, fournissez un hachage JSON des attributs du nouveau client. Cette action nécessite un access_token avec une étendue productions_write. Pour l’instant, il n’est possible d’enregistrer qu’un seul client. Si la demande est un tableau au lieu d’une seule ressource, tous les éléments du tableau seront enregistrés.
Exemples d’URI
POST /api/clients?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "2020-01-01T00:00:00Z", "contacts": [ { "email": "supplier@supplier.com", "phone-number": "12345678", "name": "Contact1", "default": true }, { "email": "supplier2@supplier2.com", "phone-number": "123456789", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "city": "Lisbon", "address": "Address 1 Street", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "city": "San Francisco", "address": "Address 1 Street", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Réponse 201
Réponse 201
Corps
{ "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Répertorier les clients
GET /api/clients{?access_token}
Pour répertorier les clients. Cette action nécessite un access_token avec une étendue productions_write. Ce service est paginé et renvoie 25 clients par page.
Exemples d’URI
GET /api/clients?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Divers
numérique (facultatif)
index de la page de résultats, à partir de 1
ID
numéro (facultatif)
répertorier les clients filtrés par id
code
chaîne (facultatif)
répertorier les clients filtrés par code
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
[ { "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }, { "id": 987356124, "code": "Supplier2", "name": "Supplier2", "number": "213457", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier3@supplier3.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier4@supplier4.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address3", "name": "Address3", "address": "Address 3 Street", "city": "Paris", "post-code": "111-111", "state": "Paris", "country": "FR", "default": true }, { "code": "Address4", "name": "Address4", "address": "Address 4 Street", "city": "Madrid", "post-code": "111-111", "state": "Madrid", "country": "ES", "default": false } ] } ]
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Récupérer un client
GET /api/clients/{id}{?access_token}
Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/clients/id?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
ID
numérique (obligatoire)
ID client
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 201
Réponse 201
Corps
{ "id": 987356123, "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Mettre à jour un client
PUT /api/clients/{id}{?access_token}
Pour mettre à jour un client, fournissez un hachage JSON des attributs du nouveau client.
Contacts
Les contacts de fournisseur indiqués remplaceront les contacts actuels.
Si un contact portant le même nom qu’un contact existant est indiqué, les valeurs du contact portant ce nom seront remplacées par celles indiquées.
Si aucun contact n’est indiqué, les contacts existants sont supprimés.
Adresses
Les adresses indiquées remplaceront les adresses actuelles.
Si une adresse avec le même code qu’une adresse existante est indiquée, les valeurs de l’adresse avec ce code seront remplacées par celles indiquées.
Si aucune adresse n’est indiquée, les adresses existantes sont supprimées.
Si une adresse est associée à des entités, la demande échouera, car l’adresse ne peut pas être supprimée.
Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
PUT /api/clients/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID client
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "2020-01-01T00:00:00Z", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses":[ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ]}
Réponse 201
Réponse 201
Corps
{ "code": "Supplier", "name": "Supplier", "number": "213456", "expiration-date": "01/01/2020", "contacts": [ { "phone-number": "12345678", "email": "supplier@supplier.com", "name": "Contact1", "default": true }, { "phone-number": "123456789", "email": "supplier2@supplier2.com", "name": "Contact2", "default": false } ], "addresses": [ { "code": "Address1", "name": "Address1", "address": "Address 1 Street", "city": "Lisbon", "post-code": "111-111", "state": "Lisbon", "country": "PT", "default": true }, { "code": "Address2", "name": "Address2", "address": "Address 1 Street", "city": "San Francisco", "post-code": "111-111", "state": "California", "country": "US", "default": false } ] }
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Supprimer un client
DELETE /api/clients/{id}{?access_token}
Exemples d’URI
DELETE /api/clients/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID client
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 204
Réponse 204
Corps
Client was deleted
Réponse 412
Réponse 412
Corps
It's not possible to delete this client. It has dependent entities.
Commande client
Ressources ClientOrder de l’API Prodsmart.
COMMANDE CLIENT
Un seul objet de commande client. La ressource Commande client est l’une des ressources les plus importantes de l’API Prodsmart.
La ressource Commande client possède les attributs suivants :
id (fourni)
code (chaîne, obligatoire) - code commande client
client (chaîne, facultatif) - code client
observations (chaîne, facultatif) - observations de commande client
produits (tableau, obligatoire, non vide)
code (chaîne, obligatoire, unique) - code produit
quantity (double, obligatoire, >0) - quantité commandée
due-date (date, facultatif, format AAAA-MM-JJJJ:MM:SSZ) - date à laquelle l’expédition est due
request-date (date, facultatif, format AAAA-MM-DDTHH:MM:SSZ) - date à laquelle l’expédition est demandée
emplacement (chaîne, facultatif) - emplacement, si multisite
price (double, facultatif) - prix du produit
paramètres (chaîne, facultatif) - contient un attribut spécifique à la commande client
Créer une commande client
POST /api/client-order/{?access_token}
Pour créer une commande client, fournissez un hachage JSON des attributs de la nouvelle commande client. Cette action nécessite un access_token avec une étendue productions_write. Pour l’instant, il n’est possible d’enregistrer qu’une seule commande client. Si la demande est un tableau au lieu d’une seule ressource, tous les éléments du tableau seront enregistrés.
Exemples d’URI
POST /api/client-order/?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "billing-address": "San Francisco", "delivery-address": "Delivery address code", "location": "location code", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3, "delivery-address":"San Francisco" }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price":502, "delivery-address":"Los Angeles" } ], "parameters": [ { "name": "Sales Order Type", "value": "Regular" } ]}
Réponse 201
Réponse 201
Corps
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "billing-address":"San Francisco", "observations": "Ready next week", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3, "delivery-address":"San Francisco" }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price":502, "delivery-address":"Los Angeles" } ], "parameters": [ { "name": "Sales Order Type", "value": "Regular" } ]}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Répertorier les commandes client
GET /api/client-order/{?access_token}
Pour répertorier les commandes client. Plusieurs paramètres seront traités comme une condition AND. Cette action nécessite un access_token avec une étendue productions_write. Ce service est paginé et renvoie 25 commandes client par page.
Exemples d’URI
GET /api/client-order/?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Divers
numérique (facultatif)
index de la page de résultats, à partir de 1
due-date-before
date (facultatif)
répertorier les commandes client dont la date d’échéance est antérieure à
due-date-after
date (facultatif)
répertorier les commandes client dont la date d’échéance est postérieure à
client
chaîne (facultatif)
code machine
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
[ { "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ], "parameters": [ { "name": "Sales Order Type", "value": "Regular" } ] }, { "id": 987356124, "code": "CO123 - Week 48", "client": "Client X", "observations": "", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 70, "due-date": "2019-08-23T18:00:00Z", "requested-date": "2019-01-16T15:19:54Z", "price": 140 }, { "code": "V23077", "quantity": 69, "due-date": "2016-08-23T18:00:00Z", "requested-date": "2019-01-16T15:19:54Z" } ], "parameters": [ { "name": "Sales Order Type", "value": "Priority" } ] }]
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Récupérer une commande client
GET /api/client-order/{id}{?access_token}
Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/client-order/id?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
ID
numérique (obligatoire)
ID de commande client
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 201
Réponse 201
Corps
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ], "parameters": [ { "name": "Sales Order Type", "value": "Priority" } ]}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Mettre à jour une commande client
PUT /api/client-order/{?access_token}
Pour mettre à jour une commande client, fournissez un hachage JSON des attributs de la nouvelle commande client. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
PUT /api/client-order/?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "billing-address": "San Francisco", "location": "location code", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3, "billing-address": "San Francisco" }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "billing-address": "Los Angeles" } ]}
Réponse 201
Réponse 201
Corps
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "billing-address": "San Francisco", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3, "billing-address": "San Francisco" }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "billing-address": "Los Angeles" } ]}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Supprimer une commande client
DELETE /api/client-order/{id}{?access_token}
Exemples d’URI
DELETE /api/client-order/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID de commande client
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 204
Réponse 204
Corps
Client order was deleted
Réponse 409
Réponse 409
Corps
Client order already has production orders created or other entities associated, cannot be removed.
Bon de commande
Ressources Bon de commande de l’API Prodsmart.
BON DE COMMANDE
Un seul objet bon de commande. La ressource Bon de commande est l’une des ressources les plus importantes de l’API Prodsmart.
La ressource Commande comporte les attributs suivants :
id (fourni)
code (chaîne, obligatoire) - code de commande fournisseur
supplier (chaîne, facultatif) - code de fournisseur
billing-address (chaîne, facultatif) - adresse de facturation
observations (chaîne, facultatif) - observations de commande fournisseur
products (tableau, obligatoire, non vide)
code (chaîne, obligatoire, unique) - code produit
quantity (double, obligatoire, >0) - demande de quantité
due-date (date, facultatif, format AAAA-MM-JJJJ:MM:SSZ) - date à laquelle la réception est due
request-date (date, facultatif, format AAAA-MM-DDTHH:MM:SSZ) - date à laquelle la réception est demandée
cost (double, facultatif) - coût du produit
uom (chaîne, facultatif) - unité de mesure du produit
delivery-address (chaîne, facultatif) - adresse de livraison de réception
parameters (chaîne, facultatif) - paramètres de commande fournisseur
approval-status (chaîne, facultatif) - projet, en cours de validation, approuvé, confirmé, rejeté
Créer un bon de commande
POST /api/purchase-orders/{?access_token}
Pour créer un bon de commande, fournissez un hachage JSON des attributs du nouveau bon de commande. Cette action nécessite un access_token avec une étendue productions_write. Pour l’instant, il n’est possible d’enregistrer qu’un seul bon de commande. Si la demande est un tableau au lieu d’une seule ressource, tous les éléments du tableau seront enregistrés.
Exemples d’URI
POST /api/purchase-orders/?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "code": "PO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "supplier": "Supplier X", "billing-address": "Lisbon", "observations": "Ready next week", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "uom": "Box", "cost": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ], "approval-status": "draft", "active": true}
Réponse 201
Réponse 201
En-têtes
Content-Type: application/json
Corps
{ "code": "PO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "supplier": "Supplier X", "billing-address": "Lisbon", "observations": "Ready next week", "products": [ { "code": "V23076", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "uom": "Box", "cost": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ], "approval-status": "draft", "active": true}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Récupérer un bon de commande
GET /api/purchase-orders/{id}{?access_token}
Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/purchase-orders/id?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
ID
numérique (obligatoire)
ID de bon de commande
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 201
Réponse 201
Corps
{ "id": 987356123, "code": "PO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "supplier": "Supplier X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "cost": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ]}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Mettre à jour un bon de commande
PUT/api/purchase-orders/{id}{?access_token}
Pour mettre à jour un bon de commande, fournissez un hachage JSON des attributs du nouveau bon de commande. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
PUT /api/purchase-orders/id?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
ID
numérique (obligatoire)
ID de bon de commande
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ]}
Réponse 201
Réponse 201
Corps
{ "id": 987356123, "code": "CO123 - Week 47", "creation-date": "2022-04-19T08:30:01Z", "client": "Client X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2019-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z", "price": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2016-08-16T17:15:15Z", "requested-date": "2019-01-16T15:19:54Z" } ]}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Supprimer un bon de commande
DELETE /api/purchase-orders/{id}{?access_token}
Exemples d’URI
DELETE /api/purchase-orders/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID de bon de commande
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 204
Réponse 204
Corps
Purchase order was deleted
Réponse 409
Réponse 409
Corps
Purchase order already has production orders created or other entities associated, cannot be removed.
Répertorier les bons de commande
GET /api/purchase-orders{?access_token}
Pour répertorier les bons de commande. Plusieurs paramètres seront traités comme une condition AND. Cette action nécessite un access_token avec une étendue productions_write. Ce service est paginé et renvoie 25 commandes client par page.
Exemples d’URI
GET /api/purchase-orders?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Divers
numérique (facultatif)
index de la page de résultats, à partir de 1
ID
numéro (facultatif)
répertorier les bons de commande filtrés par id de bon de commande
code
chaîne (facultatif)
répertorier les bons de commande filtrés par code de bon de commande
due-date-before
date (facultatif)
répertorier les bons de commande dont la date d’échéance est antérieure à
due-date-after
date (facultatif)
répertorier les bons de commande dont la date d’échéance est postérieure à
fournisseur
chaîne (facultatif)
répertorier les bons de commande filtrés par code fournisseur
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
[ { "id": 987356123, "code": "PO123 - Week 47", "creation-date": "2023-04-19T08:30:01Z", "supplier": "Supplier X", "observations": "Ready next week", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 100, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2023-01-16T15:19:54Z", "cost": 200.3 }, { "code": "V23077", "quantity": 99, "due-date": "2023-08-16T17:15:15Z", "requested-date": "2023-01-16T15:19:54Z" } ] }, { "id": 987356124, "code": "PO123 - Week 48", "supplier": "Supplier X", "observations": "", "products": [ { "code": "V23076", "name": "Vessel", "quantity": 70, "due-date": "2023-08-23T18:00:00Z", "requested-date": "2023-01-16T15:19:54Z", "cost": 140 }, { "code": "V23077", "quantity": 69, "due-date": "2023-08-23T18:00:00Z", "requested-date": "2023-01-16T15:19:54Z" } ] }]
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Ordre d’exécution
Ressources Ordre d’exécution de l’API Prodsmart.
ORDRE D’EXÉCUTION
Un seul objet ordre d’exécution. La ressource Ordre d’exécution est l’une des ressources les plus importantes de l’API Prodsmart. Elle représente l’ordre de gestion de produire une quantité prédéfinie de produits au cours d’une période définie par des opérateurs définis.
La ressource Ordre d’exécution possède les attributs suivants :
id (fourni)
code (chaîne, obligatoire) - code de l’ordre d’exécution
start-date (date, obligatoire, format AAAA-MM-JJJ:MM:SSZ) - date à laquelle le démarrage de cet ordre d’exécution est planifié
due-date (date, obligatoire, format AAAA-MM-JJJ:MM:SSZ) - date d’échéance de cet ordre d’exécution
products (tableau, obligatoire, non vide) - produits et quantités commandés
product (chaîne, obligatoire, unique) - code produit
quantity-ordered (entier, obligatoire, >0) - quantité commandée
observations (facultatif) - remarque concernant ce produit
quantity-produced (entier, fourni, >0) - quantité produite
description (facultatif) - description de cet ordre d’exécution
shipping (facultatif) - code expédition de cet ordre
workers-assigned (tableau, facultatif) -
number - numéro d’opérateur
machines (tableau, facultatif)
code - code de machine
serial-number (facultatif)
description (facultatif)
notes (facultatif)
status (fourni) : planifié (avant start_date et complétude = 0), non planifié (avant end_date et complétude < 100 %), différé (après end_date et complétude < 100 %), terminé (complétude >= 100 %)
running-status (fourni) - non démarré (aucune production), démarré (avec des productions), fermé (manuellement fermé ou fermé après complétude), archivé (manuellement archivé)
L’ID d’état est attribué par l’API Prodsmart au moment de la création.
Récupérer un ordre d’exécution
GET /api/production-orders/{id}{?access_token}
Pour récupérer un ordre d’exécution, il vous suffit d’effectuer une demande GET avec l’ID de l’ordre d’exécution. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/production-orders/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID de l’ordre d’exécution
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
opérateurs
booléen (facultatif)
afficher la liste des opérateurs lors de la réponse
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
{ "products": [ { "product": "V23076", "quantity-ordered": 3500, "observations": "", "quantity-produced": 700 } ], "code": "V23076 - Week 33/34", "shipping": { "code": "shipping 45" }, "start-date": "2023-04-20T09:15:15Z", "due-date": "2023-05-16T17:15:15Z", "description": "Woodworks Ltd.", "ended": false, "custom-fields": [ { "Order Type": "No changeover" } ], "machines": [ { "code": "A32" } ], "pieces-by-box": 20, "is-active": true, "status": "onschedule", "running-status": "started", "notes": "", "location": { "id": "location id", "code": "location code", "name": "location name" }, "material-staging-complete": true, "id": 3990}
Mettre à jour/remplacer un ordre d’exécution
PUT /api/production-orders/{id}{?access_token}
Pour mettre à jour un ordre d’exécution, il suffit d’effectuer une demande PUT avec l’ID de l’ordre d’exécution. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
PUT /api/production-orders/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID de l’ordre d’exécution
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
opérateurs
booléen (facultatif)
afficher la liste des opérateurs lors de la réponse
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "products": [ { "product": "V23076", "quantity-ordered": 4000, "observations": "", "quantity-produced": 700 } ], "code": "V23076 - Week 33/34", "shipping": { "code": "shipping 45" }, "start-date": "2023-04-20T09:15:15Z", "due-date": "2023-05-16T17:15:15Z", "description": "Woodworks Ltd.", "ended": false, "custom-fields": [ { "Order Type": "No changeover" } ], "machines": [ { "code": "A32" } ], "pieces-by-box": 20, "is-active": true, "status": "onschedule", "running-status": "started", "notes": "", "location": "location code", "material-staging-complete": true, "id": 3990}
Réponse 200
Réponse 200
Corps
{ "products": [ { "product": "V23076", "quantity-ordered": 4000, "observations": "", "quantity-produced": 700 } ], "code": "V23076 - Week 33/34", "shipping": { "code": "shipping 45" }, "start-date": "2023-04-20T09:15:15Z", "due-date": "2023-05-16T17:15:15Z", "description": "Woodworks Ltd.", "ended": false, "custom-fields": [ { "Order Type": "No changeover" } ], "machines": [ { "code": "A32" } ], "pieces-by-box": 20, "is-active": true, "status": "onschedule", "running-status": "started", "notes": "", "location": { "id": "location id", "code": "location code", "name": "location name" }, "material-staging-complete": true, "id": 3990}
Supprimer un ordre d’exécution
DELETE /api/production-orders/{id}{?access_token}
Exemples d’URI
DELETE /api/production-orders/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID de l’ordre d’exécution
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 204
Réponse 204
Corps
Production order was deleted
Créer un ordre d’exécution
POST /api/production-orders/{?access_token}
Pour créer un ordre d’exécution, fournissez un hachage JSON des attributs du nouvel ordre d’exécution. Cette action nécessite un access_token avec une étendue productions_write. Pour l’instant, un seul ordre d’exécution peut être enregistré. Si la demande est un tableau au lieu d’une seule ressource, tous les éléments du tableau seront enregistrés.
Exemples d’URI
POST /api/production-orders/?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
opérateurs
booléen (facultatif)
afficher la liste des opérateurs lors de la réponse
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "products": [ { "product": "productExample", "quantity-ordered": 4500, "observations": "" } ], "code": "exampleCode", "shipping": "shippingExample", "serial-number": "", "description": "", "start-date": "2023-07-20T09:15:15Z", "due-date": "2023-08-16T17:15:15Z", "parameters": [ { "name": "Custom Field Name", "value": "123" }, { "name": "Custom Field Name 2", "value": "456" } ], "workers-assigned": [ { "number": 1 }, { "number": 3 } ], "worker-groups": [ { "name": "All" } ], "ended": false, "machines": [ { "code": "exampleMachine" }, { "code": "F1" } ], "pieces-by-box": 20, "notes": "", "location": "location code", "active": true}
Réponse 201
Réponse 201
Corps
{ "products": [ { "product": "productExample", "quantity-ordered": 4500, "observations": "", "quantity-produced": 0 } ], "code": "exampleCode", "shipping": "shippingExample", "serial-number": "", "description": "", "start-date": "2023-07-20T09:15:15Z", "due-date": "2023-08-16T17:15:15Z", "workers-assigned": [ { "number": 1 }, { "number": 2 } { "number": 3 } { "number": 4 } ], "ended": false, "machines": [ {"code": "exampleMachine"}, {"code": "F1"} ], "pieces-by-box": 20, "status": "scheduled", "running-status": "notstarted", "notes": "", "location": { "id": "location id", "code": "location code", "name": "location name" }, "active": true, "id": 11110}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Répertorier les ordres d’exécution
GET /api/production-orders/{?access_token}
Pour répertorier les ordres d’exécution. Plusieurs paramètres seront traités comme une condition AND. Cette action nécessite un access_token avec une étendue productions_write. Ce service est paginé et renvoie 25 ordres d’exécution par page.
Exemples d’URI
GET /api/production-orders/?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Divers
numérique (facultatif)
index de la page de résultats, à partir de 1
start-date-before
date (facultatif)
répertorier les ordres d’exécution dont la date de début est antérieure à
start-date-after
date (facultatif)
répertorier les ordres d’exécution dont la date de début est postérieure à
due-date-before
date (facultatif)
répertorier les ordres d’exécution dont la date d’échéance est antérieure à
due-date-after
date (facultatif)
répertorier les ordres d’exécution dont la date d’échéance est postérieure à
running-status
chaîne (facultatif)
non commencé, commencé, fermé, archivé
actif
booléen (facultatif)
répertorier uniquement les ordres d’exécution actifs (vrai) ou non actifs (faux)
product
chaîne (facultatif)
code produit
machine
chaîne (facultatif)
code machine
opérateurs
booléen (facultatif)
afficher la liste des opérateurs lors de la réponse
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
[ { "products": [ { "product": "exampleProduct", "quantity-ordered": 4500, "observations": "", "quantity-produced": 0 } ], "code": "exampleCode", "shipping": "Shipping 45", "serial-number": "", "description": "", "start-date": "2023-07-20T09:15:15Z", "due-date": "2023-08-16T17:15:15Z", "workers-assigned": [ { "number": 10 }, { "number": 1 } ], "ended": false, "machines": [ { "code": "exampleMachine" }, { "code": "F1" } ], "pieces-by-box": 20, "status": "scheduled", "running-status": "notstarted", "notes": "", "location": { "id": "location id", "code": "location code", "name": "location name" }, "active": true, "id": 8763990 }]
Signaler un problème avec un ordre d’exécution
POST /api/production-orders/{id}/notify{?access_token}
Service qui publie un message court sur le flux et ajoute un message sur l’ordre d’exécution.
short-message (chaîne, obligatoire) - message publié dans le flux, longueur maximale 140 caractères
message (chaîne, facultatif) - message ajouté à la section Notes de l’ordre d’exécution
Exemples d’URI
POST /api/production-orders/id/notify?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID de l’ordre d’exécution
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "short-message": "example", "message": "complete message "}
Réponse 200
Réponse 200
Activer un ordre d’exécution
POST /api/production-orders/{id}/activate{?access_token}
Service qui active l’ordre d’exécution.
Exemples d’URI
POST /api/production-orders/id/activate?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID de l’ordre d’exécution
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{}
Réponse 200
Réponse 200
Réponse 204
Réponse 204
Corps
Production Order was already active
Réponse 405
Réponse 405
Corps
Production Order was closed or archived and cannot be activated
Produits
Ressources produit de l’API Prodsmart.
PRODUCT
Un seul objet Produit. La ressource Produit est l’une des ressources les plus importantes de l’API Prodsmart. Elle représente les produits d’une usine et contient les opérations nécessaires à leur production. Cette méthode crée de nouveaux produits et les opérations associées. Peut également être utilisé
La ressource Produit possède les attributs suivants :
code (chaîne, obligatoire) - code produit
name (chaîne, obligatoire) - nom du produit
section (chaîne, facultatif)
families (tableau, facultatif)
operations (tableau, facultatif) - opérations de production du produit
code (chaîne, obligatoire) - code d’opération
name (chaîne, obligatoire) - nom de l’opération
waste (tableau, facultatif)
task-durations (tableau, facultatif, max:1)
duration (durée, facultatif, par exemple format « 10H59m59s ») : durée moyenne nécessaire à l’exécution de cette opération, en théorie
duration-customer (durée, facultatif, par exemple format « 10H59m59s ») : durée définie dans le budget
ratio-quantity (double, facultatif, valeur par défaut 1,0) - volume produit dans chaque instance de cette opération
times-per-product (entier, facultatif, valeur par défaut 1) - nombre de fois où cette opération doit être effectuée pour terminer une unité de produit
custom-fields (tableau, facultatif, doit exister sur le système) - champs personnalisés à ajouter à l’opération
name (chaîne, obligatoire) - nom de champ personnalisé, déjà créé dans le système
machines (tableau, facultatif, doit exister sur le système) - machines pouvant être utilisées pour effectuer l’opération
code (chaîne, obligatoire) - code machine, déjà créé dans le système
disabled (booléen, facultatif) - désactiver l’opération
optional (booléen, facultatif) - définir l’opération comme facultative
recovery (booléen, facultatif) - définir l’opération comme récupération
no-time (booléen, facultatif) - ne pas enregistrer les temps de production
no-quantity (booléen, facultatif) - ne pas enregistrer la quantité de production
as-team (booléen, facultatif) - opération à effectuer en tant qu’équipe
max-waste-threshold (double, facultatif) - ratio de non-conformités maximal autorisé
Les champs non présents dans la demande sont définis avec les valeurs par défaut. Si vous utilisez cette méthode pour des produits/opérations existants, les champs non présents sont considérés comme des suppressions.
Récupérer un produit
GET /api/products/{code}{?access_token}
Pour récupérer un produit, il vous suffit d’effectuer une demande GET avec le code du produit. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/products/code?access_token=
Paramètres d’URI
Paramètres d’URI
code
Chaîne (obligatoire)
Code produit.
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
{ "code": "P11", "name": "Product 11", "section": null, "families": null, "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": null, "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "custom-fields": null, "machines": null, "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "max-waste-threshold": null, "section": { "name": "specialsection" }, "id": 100 } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1 } ], "label": { "code": "labelCode" }, "serializable": true, "id": 24}
Réponse 404
Réponse 404
Corps
If product with the provided code doesn't exist.
Créer un produit
POST /api/products{?access_token}
Pour créer un produit, fournissez un hachage JSON des attributs du nouveau produit et de ses opérations. Cette action nécessite un access_token avec une étendue productions_write. Plusieurs opérations peuvent être créées simultanément.
Exemples d’URI
POST /api/products?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "code": "P11", "name": "Product 11", "families": [ { "code": "FG" } ], "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": [ { "code": "BROKEN" } ], "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "times-per-product": 2.0, "checklists": [ { "code": "CheckIn" } ], "machines": [ { "code": "OVEN02" } ], "disabled": false, "optional": false, "recovery": false, "no-time": false, "no-quantity": false, "as-team": false, "multi-po": false, "print-production-barcode": false, "prepare-batch-order": false, "section": { "name": "CUT" } } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" } ], "serializable": true}
Réponse 201
Réponse 201
Corps
{ "code": "P11", "name": "Product 11", "families": [ { "code": "FG" } ], "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": [ { "code": "BROKEN" } ], "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "times-per-product": 2.0, "checklists": [ { "code": "CheckIn" } ], "custom-fields": null, "machines": [ { "code": "OVEN02" } ], "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "section": { "name": "CUT" } "id":560 } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" } ], "serializable": true "id":120}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Mettre à jour un produit
PUT /api/products/{code}{?access_token}
Pour mettre à jour un produit, fournissez un code et un hachage JSON des attributs pour le produit existant et ses opérations. Cette action nécessite un access_token avec une étendue productions_write. Pour l’instant, il n’est possible d’enregistrer qu’un seul produit, mais plusieurs opérations peuvent être créées en même temps.
Exemples d’URI
PUT /api/products/code?access_token=
Paramètres d’URI
Paramètres d’URI
code
chaîne (obligatoire)
Code produit.
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "code": "P11", "name": "Product 11", "families": [ { "code": "FG" } ], "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": [ { "code": "BROKEN" } ], "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "times-per-product": 2.0, "checklists": [ { "code": "CheckIn" } ], "custom-fields": null, "machines": [ { "code": "OVEN02" } ], "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "section": { "name": "CUT" } } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" } ], "serializable": true}
Réponse 201
Réponse 201
Corps
{ "code": "P11", "name": "Product 11", "families": [ { "code": "FG" } ], "color": "#8b0000", "observations": "observations", "operations": [ { "code": "op1", "name": "op1", "waste": [ { "code": "BROKEN" } ], "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "times-per-product": 2.0, "checklists": [ { "code": "CheckIn" } ], "custom-fields": null, "machines": [ { "code": "OVEN02" } ], "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "section": { "name": "CUT" } "id":560 } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" } ], "serializable": true "id":120}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Supprimer un produit
DELETE /api/products/{code}{?access_token}
Pour supprimer un produit, indiquez le code produit.
Exemples d’URI
DELETE /api/products/code?access_token=
Paramètres d’URI
Paramètres d’URI
code
chaîne (obligatoire)
Code produit.
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
Content-Type: application/json
Réponse 204
Réponse 204
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Répertorier les produits
GET /api/products{?access_token}
Pour répertorier la liste des produits et de leurs opérations. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/products?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Divers
numérique (facultatif)
index de la page de résultats, à partir de 1
product-family-code
chaîne (facultatif)
répertorier les produits appartenant à la famille de produits fournie
modification-date
date (facultatif)
répertorier les produits modifiés dans le back-office après la date indiquée
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
{ "code": "P11", "name": "Product 11", "observations": "", "section": null, "unit-cost": null, "unit-price": 4.32000, "families": [ { "code": "FG", "name": "Finished Goods" } ], "operations": [ { "code": "op1", "name": "op1", "waste": null, "task-durations": [ { "validSince": "01/01/2022 - 13:00", "validUntil": "01/01/2100 - 13:00", "duration": "00H01m00s", "duration-customer": "00H01m00s", "ratio-quantity": 1 } ], "custom-fields": null, "parameters": [ { "name": "parameter1", "value": "value1" } ], "machines": null, "disabled": false, "optional": false, "recovery": null, "no-time": false, "no-quantity": false, "as-team": false, "max-waste-threshold": null, "section": { "name": "specialsection" }, "id": 123 } ], "components": [ { "code": "SUGAR", "name": "Sugar", "quantity": 0.0015, "operation": "MIXING" }, { "code": "VANILLA", "name": "Vanilla", "quantity": 0.0008, "operation": "MIXING" } ], "serializable": false, "custom-fields": null}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
NOMENCLATURE DE PRODUIT
La ressource Nomenclature (BoM) du produit indique les matières utilisées pour fabriquer un produit spécifique. La nomenclature présente les attributs suivants :
product-code - produit principal
bom (tableau, obligatoire)
product-code (chaîne, obligatoire) - code produit composant/consommation
quantity (double, obligatoire) - quantité
operation-code (chaîne, facultatif) - code d’opération dans lequel la matière définie dans le code-produit est utilisée. Si ce paramètre est vide, la consommation se produit lors de la première opération du processus de fabrication de ce produit.
Mettre à jour la nomenclature du produit
POST /api/bom{?access_token}
Pour mettre à jour la nomenclature d’un produit, fournissez un hachage JSON des attributs du nouveau produit et de ses opérations. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
POST /api/bom?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "product-code": "bicycle", "bom": [ { "product-code": "wheel", "quantity": 2, "operation-code": "assemble" }, { "product-code": "seat", "quantity": 1, "operation-code": "assemble" } ]}
Réponse 201
Réponse 201
{ "product-code": "bicycle", "bom": [ { "product-code": "wheel", "quantity": 2, "operation-code": "assemble" }, { "product-code": "seat", "quantity": 1, "operation-code": "assemble" } ]}
Réponse 404
Réponse 404
Corps
Main product not found
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
STOCK DE PRODUIT
La ressource Stock indique le stock disponible pour un produit spécifique.
product-code (chaîne, obligatoire)
stock (double, obligatoire)
date (date, facultatif) - date du comptage de stock
Mettre à jour le stock du produit
POST /api/stock{?access_token}
Pour mettre à jour le stock d’un produit, fournissez un hachage JSON des attributs pour le stock actuel. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
POST /api/stock?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "product-code": "bicycle", "stock": 200.5, "date": "2023-08-16T17:15:15Z"}
Réponse 201
Réponse 201
Corps
Request successful
Réponse 404
Réponse 404
Corps
Product not found
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Familles de produits
Ressources produit de l’API Prodsmart.
FAMILLE DE PRODUIT
L’objet Famille de produits représente la ou les familles auxquelles un produit appartient.
La ressource Famille de produits possède les attributs suivants :
code (chaîne, obligatoire) - code famille de produits
name (chaîne, obligatoire) - nom de la famille de produits
Créer une famille de produits
POST /api/product-families{?access_token}
Pour créer une ou plusieurs familles de produits ・ Cette action nécessite un jeton d’accès avec une étendue productions_write.
Exemples d’URI
POST /api/product-families?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "product-families": [ { "code": "FAM 1", "name": "Family 1" }, { "code": "FAM 2", "name": "Family 2" } ]}
Réponse 201
Réponse 201
Corps
[ { "code": "FAM 1", "name": "Family 1" }, { "code": "FAM 2", "name": "Family 2" }]
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Supprimer la famille de produits
DELETE /api/product-family/{code}{?access_token}
Pour supprimer une famille de produits, indiquez le code ProductFamily
Exemples d’URI
DELETE /api/product-family/code?access_token=
Paramètres d’URI
Paramètres d’URI
code
chaîne (obligatoire)
Code produit.
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
Content-Type: application/json
Réponse 204
Réponse 204
Corps
Product Family was deleted
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Répertorier les familles de produits
GET /api/product-families{?access_token}
Pour répertorier les familles de produits. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/product-families?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Divers
numérique (facultatif)
index de la page de résultats, à partir de 1
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 201
Réponse 201
Corps
[ { "code": "FAM 1", "name": "Family 1" }, { "code": "FAM 2", "name": "Family 2" }]
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Machines
Ressources de production de l’API Prodsmart.
COMPTEUR
Mettre à jour le compteur
POST /api/machines/{machine_code}/counter{?access_token}
Pour mettre à jour le compteur actuel dans la machine, envoyez simplement la demande suivante. Pour simplifier la connexion de la machine, vous pouvez utiliser access_token ou envoyer les informations d’identification de l’API dans l’en-tête d’authentification avec l’authentification de base. Prodsmart met automatiquement à jour la production démarrée par l’opérateur sur cette machine. Le décompte des quantités et les quantités de non-conformités doivent être incrémentiels (c’est-à-dire toujours supérieurs aux quantités précédemment envoyées).
Exemples d’URI
POST /api/machines/machine_code/counter?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
machine_code
chaîne (obligatoire)
Code machine défini sur la plateforme Prodsmart
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "count": 500, "waste": [ { "code": "Waste1", "quantity": 20 } ], "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1 } ]}
Réponse 200
Réponse 200
Corps
Returns the new value for the machine's counter.
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
PARAMETRES
Mettre à jour les paramètres
POST /api/machines/{machine_code}/parameters{?access_token}
Pour mettre à jour un paramètre de machine, il suffit d’envoyer la demande suivante. Pour simplifier la connexion de la machine, vous pouvez utiliser access_token ou envoyer les informations d’identification de l’API dans l’en-tête d’authentification avec l’authentification de base. Lorsque ces paramètres sont transmis, si un enregistrement de production est
Exemples d’URI
POST /api/machines/machine_code/parameters?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
machine_code
chaîne (obligatoire)
Code machine défini sur la plateforme Prodsmart
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "parameters": [ { "code": "temperature", "value": 25 }, { "code": "valid", "value": "yes" } ]}
Réponse 200
Réponse 200
TEMPS D’ARRÊT
Mettre à jour les temps d’arrêt
POST /api/machines/{machine_code}/startstop{?access_token}
Pour mettre à jour le statut actuel de la machine, envoyez simplement la demande suivante. Pour simplifier la connexion de la machine, vous pouvez utiliser access_token ou envoyer les informations d’identification de l’api dans l’en-tête d’authentification avec l’authentification de base. Prodsmart enregistre automatiquement un temps d’arrêt ou y met fin, selon les informations reçues. Envoyez 0 pour une machine arrêtée, 1 pour une machine activée et spécifiez le type de temps d’arrêt.
Pour mettre à jour le statut d’une machine, spécifiez les attributs suivants :
type (chaîne, obligatoire, doit être un type de temps d’arrêt déjà affecté à la machine) - type de temps d’arrêt
running (nombre, obligatoire, 0 ou 1) - la machine est-elle arrêtée (0) ou en cours d’exécution (1)
Exemples d’URI
POST /api/machines/machine_code/startstop?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
machine_code
chaîne (obligatoire)
Code machine défini sur la plateforme Prodsmart
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "type": "Maintenance", "running": 0}
Réponse 200
Réponse 200
Production
Ressources de production de l’API Prodsmart.
PRODUCTION
Un seul objet de production. La ressource Production est la ressource centrale de l’API Prodsmart. Elle représente le travail d’un opérateur occupant un poste pendant une période donnée.
La ressource Production possède les attributs suivants :
ID
start-time (date, obligatoire, format AAAA-MM-JJJ:MM:SSZ) - heure de début de la production
end-time (date, obligatoire, format AAAA-MM-JJJ:MM:SSZ) - heure de fin de la production
work-time (durée, donnée, format 00H00m00s) - temps de travail de production (inclut le temps de planification/les horloges de pointage et exclut les temps d’arrêt)
production-order (facultatif) - ordre d’exécution pour lequel cette production a été effectuée
code (chaîne, obligatoire) - code de l’ordre d’exécution
id (chaîne, obligatoire)
operation (obligatoire) - tâche exécutée dans cette production
code (chaîne, obligatoire, unique) - code de tâche
product (obligatoire) - bien matériel utilisé par l’opérateur à ce poste
quantity (entier, obligatoire, >0) - quantité produite dans cette production
worker (obligatoire) - personne qui effectue des tâches
number (long, obligatoire, unique) - numéro d’opérateur
produced-waste (tableau, facultatif) - sortie de matériau défectueuse dans une opération
quantity (numérique, obligatoire) - code de non-conformités
waste - type de matériau défectueux
code (chaîne, obligatoire, unique) - code de non-conformités
description (chaîne, obligatoire) - description des non-conformités
flaw (chaîne, obligatoire) - type de non-conformités
quantity (entier, obligatoire) - quantité de non-conformités produites
L’ID d’état est attribué par l’API Prodsmart au moment de la création.
Mettre à jour une production
PUT /api/productions/{id}{?access_token}
Pour mettre à jour une production, fournissez un code et un hachage JSON des attributs pour la production existante. Cette action nécessite un access_token avec une étendue productions_write. Pour l’instant, il n’est possible d’enregistrer qu’un seul produit, mais plusieurs opérations peuvent être créées en même temps.
Exemples d’URI
PUT /api/productions/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID de production
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "shipping": { "code": "shippingexamplecode00" }, "production-order": { "code": "productionorderexample00" }, "operation": { "product-code": "otherProductCode", "code": "OtherOperationCode" }, "worker": { "number": "1000" }, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1 } ], "quantity": 100, "start-time": "2023-07-20T09:15:15Z", "end-time": "2023-07-20T09:15:16Z", "lot-number": "other lot", "finished": false}
Réponse 200
Réponse 200
Corps
{ "id": 4629374, "production-order": { "code": "productionorderexample00", "id": 365315 }, "shipping": { "code": "shippingexamplecode00", "id": 41741 }, "operation": { "code": "OtherOperationCode", "product-code": "otherProductCode", "id": 790486 }, "worker": { "number": 1000, "name": "Worker Name", "id": 15890 }, "parameters": [ { "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1 } ], "quantity": 100, "lot-number": "other lot", "start-time": "2023-07-20T09:15:15.000Z", "end-time": "2023-07-20T09:15:16.000Z", "finished": false}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Supprimer la production
SUPPRIMER /api/productions/{id}{?access_token}
Pour supprimer une production, fournissez un ID de production.
Exemples d’URI
DELETE /api/productions/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID de production
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
Content-Type: application/json
Réponse 201
Réponse 201
Corps
{ "id": 4629376, "production-order": { "code": "productionorderexample00", "id": 365315 }, "shipping": { "code": "shippingexamplecode00", "id": 41741 }, "operation": { "code": "operationexample0001", "product-code": "productcodeexample001", "id": 790486 }, "worker": { "number": 1000, "name": "worker example", "id": 15890 }, "parameters": [{ "name": "parameter1", "value": "value1" }, { "name": "parameter2", "value": "2022-12-19T00:00:00Z" }, { "name": "parameter3", "value": 1.0 }], "quantity": 100.0, "lot-number": "lotX", "start-time": "2023-07-20T09:15:15.000Z", "end-time": "2023-07-20T09:15:16.000Z", "finished": false}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body
Répertorier les productions
GET /api/productions{?access_token}
Pour répertorier les productions. Plusieurs paramètres seront traités comme une condition AND. Cette action nécessite un access_token avec une étendue productions_write. Ce service est paginé et renvoie 25 productions par page.
Exemples d’URI
GET /api/productions?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Divers
numérique (facultatif)
index de la page de résultats, à partir de 1
production-order-id
numérique (facultatif)
répertorier les productions avec cet ordre d’exécution
production-order-code
chaîne (facultatif)
répertorier les productions avec ce ou ces ordres d’exécution
opérateur
numérique (facultatif)
répertorier les productions avec cet opérateur (numéro d’opérateur)
start-time-before
date (facultatif)
répertorier les productions dont l’heure de début est antérieure à
start-time-after
date (facultatif)
répertorier les productions dont l’heure de début est ultérieure à
end-time-before
date (facultatif)
répertorier les productions avec une heure de fin antérieure à
end-time-after
date (facultatif)
répertorier les productions avec une heure de fin ultérieure à
start-time
date (facultatif)
répertorier les productions qui fonctionnaient après cette heure de début (ne pas utiliser combiné avec -before -after)
checked-out
booléen (facultatif)
répertorier les productions qui sont sorties.
worker-name
booléen (facultatif)
extrait le nom et le numéro de l’opérateur au lieu du seul numéro d’opérateur.
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
[ { "production-order": { "code": "PO1", "id": 36530 }, "operation": { "code": "2", "product": "Product 1" }, "worker": { "number": 2 }, "machine": { "code": "Machine Code" }, "produced-waste": [ { "quantity": 21, "waste": { "code": "Waste code", "description": "Description of this type of waste", "flaw": "Flaw", "recoverable": true, "billable": false, "id": 333 } } ], "parameters": [ { "parameter1": "value1" }, { "parameter2": 2 } ], "quantity": 0, "checked-out": false, "work-time": "00H00m00s", "start-time": "2023-09-20T17:55:32.000+01:00", "end-time": "2023-09-20T18:45:00.000+01:00", "id": 575354 }]
Temps d’arrêt
Ressources de temps d’arrêt de l’API Prodsmart.
TEMPS D’ARRÊT
Répertorier les temps d’arrêt
GET /api/downtimes{?access_token}
Pour répertorier les temps d’arrêt. Plusieurs paramètres seront traités comme une condition AND. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/downtimes?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Divers
numérique (facultatif)
index de la page de résultats, à partir de 1
start-time-before
date (facultatif)
répertorier les heures d’arrêt dont l’heure de début est antérieure à
start-time-after
date (facultatif)
répertorier les temps d’arrêt dont l’heure de début est ultérieure à
end-time-before
date (facultatif)
répertorier les temps d’arrêt dont l’heure de fin est antérieure à
end-time-after
date (facultatif)
répertorier les temps d’arrêt dont l’heure de fin est ultérieure à
machine
numérique (facultatif)
répertorier les temps d’arrêt sur cette machine
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
[ { "id": 20146, "start-time": "2017-12-21T10:30:21.000Z", "end-time": "2017-12-21T10:32:21.000Z", "started-by": { "number": 2 }, "closed-by": { "number": 2 }, "workers": [], "machines": [ { "code": "M2", "name": "Machine 2" } ], "product": "ProdX", "production-order": "OP XPTO", "checked-out": true, "downtime-type": "Malfunction", "time-spent": "00H02m00s" }]
PunchClock
Ressources Horloge de pointage de l’API Prodsmart.
HORLOGE DE POINTAGE
Les webhooks sont disponibles pour les événements d’horloge de pointage dans le menu des intégrations de l’application. Pour utiliser cette fonction, ajoutez le rappel d’URL du point de terminaison avec les événements de notification que vous souhaitez écouter. Nous nous efforçons d’envoyer des notifications webhook aussi rapidement que les événements se produisent dans notre système. Actuellement, nous ne prenons pas en charge les nouvelles tentatives.
Répertorier les horloges de pointage
GET /api/punchclocks{?access_token}
Pour répertorier les horloges de pointage. Plusieurs paramètres seront traités comme une condition AND. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/punchclocks?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Divers
numérique (facultatif)
index de la page de résultats, à partir de 1
date-before
date (facultatif)
répertorier les entrées d’horloge de pointage dont la date est antérieure à
date-after
date (facultatif)
répertorier les entrées d’horloge dont la date est postérieure à
opérateur
numérique (facultatif)
répertorier les entrées d’horloge de pointage pour cet opérateur
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
[{ "id": 372179, "date": "2018-09-21T09:24:06.000+01:00", "worker": { "number": 2 }, "type": 1},{ "id": 372180, "date": "2018-09-21T16:34:12.000+01:00", "worker": { "number": 2 }, "type": 0}]"type": 0 ('out') or 1 ('in')
Mouvement de stock
Ressources Mouvement de stock de l’API Prodsmart.
MOUVEMENT DE STOCK
Un seul objet Mouvement de stock. La ressource Mouvement de stock est l’une des ressources les plus importantes de l’API Prodsmart.
La ressource Mouvement de stock possède les attributs suivants :
id (fourni)
product (chaîne, obligatoire) - code produit
date-time (date, facultatif, format AAAA-MM-JJJJ:MM:SSZ) - date de création du mouvement de stock
quantity (double, obligatoire) - quantité de mouvement de stock
type (chaîne, obligatoire) - type de mouvement de stock : entrée, sortie, consommation, production
lot (chaîne, facultatif) - lot de mouvements de stock à utiliser
total-cost (BigDecimal, facultatif) - coût total du mouvement de stock pour la quantité
warehouse-location (chaîne, facultatif) - code d’emplacement de l’entrepôt
warehouse (chaîne, facultatif) - code d’entrepôt
location (chaîne, facultatif) - emplacement, si multisite
comment (chaîne, facultatif) - commentaire sur le mouvement de stock
Récupérer un mouvement de stock
GET /api/inventory-movements/{id}{?access_token}
Pour récupérer un mouvement de stock, il vous suffit d’effectuer une demande GET avec l’ID du mouvement de stock. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/inventory-movements/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numérique (obligatoire)
ID de mouvement de stock
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
{ "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse-location": "Zone2", "shipping": { "code": "shippingCode", "clientOrder": { "code": "clientOrderCode", "client": "clientCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }, "receiving": { "code": "receivingCode", "purchaseOrder": { "code": "purchaseOrderCode", "supplier": "supplierCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }}
Créer un mouvement de stock
POST /api/inventory-movements/{?access_token}
Pour créer un mouvement de stock, fournissez un hachage JSON des attributs du nouveau mouvement de stock. Cette action nécessite un access_token avec une étendue productions_write. Pour l’instant, il n’est possible d’enregistrer qu’un seul mouvement de stock. Si la demande est un tableau au lieu d’une seule ressource, tous les éléments du tableau seront enregistrés.
Exemples d’URI
POST /api/inventory-movements/?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse": "A", "warehouse-location": "Zone2", "location": "location code", "shipping": "shippingCode", "client-order": "clientOrderCode", "receiving": "receivingCode", "purchase-order": "purchaseOrderCode"}
Réponse 200
Réponse 200
Corps
{ "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse-location": "Zone2", "id": 12345, "shipping": { "code": "shippingCode", "clientOrder": { "code": "clientOrderCode", "client": "clientCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }, "receiving": { "code": "receivingCode", "purchaseOrder": { "code": "purchaseOrderCode", "supplier": "supplierCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body.
Mettre à jour un mouvement de stock
PUT /api/inventory-movements/{id}{?access_token}
Pour mettre à jour un mouvement de stock, fournissez un fichier JSON avec les attributs que vous souhaitez mettre à jour dans le mouvement de stock (tous les attributs sont facultatifs). Cette action requiert un access_token
avec productions_write scope
.
Exemples d’URI
PUT /
api/inventory-movements/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numeric
(obligatoire)
ID de mouvement de stock
access_token
string
(obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Corps
{ "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse": "A", "warehouse-location": "Zone2", "receiving": "receivingCode" }
Supprimer un mouvement de stock
DELETE /api/inventory-movement/{id}{?access_token}
Pour supprimer un mouvement de stock, fournissez un ID de mouvement de stock.
Exemples d’URI
DELETE /api/inventory-movement/id?access_token=
Paramètres d’URI
Paramètres d’URI
ID
numeric
(obligatoire)
ID de mouvement de stock
access_token
string
(obligatoire)
Jeton d’accès à l’API Prodsmart.
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 204
Réponse 400
Réponse 400
It's not possible to delete this inventory-movement.
Répertorier les mouvements de stock
GET /api/inventory-movements/{?access_token}
Pour répertorier les mouvements de stock. Plusieurs paramètres seront traités comme une condition AND. Cette action nécessite un access_token avec une étendue productions_write. Ce service est paginé et renvoie 25 mouvements de stock par page.
Exemples d’URI
GET /api/inventory-movements/?access_token=
Paramètres d’URI
Paramètres d’URI
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
Divers
numérique (facultatif)
index de la page de résultats, à partir de 1
product-code
chaîne (facultatif)
code produit
type
chaîne (facultatif)
type de mouvement de stock : entrée, sortie, consommation, production
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
[ { "product-code": "ProductCode", "date-time": "2018-07-20T09:15:15Z", "quantity": "10", "type": "in", "lot": "A", "total-cost": "1000", "comment": "OK", "warehouse-location": "Zone2", "id": 12345, "shipping": { "code": "shippingCode", "clientOrder": { "code": "clientOrderCode", "client": "clientCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } }, "receiving": { "code": "receivingCode", "purchaseOrder": { "code": "purchaseOrderCode", "supplier": "supplierCode" }, "location": { "id": "location id", "code": "location code", "name": "location name" } } }]
Stock
Ressources de stock de l’API Prodsmart.
Récupérer un stock de produit
GET /api/stock/{code}{?access_token}
Pour récupérer un stock de produit, il vous suffit d’effectuer une demande GET avec le code du produit. Plusieurs paramètres seront traités comme une condition AND. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/stock/code?access_token=
Paramètres d’URI
Paramètres d’URI
code
chaîne (obligatoire)
Code produit.
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart.
lot
chaîne (facultatif)
Récupérer le code de lot et la quantité de stock pour le ou les lots de produits
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
{"product-code": "Example","stock": 35,"lot": [ { "code": "A", "stock": 10 }, { "code": "B", "stock": 5 }}
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body.
Rapports
Ressources de génération de rapports de l’API Prodsmart.
Temps de travail de l’opérateur
Temps de travail de l’opérateur GET/api/reports/worker-labor-time{?access_token}
Pour récupérer un rapport, il vous suffit d’effectuer une demande GET avec un intervalle de temps pour extraire le rapport. Vous pouvez ajouter un opérateur et un paramètre de section pour filtrer le rapport. En outre, vous pouvez spécifier des indicateurs pour personnaliser le contenu du rapport. La valeur par défaut de tous les indicateurs est false. Cette action nécessite un access_token avec une étendue productions_write.
Exemples d’URI
GET /api/reports/worker-labor-time?access_token=
Paramètres d’URI
Paramètres d’URI
start-time
chaîne (obligatoire)
Générer un rapport aux dates ultérieures (incluses)
end-time
chaîne (obligatoire)
Générer un rapport aux dates antérieures (incluses)
access_token
chaîne (obligatoire)
Jeton d’accès à l’API Prodsmart
worker-number
chaîne (facultatif)
Spécifier un numéro d’opérateur pour filtrer le rapport
Section
chaîne (facultatif)
Spécifiez un nom de section. Tous les opérateurs de cette section seront inclus dans le rapport
show-rework
booléen (facultatif)
Inclure un nouveau champ avec les opérations de réusinage dans le rapport
show-weekend
booléen (facultatif)
Inclure les jours de week-end dans les données
only-punch-clock
booléen (facultatif)
Prendre en compte uniquement le temps de présence avec les entrées d’horloge de pointage
Divers
numérique (facultatif)
index de la page de résultats, à partir de 1
Demande
Demande
En-têtes
Content-Type: application/json
Réponse 200
Réponse 200
Corps
[ { "worker": { "number": "0", "name": "John" }, "presence-time": "08H00", "work-time": "04H00m00s", "percentage": "50%", "calendar-downtimes": "00H00m00s" }, { "worker": { "number": "1", "name": "Mary" }, "presence-time": "08H00", "work-time": "08H00m00s", "percentage": "100%", "calendar-downtimes": "00H00m00s" }]
Réponse 400
Réponse 400
Corps
If there's a problem with the request, the problem found will be reported on the Response Body.
Réponse 429
Réponse 429
Corps
Another request is ongoing for this endpoint. Please wait until the current request finishes before doing another.
Autorisation et contrôle d’accès
Accès et contrôle du jeton d’authentification Prodsmart.
AUTORISATION
La ressource Autorisation représente une autorisation accordée à la société. Vous pouvez uniquement accéder à votre propre autorisation. L’authentification utilisée est l’authentification de base, où l’en-tête Authentification se présente sous la forme <valeur codée en base64 de API_KEY : API_SECRET>. Pour obtenir la clé et le secret de l’API, connectez-vous à Prodsmart et modifiez votre utilisateur. (Remarque : vous devez disposer d’un rôle d’administrateur pour l’obtenir.) La ressource Autorisation possède l’attribut suivant :
token
scopes
Où token représente un jeton et scopes est un tableau d’étendues accordées pour l’autorisation donnée. À ce stade, la seule étendue disponible est productions_write
.
Récupérer l’autorisation
GET /api/authorization
Utilisez GET pour récupérer un jeton d’accès existant. Si aucun jeton n’existe, il est possible d’en générer un à l’aide de la méthode POST.
Exemples d’URI
GET /api/authorization
Demande
Demande
En-têtes
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Réponse 200
Réponse 200
En-têtes
Content-Type: application/jsonLink: <http:/api.prodsmart.com/api/authorizations>;rel="self"
Corps
{ "_links": { "self": { "href": "/api/authorizations" }, }, "scopes": [ "productions_write" ], "token": "abc123"}
Créer une autorisation
POST /api/authorization
Utilisez une demande POST pour générer un nouveau jeton d’accès.
Exemples d’URI
POST /api/authorization
Demande
Demande
En-têtes
Content-Type: application/jsonAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Corps
{ "scopes": [ "productions_write" ] }
Réponse 201
Réponse 201
En-têtes
Content-Type: application/jsonLink: <http:/api.prodsmart.com/api/authorizations>;rel="self"
Corps
{ "_links": { "self": { "href": "/api/authorizations" }, }, "scopes": [ "productions_write" ], "token": "abc123"}
Supprimer une autorisation
DELETE /api/authorization
Exemples d’URI
DELETE /api/authorization
Demande
Demande
En-têtes
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Réponse 204
Réponse 204