Zum Hauptinhalt springen

API-Dokumentation

David Andrade avatar
Verfasst von David Andrade
Vor über 2 Wochen aktualisiert

Basis-URI-Endpunkt der API

Der Endpunkt für alle API-Aufrufe lautet: https://app.prodsmart.com/.

Authentifizierung

Die Prodsmart-API verwendet eine einfache Token-Autorisierung. Zunächst erstellen Sie ein neues Token (oder übernehmen ein vorhandenes). Nachdem Sie Ihr Token erhalten haben, können Sie es verwenden, um auf andere Ressourcen innerhalb des Token-Bereichs zuzugreifen.

Ihr Authentifizierungs-Token gilt zwei Stunden. Anschließend müssen Sie mit Ihren API-Anmeldedaten ein neues Token anfordern.

Medientypen

Anforderungen mit einem Nachrichtentext verwenden ein einfaches JSON-Format zum Festlegen oder Aktualisieren von Ressourcenstatus.

Fehlerstatus

Die gängigen HTTP-Antwortstatuscodes werden verwendet.

Ungültige JSON-Datei

Wenn Sie eine Antwort bezüglich einer ungültigen JSON-Datei erhalten, überprüfen Sie die JSON-Nutzdaten, die Sie in JSONLint verwenden.

Ratenbegrenzung

API-Anforderungen sind auf 120 Anforderungen pro Minute und Unternehmen beschränkt. Wenn der Grenzwert überschritten wurde, erhalten nachfolgende Anforderungen eine Antwort mit dem HTTP-Statuscode 429 Too Many Requests (Zu viele Anforderungen).

Darüber hinaus zeigt ein Header an, wie viele Sekunden Sie warten müssen, bevor Sie die Anforderung erneut ausführen können:

Retry-After: <delay-seconds>

Bewährte Praktiken bei der Ratenbegrenzung:

  • Verteilen Sie Anforderungen gleichmäßig im Zeitverlauf, um Auslastungsspitzen zu vermeiden, die zu gedrosselten Antworten führen können.

  • Entwickeln Sie Logik, die die Retry-After-Informationen verwendet, um zu erkennen, wann die Anforderung wiederholt werden kann.

  • Stellen Sie sicher, dass Sie keine unnötigen Integrationen parallel ausführen, da alle Integrationen zum Grenzwert mit hinzu zählen.

Datumsformat

Das Format der API-Datumsfelder entspricht der Darstellung in ISO 8601:

  • YYYY-MM-DDThh:mm:ssZ

In diesem Format fungiert der Buchstabe T als erforderliches Trennzeichen, während Z bei Bedarf eine Zeitzonenbezeichnung darstellt. Wenn Z nicht verwendet wird, entspricht die Zeitzone, die auf das Datum angewendet wird, der Zeitzone, die für Ihr Unternehmen in Prodsmart festgelegt ist. Z steht für die Zeitzone Null, da sie um 0 Stunden versetzt ist.

Anwendungsbeispiel:

  • Wenn die verwendete Zeit eine Stunde vor UTC liegt, sollte die Zonenbezeichnung +01:00, +0100 oder einfach +01 lauten.

  • Wenn die Zeitzone eines Unternehmens auf -05:00 festgelegt ist und das Sendedatum das folgende Format aufweist: 2020-07-20T09:15:15Z, dann wird das Datum in Prodsmart als 07/20/2020 – 04:15:15 angezeigt.

  • Wenn das gesendete Format 2020-07-20T09:15:15 lautet, wird das Datum in Prodsmart als 07/20/2020 – 09:15:15 angezeigt (mit der Zeitzone -05:00). Das bedeutet, wenn ein Benutzer eine auf -04:00 festgelegte Zeitzone aufweist, wird dies als 07/20/2020 – 10:15:15 angezeigt.


Allgemeine ERP-Integrationen

Die üblichen Szenarien für ERP-Integrationen sind Synchronisierungen hauptsächlich von Produktionsaufträgen, Beständen und Produktkatalogen.

Produktionsaufträge

Wenn ein Produktionsauftrag auf der ERP-Seite erstellt wird, sollte das ERP-System die Produktionsauftragsdaten im JSON-Format mithilfe des Production Order Creation Service an die Prodsmart-API senden. Wenn auf der ERP-Seite eine Aktualisierung erforderlich ist, da ein Produktionsauftrag in Prodsmart erstellt oder aktualisiert wird, gibt es zwei Möglichkeiten: Entweder kann das ERP-System von außen kontaktiert werden. In diesem Fall können Webhooks in Prodsmart eingerichtet werden. Die Webhooks werden dann beim Erstellen, Aktualisieren und Löschen von Produktionsaufträgen in Prodsmart aufgerufen. Wenn das ERP-System nicht von außen kontaktiert werden kann, muss es den Production Orders List Service aktiv abfragen, um Änderungen zu erkennen.

Bestände

In der Regel ist das ERP-System (oder WMS) das übergeordnete System für Bestände. Daher bieten wir einen Dienst (Aktualisieren von Produktbeständen), mit dem das ERP-System/WMS den aktuellen Bestand eines Produkts auf eine bestimmte Menge aktualisieren kann. Manchmal kann das ERP-System/WMS durch Überwachung von Änderungen an Produktionsaufträgen bzw. durch die Verwendung von Webhooks oder eines aktuellen Bestands-Webdienstes (auf Anfrage) über Änderungen am Produktionsbestand informiert werden.

Produkte

Der Produktkatalog wird weniger häufig ebenfalls synchronisiert. In diesem Fall ist das ERP-System immer das übergeordnete System und kann Produkte und Vorgänge mithilfe des Product Creation Service erstellen.


Webhooks

Webhooks sind für Produktionsauftragsereignisse über das Integrationsmenü in der App verfügbar. Um diese Funktion verwenden zu können, fügen Sie den Endpunkt-URL-Callback mit den Benachrichtigungsereignissen hinzu, die Sie erhalten möchten. Wir sind bestrebt, Webhook-Benachrichtigungen zu senden, sobald Ereignisse in unserem System auftreten. Wenn Sie eine große Anzahl an Produktionsaufträgen gleichzeitig geändert haben, erhalten Sie möglicherweise innerhalb kurzer Zeit eine große Menge an Benachrichtigungen. Zurzeit unterstützen wir keine Wiederholungsläufe.

Header

Webhook-Header

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"

Anmerkung:

  • x-prodsmart-topic: Identifizieren des Themas des Webhook

  • x-prodsmart-hmac-sha256: Verwendung zum Überprüfen des Ursprungs des Webhook

  • x-prodsmart-api-version: Version der API, die zum Senden des Webhook verwendet wird

  • x-prodsmart-webhook-uuid: Identifizieren des eindeutigen Webhook

  • x-prodsmart-trigger-at: Zeitpunkt, zu dem der Webhook ausgelöst wurde

So prüfen Sie den Webhook

  • Bevor Sie mit dem Statuscode 200 antworten, müssen Sie sich vergewissern, dass der Webhook von Prodsmart stammt. Diese Überprüfung wird durch die Berechnung einer Signatur erreicht.

  • Jede Webhook-Anforderung enthält einen speziellen Header namens x-prodsmart-hmac-sha1, der im base64-Format kodiert ist. Dieser Header wird sowohl mit dem API-Geheimnis als auch mit den Daten in der Webhook-Anforderung generiert.

  • Um die Authentizität des Webhooks zu überprüfen, müssen Sie selbst eine Signatur berechnen und dabei denselben geheimen API-Schlüssel sowie die bereitgestellten Daten verwenden.

  • Nachdem Sie die berechnete Signatur erstellt haben, vergleichen Sie sie mit dem Wert im x-prodsmart-hmac-sha1-Header der eingehenden Webhook-Anfrage.

  • Wenn die berechnete Signatur dem Wert im x-prodsmart-hmac-sha1-Header entspricht, können Sie sicher sein, dass der Webhook tatsächlich von Prodsmart gesendet wurde, und können mit dem Antworten mit Statuscode 200 fortfahren.

Produktionsaufträge

  • Anforderung (application/json)

    • Methode: POST

    • Körper

{    "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}

Anmerkung: running-status wird gelöscht, wenn der Produktionsauftrag gelöscht wird.

Stempeluhr

  • Anforderung (application/json)

    • Methode: POST

    • Körper

{    "id": 932015,    "date": "2022-05-19T14:35:30.000+01:00",    "notification": "punchClock_created",    "worker": {        "number": 0    },    "entry": 1}

  • Mögliche Werte für entry:

    • 1 – Ein

    • 0 – Aus

  • Mögliche Werte für notification:

    • punchClock_created

    • punchClock_updated

    • punchClock_deleted

Bestandsbewegung für Sendung

Erstellte/aktualisierte Bestandsbewegung für Sendung

  • Anforderung (application/json)

    • Methode: POST

    • Körper

[{    "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"    }}]

  • Mögliche Werte für notification:

    • shipping_inventory_movement_created

    • shipping_inventory_movement_updated

Gelöschte Bestandsbewegung für Sendung

  • Anforderung (application/json)

    • Methode: POST

    • Körper

{  "id": 111}

  • Mögliche Werte für notification:

    • shipping_inventory_movement_deleted

Bestandsbewegung für Eingang

Erstellte/aktualisierte Bestandsbewegung für Eingang

  • Anforderung (application/json)

    • Methode: POST

    • Körper

[{    "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"    }}]

  • Mögliche Werte für notification:

    • receiving_inventory_movement_created

    • receiving_inventory_movement_updated

Gelöschte Bestandsbewegung für Eingang

  • Anforderung (application/json)

    • Methode: POST

    • Körper

{  "id": 111}

  • Mögliche Werte für notification:

    • receiving_inventory_movement_deleted

Interne Bestandsbewegung

Erstellte/aktualisierte interne Bestandsbewegung

  • Anforderung (application/json)

    • Methode: POST

    • Körper

[{    "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"    }}]

  • Mögliche Werte für notification:

    • internal_inventory_movement_created

    • internal_inventory_movement_updated

Gelöschte interne Bestandsbewegung

  • Anforderung (application/json)

    • Methode: POST

    • Körper

{  "id": 111}

  • Mögliche Werte für notification:

    • internal_inventory_movement_deleted

Materialbereitstellungsbewegung

Erstellte/aktualisierte Materialbereitstellung

  • Anforderung (application/json)

    • Methode: POST

    • Körper

[{    "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"    }}]

  • Mögliche Werte für notification:

    • material_staging_created

    • material_staging_updated

Gelöschte Materialbereitstellung

  • Anforderung (application/json)

    • Methode: POST

    • Körper

{  "id": 111}

  • Mögliche Werte für notification:

    • material_staging_deleted

Los

Erstelltes/aktualisiertes Los

  • Anforderung (application/json)

    • Methode: POST

    • Körper

[{    "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"    }}]

  • Mögliche Werte für notification:

    • lot_created

    • lot_updated

Gelöschtes Los

  • Anforderung (application/json)

    • Methode: POST

    • Körper

{  "id": 111}

  • Mögliche Werte für notification:

    • lot_deleted

Ausfallzeit

Erstellte/aktualisierte/gelöschte Ausfallzeit

  • Anforderung (application/json)

    • Methode: POST

    • Körper

{  "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"}

  • Mögliche Werte für notification:

    • downTime_created

    • downTime_updated

    • downTime_deleted

Feed-Kanäle für Änderungen

Wenn Sie Webhooks aus irgendeinem Grund nicht nutzen können, bieten wir Ihnen derzeit als Alternative einen Änderungsstapel an, der Änderungen speichert, die in den letzten 24 Stunden oder seit der letzten Anforderung von Änderungen über den dafür bereitgestellten Webdienst stattgefunden haben. Um diese Funktion zu verwenden, müssen Sie einen Kanal im Integrationsmenü erstellen (https://app.prodsmart.com/admin/integrations). Sie können bis zu drei Kanäle pro Organisation erstellen.

Es gibt sechs Arten von Änderungskanälen:

  • DOWN_TIME

  • PRODUCT

  • PRODUCTION

  • PRODUCTION_ORDER

  • PUNCH_CLOCK

  • STOCK

Abrufen von Änderungen

GET /api/changes/{channel}{?access_token}

Wenn Sie diesen Dienst aufrufen, erhalten Sie eine Liste mit Entitäten, die sich geändert haben, entweder, weil sie erstellt/aktualisiert/gelöscht wurden oder weil sich ihr Status geändert hat. Sie erhalten ein Array mit dem aktuellen Status der Entitäten (von den ältesten Änderungen bis zu den neuesten sortiert), mit maximal 25 Entitäten pro Dienstaufruf. Die Entitäten, die Sie vom Dienst abrufen, werden aus dem Stapel entfernt (bis sie über neue Aktualisierungen verfügen). Wenn keine Änderungen vorhanden sind, gibt der Dienst ein leeres Array ("[]") zurück.

Beispiel-URI

GET /api/changes/channel?access_token=

URI-Parameter

Kanal

Zeichenfolge (erforderlich)

Kanal, auf den zugegriffen werden soll

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

workers

Boolesche Operation (optional)

Arbeiterliste in der Antwort des Produktionsauftragskanals anzeigen

Anfrage

Content-Type: application/json

AUSFALLZEITEN

[    {        "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",    }]

Anmerkung: Das Feld event-type wird nur angezeigt, wenn eine Ausfallzeit gelöscht wird.

PRODUKTIONSAUFTRÄGE

[    {        "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    }]

Anmerkung: Das Feld running-status erhält den gelöschten Wert, wenn ein Produktionsauftrag gelöscht wird.

PRODUKTE

[    {        "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": []    }]

Anmerkung: Das Feld notification erhält den Wert product_deleted, wenn ein Produkt gelöscht wird.

PRODUKTIONSDATENSÄTZE ¶

[    {        "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    }]

Anmerkung: Das Feld status wird nur angezeigt, wenn ein Produktionsdatensatz gelöscht wird.

STEMPELUHREN

[  {      "id": 932015,      "date": "2022-05-19T14:35:30.000+01:00",      "notification": "punchClock_deleted",      "worker": {          "number": 0      },      "entry": 1  }]

Anmerkung: Das Feld notification wird nur angezeigt, wenn ein Stempeluhr-Eintrag gelöscht wird.

BESTAND

[    {        "product-code": "P1",        "stock": 2395.0,        "lot": [            {                "code": "Lot 0086",                "stock": 500.0            }        ]    }]

Lieferant

Lieferantenressourcen der Prodsmart-API

LIEFERANT

Ein einzelnes Lieferantenobjekt

Die Lieferantenressource verfügt über die folgenden Attribute:

  • id (angegeben)

  • code (Zeichenfolge, erforderlich, eindeutig): Lieferantencode

  • name (Zeichenfolge, erforderlich): Lieferantenname

  • number (Zeichenfolge, optional): Umsatzsteuer-Identifikationsnummer des Lieferanten

  • expiration-date (Datum, optional, Format YYYY-MM-DDTHH:MM:SSZ): Datum, an dem der Lieferant ungültig wird

  • addresses (Array, optional)

  • code (Zeichenfolge, erforderlich, eindeutig): Adresscode

  • name (Zeichenfolge, optional): Adressname

  • address (Zeichenfolge, erforderlich): Adresszeile

  • city (Zeichenfolge, optional): Ort der Adresse

  • post-code (Zeichenfolge, optional): Postleitzahl der Adresse

  • state (Zeichenfolge, optional): Staat/Region der Adresse

  • country (Zeichenfolge, erforderlich): Ländercode der Adresse

  • default (Boolesche Operation, optional – Vorgabe ist False): Wenn True, ist dies die Vorgabeadresse des Lieferanten

  • contacts (Array, optional)

  • phone-number (Zeichenfolge, erforderlich, wenn keine E-Mail-Adresse vorhanden ist): Telefonnummer des Kontakts

  • email (Zeichenfolge, erforderlich, wenn keine Telefonnummer vorhanden ist): E-Mail-Adresse des Kontakts

  • name (Zeichenfolge, optional): Kontaktname

  • default (Boolesche Operation, optional – Vorgabe ist False): Wenn True, ist dies der Vorgabekontakt des Lieferanten

Regeln für die Vorgabeadresse/den Vorgabekontakt:

  • Sowohl die Kontakte als auch die Adressen können jeweils nur einen Vorgabekontakt bzw. eine Vorgabeadresse enthalten.

  • Wenn ein Lieferant über Adressen verfügt, muss eine der Adressen die Vorgabeadresse sein.

  • Wenn ein Lieferant über Kontakte verfügt, muss einer der Kontakte der Vorgabekontakt sein.

  • Wenn bei der Erstellung/Aktualisierung eines Lieferanten kein Vorgabekontakt/keine Vorgabeadresse angegeben wird, wird der erste Kontakt/die erste Adresse als Vorgabe verwendet.

Erstellen eines Lieferanten

POST /api/suppliers{?access_token}

Status: Verfügbar

Um einen Lieferanten zu erstellen, geben Sie einen JSON-Hash der Attribute für den neuen Lieferanten an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

POST /api/suppliers?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{ "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 } ] }

Antwort 201

Körper

{ "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 } ] }

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Auflisten von Lieferanten

GET /api/suppliers{?access_token}

Zum Auflisten von Lieferanten. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Dieser Dienst ist paginiert und gibt 25 Lieferanten pro Seite zurück.

Beispiel-URI

GET /api/suppliers?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Seite

numerisch (optional)

Ergebnisseitenindex, beginnend bei 1

id

Nummer (optional)

Lieferanten gefiltert nach ID auflisten

Code

Zeichenfolge (optional)

Lieferanten gefiltert nach Code auflisten

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

[ { "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 } ] } ]

Antwort 400Show

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Abrufen eines Lieferanten

GET /api/suppliers/{id}{?access_token}

Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/suppliers/id?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

id

numerisch (erforderlich)

Lieferanten-ID

Anfrage

Header

Content-Type: application/json

Antwort 201

Körper

{ "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 } ] }

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Aktualisieren eines Lieferanten

PUT /api/suppliers/{id}{?access_token}

Um einen Lieferanten zu aktualisieren, geben Sie einen JSON-Hash der Attribute für den neuen Lieferanten an.

Kontakte

  • Die angegebenen Lieferantenkontakte ersetzen die aktuellen Kontakte.

  • Wenn ein Kontakt mit demselben Namen wie ein vorhandener Kontakt angegeben wird, werden die Werte des Kontakts mit diesem Namen durch die angegebenen Werte ersetzt.

  • Wenn keine Kontakte angegeben sind, werden die vorhandenen Kontakte entfernt.

Adressen

  • Die angegebenen Adressen ersetzen die aktuellen Adressen.

  • Wenn eine Adresse mit demselben Code wie eine vorhandene Adresse angegeben wird, werden die Werte der Adresse mit diesem Code durch die angegebenen Werte ersetzt.

  • Wenn keine Adressen angegeben sind, werden die vorhandenen Adressen entfernt.

  • Wenn eine Adresse verknüpfte Entitäten enthält, schlägt die Anforderung fehl, da die Adresse nicht entfernt werden kann.

Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

PUT /api/suppliers/id?access_token=

URI-Parameter

id

numerisch (erforderlich)

Kunden-ID

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{ "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 } ] }

Antwort 201

Körper

{ "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 } ] }

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Entfernen eines Lieferanten

DELETE /api/suppliers/{id}{?access_token}

Beispiel-URI

DELETE /api/suppliers/id?access_token=

URI-Parameter

id

numerisch (erforderlich)

Lieferanten-ID

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Antwort 204

Körper

Supplier was deleted

Antwort 412

Körper

It's not possible to delete this supplier. It has dependent entities.

Client

Kundenressourcen der Prodsmart-API

CLIENT

Ein einzelnes Kundenobjekt

Die Kundenressource verfügt über die folgenden Attribute:

  • id (angegeben)

  • code (Zeichenfolge, erforderlich, eindeutig): Kundencode

  • name (Zeichenfolge, erforderlich): Kundenname

  • number (Zeichenfolge, optional): Kundennummer

  • phone-number (Zeichenfolge, optional): Telefonnummer des Kunden

  • email (Zeichenfolge, optional): E-Mail-Adresse des Kunden

  • addresses (Array, optional)

  • code (Zeichenfolge, erforderlich, eindeutig): Adresscode

  • name (Zeichenfolge, optional): Adressname

  • address (Zeichenfolge, erforderlich): Adresszeile

  • city (Zeichenfolge, optional): Ort der Adresse

  • post-code (Zeichenfolge, optional): Postleitzahl der Adresse

  • state (Zeichenfolge, optional): Staat/Region der Adresse

  • country (Zeichenfolge, erforderlich): Ländercode der Adresse

  • default (Boolesche Operation, optional – Vorgabe ist False): Wenn True, ist dies die Vorgabeadresse des Kunden

  • contacts (Array, optional)

  • phone-number (Zeichenfolge, erforderlich, wenn keine E-Mail-Adresse vorhanden ist): Telefonnummer des Kontakts

  • email (Zeichenfolge, erforderlich, wenn keine Telefonnummer vorhanden ist): E-Mail-Adresse des Kontakts

  • name (Zeichenfolge, optional): Kontaktname

  • default (Boolesche Operation, optional – Vorgabe ist False): Wenn True, ist dies der Vorgabekontakt des Kunden

Regeln für die Vorgabeadresse/den Vorgabekontakt:

  • Sowohl die Kontakte als auch die Adressen können jeweils nur einen Vorgabekontakt bzw. eine Vorgabeadresse enthalten.

  • Wenn ein Kunde über Adressen verfügt, muss eine der Adressen die Vorgabeadresse sein.

  • Wenn ein Kunde über Kontakte verfügt, muss einer der Kontakte der Vorgabekontakt sein.

  • Wenn bei der Erstellung/Aktualisierung eines Kunden kein Vorgabekontakt/keine Vorgabeadresse angegeben wird, wird der erste Kontakt/die erste Adresse als Vorgabe verwendet.

Erstellen eines Kunden

POST /api/clients{?access_token}

Um einen Kunden zu erstellen, geben Sie einen JSON-Hash der Attribute für den neuen Kunden an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Derzeit ist nur das Speichern eines Kunden möglich. Wenn in Zukunft die Anforderung ein Array und nicht eine einzelne Ressource ist, werden alle Elemente im Array gespeichert.

Beispiel-URI

POST /api/clients?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{ "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 } ] }

Antwort 201

Körper

{ "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 } ] }

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Auflisten von Kunden

GET /api/clients{?access_token}

Zum Auflisten von Kunden. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Dieser Dienst ist paginiert und gibt 25 Kunden pro Seite zurück.

Beispiel-URI

GET /api/clients?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Seite

numerisch (optional)

Ergebnisseitenindex, beginnend bei 1

id

Nummer (optional)

Kunden nach ID gefiltert auflisten

Code

Zeichenfolge (optional)

Kunden nach Code gefiltert auflisten

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

[ { "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 } ] } ]

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Abrufen eines Kunden

GET /api/clients/{id}{?access_token}

Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/clients/id?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

id

numerisch (erforderlich)

Kunden-ID

Anfrage

Header

Content-Type: application/json

Antwort 201

Körper

{ "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 } ] }

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Aktualisieren eines Kunden

PUT /api/clients/{id}{?access_token}

Um einen Kunden zu aktualisieren, geben Sie einen JSON-Hash der Attribute für den neuen Kunden an.

Kontakte

  • Die angegebenen Lieferantenkontakte ersetzen die aktuellen Kontakte.

  • Wenn ein Kontakt mit demselben Namen wie ein vorhandener Kontakt angegeben wird, werden die Werte des Kontakts mit diesem Namen durch die angegebenen Werte ersetzt.

  • Wenn keine Kontakte angegeben sind, werden die vorhandenen Kontakte entfernt.

Adressen

  • Die angegebenen Adressen ersetzen die aktuellen Adressen.

  • Wenn eine Adresse mit demselben Code wie eine vorhandene Adresse angegeben wird, werden die Werte der Adresse mit diesem Code durch die angegebenen Werte ersetzt.

  • Wenn keine Adressen angegeben sind, werden die vorhandenen Adressen entfernt.

  • Wenn eine Adresse verknüpfte Entitäten enthält, schlägt die Anforderung fehl, da die Adresse nicht entfernt werden kann.

Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

PUT /api/clients/id?access_token=

URI-Parameter

id

numerisch (erforderlich)

Kunden-ID

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{  "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    }  ]}

Antwort 201

Körper

{ "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 } ] }

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Entfernen eines Kunden

DELETE /api/clients/{id}{?access_token}

Beispiel-URI

DELETE /api/clients/id?access_token=

URI-Parameter

id

numerisch (erforderlich)

Kunden-ID

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Antwort 204

Körper

Client was deleted

Antwort 412

Körper

It's not possible to delete this client. It has dependent entities.

Kundenauftrag

Kundenauftrags-Ressourcen der Prodsmart-API

KUNDENAUFTRAG

Ein einzelnes Kundenauftragsobjekt. Die Kundenauftrags-Ressource ist eine der wichtigsten Ressourcen der Prodsmart-API.

Sie verfügt über die folgenden Attribute:

  • id (angegeben)

  • code (Zeichenfolge, erforderlich): Kundenauftragscode

  • client (Zeichenfolge, optional): Kundencode

  • observations (Zeichenfolge, optional): Bemerkungen zum Kundenauftrag

  • products (Array, erforderlich, nicht leer)

    • code (Zeichenfolge, erforderlich, eindeutig): Produktcode

    • quantity (double-Wert, erforderlich, >0): Bestellte Menge

    • due-date (Datum, optional, Format YYYY-MM-DDTHH:MM:SSZ) – Datum, an dem die Sendung fällig wird

    • requested-date (Datum, optional, Format YYYY-MM-DDTHH:MM:SSZ): Datum, an dem die Sendung angefordert wurde

    • location (Zeichenfolge, optional): Standort, wenn mehrere Standorte vorhanden sind

    • price (double-Wert, optional): Produktpreis

  • parameters (Zeichenfolge, optional): Enthält ein kundenauftragsspezifisches Attribut

Erstellen eines Kundenauftrags

POST /api/client-order/{?access_token}

Um einen Kundenauftrag zu erstellen, geben Sie einen JSON-Hash der Attribute für den neuen Kundenauftrag an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Derzeit ist nur das Speichern eines Kundenauftrags möglich. Wenn in Zukunft die Anforderung ein Array und nicht eine einzelne Ressource ist, werden alle Elemente im Array gespeichert.

Beispiel-URI

POST /api/client-order/?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{  "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"    }  ]}

Antwort 201

Körper

{  "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"    }  ]}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Auflisten von Kundenaufträgen

GET /api/client-order/{?access_token}

So listen Sie Kundenaufträge auf Mehrere Parameter werden als AND-Bedingung behandelt. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Dieser Dienst ist paginiert und gibt 25 Kundenaufträge pro Seite zurück.

Beispiel-URI

GET /api/client-order/?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Seite

numerisch (optional)

Ergebnisseitenindex, beginnend bei 1

due-date-before

Datum (optional)

Kundenaufträge mit Fälligkeitsdatum vor diesem Datum auflisten

due-date-after

Datum (optional)

Kundenaufträge mit Fälligkeitsdatum nach diesem Datum auflisten

client

Zeichenfolge (optional)

Maschinencode

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

[  {    "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"      }    ]  }]

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Abrufen eines Kundenauftrags

GET /api/client-order/{id}{?access_token}

Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/client-order/id?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

id

numerisch (erforderlich)

Kundenauftrags-ID

Anfrage

Header

Content-Type: application/json

Antwort 201

Körper

{  "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"    }  ]}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Aktualisieren eines Kundenauftrags

PUT /api/client-order/{?access_token}

Um einen Kundenauftrag zu aktualisieren, geben Sie einen JSON-Hash der Attribute für den neuen Kundenauftrag an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

PUT /api/client-order/?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{  "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"    }  ]}

Antwort 201

Körper

{  "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"    }  ]}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Entfernen eines Kundenauftrags

DELETE /api/client-order/{id}{?access_token}

Beispiel-URI

DELETE /api/client-order/id?access_token=

URI-Parameter

id

numerisch (erforderlich)

Kundenauftrags-ID

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Antwort 204

Körper

Client order was deleted

Antwort 409

Körper

Client order already has production orders created or other entities associated, cannot be removed.

Bestellung

Bestellungsressourcen der Prodsmart-API

BESTELLUNG

Ein einzelnes Bestellungsobjekt. Die Bestellungsressource ist eine der wichtigsten Ressourcen der Prodsmart-API.

Sie verfügt über die folgenden Attribute:

  • id (angegeben)

  • code (Zeichenfolge, erforderlich): Bestellcode

  • supplier (Zeichenfolge, optional): Lieferantencode

  • billing-address (Zeichenfolge, optional): Rechnungsadresse

  • observations (Zeichenfolge, optional): Bemerkungen zur Bestellung

  • products (Array, erforderlich, nicht leer)

    • code (Zeichenfolge, erforderlich, eindeutig): Produktcode

    • quantity (double-Wert, erforderlich, >0): Mengenanforderung

    • due-date (Datum, optional, Format YYYY-MM-DDTHH:MM:SSZ): Datum, an dem der Wareneingang fällig wird

    • requested-date (Datum, optional, Format YYYY-MM-DDTHH:MM:SSZ): Datum, an dem der Wareneingang angefordert wurde

    • cost (double-Wert, optional): Produktkosten

    • uom (Zeichenfolge, optional): Maßeinheit des Produkts

  • delivery-address (Zeichenfolge, optional): Lieferadresse für den Wareneingang

  • parameters (Zeichenfolge, optional): Parameter der Bestellung

  • approval-status (Zeichenfolge, optional): Entwurf, In Überprüfung, Genehmigt, Bestätigt, Abgelehnt

Erstellen einer Bestellung

POST /api/purchase-orders/{?access_token}

Um eine Bestellung zu erstellen, geben Sie einen JSON-Hash der Attribute für die neue Bestellung an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Derzeit ist nur das Speichern einer Bestellung möglich. Wenn in Zukunft die Anforderung ein Array und nicht eine einzelne Ressource ist, werden alle Elemente im Array gespeichert.

Beispiel-URI

POST /api/purchase-orders/?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{  "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}

Antwort 201

Header

Content-Type: application/json

Körper

{  "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}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Abrufen einer Bestellung

GET /api/purchase-orders/{id}{?access_token}

Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/purchase-orders/id?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

id

numerisch (erforderlich)

Bestell-ID

Anfrage

Header

Content-Type: application/json

Antwort 201

Körper

{  "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"    }  ]}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Aktualisieren einer Bestellung

PUT/api/purchase-orders/{id}{?access_token}

Um eine Bestellung zu aktualisieren, geben Sie einen JSON-Hash der Attribute für die neue Bestellung an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

PUT /api/purchase-orders/id?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

id

numerisch (erforderlich)

Bestell-ID

Anfrage

Header

Content-Type: application/json

Körper

{  "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"    }  ]}

Antwort 201

Körper

{  "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"    }  ]}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Entfernen einer Bestellung

DELETE /api/purchase-orders/{id}{?access_token}

Beispiel-URI

DELETE /api/purchase-orders/id?access_token=

URI-Parameter

id

numerisch (erforderlich)

Bestell-ID

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Antwort 204

Körper

Purchase order was deleted

Antwort 409

Körper

Purchase order already has production orders created or other entities associated, cannot be removed.

Auflisten von Bestellungen

GET /api/purchase-orders{?access_token}

Zum Auflisten von Bestellungen. Mehrere Parameter werden als AND-Bedingung behandelt. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Dieser Dienst ist paginiert und gibt 25 Kundenaufträge pro Seite zurück.

Beispiel-URI

GET /api/purchase-orders?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Seite

numerisch (optional)

Ergebnisseitenindex, beginnend bei 1

id

Nummer (optional)

Bestellungen nach Bestell-ID gefiltert auflisten

Code

Zeichenfolge (optional)

Bestellungen nach Bestellcode gefiltert auflisten

due-date-before

Datum (optional)

Bestellungen mit Fälligkeitsdatum vor diesem Datum auflisten

due-date-after

Datum (optional)

Bestellungen mit Fälligkeitsdatum nach diesem Datum auflisten

Lieferant

Zeichenfolge (optional)

Bestellungen nach Lieferantencode gefiltert auflisten

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

[  {    "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"      }    ]  }]

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Produktionsauftrag

Produktionsauftragsressourcen der Prodsmart-API

PRODUKTIONSAUFTRAG

Ein einzelnes Produktionsauftragsobjekt. Die Produktionsauftrags-Ressource ist eine der wichtigsten Ressourcen der Prodsmart-API. Sie repräsentiert den Verwaltungsauftrag, eine bestimmte Menge von Produkten während eines definierten Zeitraums durch bestimmte Arbeiter produzieren zu lassen.

Die Produktionsauftrags-Ressource verfügt über die folgenden Attribute:

  • id (angegeben)

  • code (Zeichenfolge, erforderlich): Code des Produktionsauftrags

  • start-date (Datum, erforderlich, Format YYYY-MM-DDTHH:MM:SSZ): Datum, an dem dieser Produktionsauftrag beginnen soll

  • due-date (Datum, erforderlich, Format YYYY-MM-DDTHH:MM:SSZ): Datum, an dem dieser Produktionsauftrag fällig wird

  • products (Array, erforderlich, nicht leer): Bestellte Produkte und Mengen

  • product (Zeichenfolge, erforderlich, eindeutig): Produktcode

  • quantity-ordered (Ganzzahl, erforderlich, >0): Bestellte Menge

  • observations (optional): Anmerkung zu diesem Produkt

  • quantity-produced (Ganzzahl, angegeben, >0): Produzierte Menge

  • description (optional): Beschreibung für diesen Produktionsauftrag

  • shipping (optional): Sendungscode für diese Bestellung

  • workers-assigned (Array, optional):

  • number: Nummer des Arbeiters

  • machines (Array, optional)

  • code: Maschinencode

  • serial-number (optional)

  • description (optional)

  • notes (optional)

  • status (angegeben): Geplant (vor start_date und Vollständigkeit = 0), Planmäßig (vor end_date und Vollständigkeit < 100 %), Verspätet (nach end_date und Vollständigkeit < 100 %), Abgeschlossen (Vollständigkeit >= 100 %)

  • running-status (angegeben): Nicht gestartet (keine Produktionen), Gestartet (mit Produktionen), Geschlossen (manuell geschlossen oder durch Fertigstellung geschlossen), Archiviert (manuell archiviert)

Die Status-ID wird von der Prodsmart-API zum Zeitpunkt der Erstellung zugewiesen.

Abrufen eines Produktionsauftrags

GET /api/production-orders/{id}{?access_token}

Um einen Produktionsauftrag abzurufen, führen Sie einfach eine GET-Anforderung mit der ID des Produktionsauftrags aus. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/production-orders/id?access_token=

URI-Parameter

id

numerisch (erforderlich)

ID des Produktionsauftrags

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

workers

Boolesche Operation (optional)

Arbeiterliste bei Antwort anzeigen

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

{  "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}

Aktualisieren/Ersetzen eines Produktionsauftrags

PUT /api/production-orders/{id}{?access_token}

Um einen Produktionsauftrag zu aktualisieren, führen Sie einfach eine PUT-Anforderung mit der ID des Produktionsauftrags aus. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

PUT /api/production-orders/id?access_token=

URI-Parameter

id

numerisch (erforderlich)

ID des Produktionsauftrags

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

workers

Boolesche Operation (optional)

Arbeiterliste bei Antwort anzeigen

Anfrage

Header

Content-Type: application/json

Körper

{  "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}

Antwort 200

Körper

{  "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}

Entfernen eines Produktionsauftrags

DELETE /api/production-orders/{id}{?access_token}

Beispiel-URI

DELETE /api/production-orders/id?access_token=

URI-Parameter

id

numerisch (erforderlich)

ID des Produktionsauftrags

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Antwort 204

Körper

Production order was deleted

Erstellen eines Produktionsauftrags

POST /api/production-orders/{?access_token}

Um einen Produktionsauftrag zu erstellen, geben Sie einen JSON-Hash der Attribute für den neuen Produktionsauftrag an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Derzeit ist nur das Speichern eines Produktionsauftrags möglich. Wenn in Zukunft die Anforderung ein Array und nicht eine einzelne Ressource ist, werden alle Elemente im Array gespeichert.

Beispiel-URI

POST /api/production-orders/?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

workers

Boolesche Operation (optional)

Arbeiterliste bei Antwort anzeigen

Anfrage

Header

Content-Type: application/json

Körper

{  "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}

Antwort 201

Körper

{    "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}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Auflisten von Produktionsaufträgen

GET /api/production-orders/{?access_token}

Zum Auflisten von Produktionsaufträgen. Mehrere Parameter werden als AND-Bedingung behandelt. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Dieser Dienst ist paginiert und gibt 25 Produktionsaufträge pro Seite zurück.

Beispiel-URI

GET /api/production-orders/?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Seite

numerisch (optional)

Ergebnisseitenindex, beginnend bei 1

start-date-before

Datum (optional)

Produktionsaufträge mit Startdatum vor diesem Datum auflisten

start-date-after

Datum (optional)

Produktionsaufträge mit Startdatum nach diesem Datum auflisten

due-date-before

Datum (optional)

Produktionsaufträge mit Fälligkeitsdatum vor diesem Datum auflisten

due-date-after

Datum (optional)

Produktionsaufträge mit Fälligkeitsdatum nach diesem Datum auflisten

running-status

Zeichenfolge (optional)

Nicht gestartet, Gestartet, Geschlossen, Archiviert

Aktiv

Boolesche Operation (optional)

Nur aktive (True) oder nicht aktive (False) Produktionsaufträge auflisten

product

Zeichenfolge (optional)

Produktcode

machine

Zeichenfolge (optional)

Maschinencode

workers

Boolesche Operation (optional)

Arbeiterliste bei Antwort anzeigen

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

[  {    "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  }]

Benachrichtigung bei Problemen mit Produktionsaufträgen

POST /api/production-orders/{id}/notify{?access_token}

Dienst, der eine Kurznachricht im Feed veröffentlicht und eine Nachricht zum Produktionsauftrag hinzufügt.

  • short-message (Zeichenfolge, erforderlich): Im Feed veröffentlichte Nachricht, max. Länge 140 Zeichen

  • message (Zeichenfolge, optional): Nachricht, die dem Abschnitt Anmerkungen im Produktionsauftrag hinzugefügt wird

Beispiel-URI

POST /api/production-orders/id/notify?access_token=

URI-Parameter

id

numerisch (erforderlich)

ID des Produktionsauftrags

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{  "short-message": "example",  "message": "complete message "}

Antwort 200

Aktivieren eines Produktionsauftrags

POST /api/production-orders/{id}/activate{?access_token}

Dienst, der den Produktionsauftrag aktiviert.

Beispiel-URI

POST /api/production-orders/id/activate?access_token=

URI-Parameter

id

numerisch (erforderlich)

ID des Produktionsauftrags

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{}

Antwort 200

Antwort 204

Körper

Production Order was already active

Antwort 405

Körper

Production Order was closed or archived and cannot be activated

Produkte

Produktressourcen der Prodsmart-API

PRODUKT

Ein einzelnes Produktobjekt. Die Produktressource ist eine der wichtigsten Ressourcen der Prodsmart-API. Sie stellt die Produkte in einer Fabrik dar und enthält die erforderlichen Vorgänge, die für die Produktion durchgeführt werden müssen. Mit dieser Methode werden neue Produkte und deren Vorgänge erstellt. Kann auch verwendet werden

Die Produktressource verfügt über die folgenden Attribute:

  • code (Zeichenfolge, erforderlich): Produktcode

  • name (Zeichenfolge, erforderlich): Produktname

  • section (Zeichenfolge, optional)

  • families (Array, optional)

  • operations (Array, optional): Vorgänge zur Herstellung des Produkts

    • code (Zeichenfolge, erforderlich): Vorgangscode

    • name (Zeichenfolge, erforderlich): Vorgangsname

    • waste (Array, optional)

    • task-durations (Array, optional, max: 1)

      • duration (Zeit, optional, z. B. Format 10H59m59s): Die theoretische durchschnittliche Ausführungszeit für diesen Vorgang

      • duration-customer (Zeit, optional, z. B. Format 10H59m59s): Die im Budget festgelegte Zeit

      • ratio-quantity (double-Wert, optional, Vorgabe: 1.0): Das in jeder Instanz dieses Vorgangs erzeugte Volumen

    • times-per-product (Ganzzahl, optional, Vorgabe: 1): Die Anzahl der Male, die dieser Vorgang ausgeführt werden muss, um eine Produkteinheit abzuschließen

    • custom-fields (Array, optional, muss im System vorhanden sein): Benutzerdefinierte Felder, die dem Vorgang hinzugefügt werden sollen

      • name (Zeichenfolge, erforderlich): Der Name des benutzerdefinierten Felds, bereits im System erstellt

    • machines (Array, optional, muss im System vorhanden sein): Maschinen, die zum Ausführen des Vorgangs verwendet werden können

      • code (Zeichenfolge, erforderlich): Der Maschinencode, bereits im System erstellt

    • disabled (Boolesche Operation, optional): Vorgang deaktivieren

    • optional (Boolesche Operation, optional): Vorgang als Optional festlegen

    • recovery (Boolesche Operation, optional): Vorgang als Wiederherstellung festlegen

    • no-time (Boolesche Operation, optional): Produktionszeiten nicht registrieren

    • keine Menge (Boolesche Operation, optional): Produktionsmenge nicht registrieren

    • as-team (Boolesche Operation, optional): Als Team auszuführender Vorgang

    • max-waste-threshold (double-Wert, optional): Max. zulässiger Ausschussanteil

Felder, die in der Anforderung nicht vorhanden sind, werden auf die Vorgabewerte festgelegt. Wenn Sie diese Methode für vorhandene Produkte/Vorgänge verwenden, werden nicht vorhandene Felder als Löschungen betrachtet.

Abrufen eines Produkts

GET /api/products/{code}{?access_token}

Um ein Produkt abzurufen, führen Sie einfach eine GET-Anforderung mit dem Produktcode aus. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/products/code?access_token=

URI-Parameter

Code

Zeichenfolge (erforderlich)

Produktcode

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

{  "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}

Antwort 404

Körper

If product with the provided code doesn't exist.

Erstellen eines Produkts

POST /api/products{?access_token}

Um ein Produkt zu erstellen, geben Sie einen JSON-Hash der Attribute für das neue Produkt und die zugehörigen Vorgänge an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Es können mehrere Vorgänge gleichzeitig erstellt werden.

Beispiel-URI

POST /api/products?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{  "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}

Antwort 201

Körper

{  "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}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Aktualisieren eines Produkts

PUT /api/products/{code}{?access_token}

Um ein Produkt zu aktualisieren, geben Sie einen Code und einen JSON-Hash der Attribute für das vorhandene Produkt und die zugehörigen Vorgänge an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Derzeit können Sie nur ein Produkt speichern, es können jedoch mehrere Vorgänge gleichzeitig erstellt werden.

Beispiel-URI

PUT /api/products/code?access_token=

URI-Parameter

Code

Zeichenfolge (erforderlich)

Produktcode

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{  "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}

Antwort 201

Körper

{  "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}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Löschen eines Produkts

DELETE /api/products/{code}{?access_token}

Um ein Produkt zu löschen, geben Sie den Produktcode an.

Beispiel-URI

DELETE /api/products/code?access_token=

URI-Parameter

Code

Zeichenfolge (erforderlich)

Produktcode

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

Content-Type: application/json

Antwort 204

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Auflisten von Produkten

GET /api/products{?access_token}

Zum Auflisten von Produkten und den zugehörigen Vorgängen. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/products?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Seite

numerisch (optional)

Ergebnisseitenindex, beginnend bei 1

product-family-code

Zeichenfolge (optional)

Produkte auflisten, die zur angegebenen Produktfamilie gehören

modification-date

Datum (optional)

Produkte auflisten, die nach dem angegebenen Datum im Backoffice geändert wurden

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

{  "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}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

PRODUKTSTÜCKLISTE

Die Produktstücklisten-Ressource legt die Materialien fest, die zur Herstellung eines bestimmten Produkts verwendet werden. Die Stückliste verfügt über die folgenden Attribute:

  • product-code: Hauptprodukt

  • bom (Array, erforderlich)

    • product-code (Zeichenfolge, erforderlich): Produktcode für Komponente/Verbrauch

    • quantity (double-Wert, erforderlich): Menge

    • operation-code (Zeichenfolge, optional): Vorgangscode, in dem das im Produktcode definierte Material verbraucht wird. Wenn leer, findet der Verbrauch beim ersten Vorgang des Herstellungsprozesses für dieses Produkt statt.

Aktualisieren der Produktstückliste

POST /api/bom{?access_token}

Um die Stückliste eines Produkts zu aktualisieren, geben Sie einen JSON-Hash der Attribute für das neue Produkt und die zugehörigen Vorgänge an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

POST /api/bom?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{  "product-code": "bicycle",  "bom": [    {      "product-code": "wheel",      "quantity": 2,      "operation-code": "assemble"    },    {      "product-code": "seat",      "quantity": 1,      "operation-code": "assemble"    }  ]}

Antwort 201

{  "product-code": "bicycle",  "bom": [    {      "product-code": "wheel",      "quantity": 2,      "operation-code": "assemble"    },    {      "product-code": "seat",      "quantity": 1,      "operation-code": "assemble"    }  ]}

Antwort 404

Körper

Main product not found

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

PRODUKTBESTAND

Die Bestandsressource legt den Bestand fest, der für ein bestimmtes Produkt verfügbar ist.

  • product-code (Zeichenfolge, erforderlich)

  • stock (double-Wert, erforderlich)

  • date (Datum, optional): Datum der Bestandsaufnahme

Aktualisieren des Produktbestands

POST /api/stock{?access_token}

Um den Bestand eines Produkts zu aktualisieren, geben Sie einen JSON-Hash der Attribute für den aktuellen Bestand an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

POST /api/stock?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{  "product-code": "bicycle",  "stock": 200.5,  "date": "2023-08-16T17:15:15Z"}

Antwort 201

Körper

Request successful

Antwort 404

Körper

Product not found

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Produktfamilien

Produktressourcen der Prodsmart-API

PRODUKTFAMILIE

Das Produktfamilien-Objekt stellt die Familie(n) dar, zu der/denen ein Produkt gehört.

Die Produktfamilien-Ressource verfügt über die folgenden Attribute:

  • code (Zeichenfolge, erforderlich): Code der Produktfamilie

  • name (Zeichenfolge, erforderlich): Name der Produktfamilie

Erstellen einer Produktfamilie

POST /api/product-families{?access_token}

Zum Erstellen einer oder mehrerer Produktfamilien. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

POST /api/product-families?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{  "product-families": [    {      "code": "FAM 1",      "name": "Family 1"    },    {      "code": "FAM 2",      "name": "Family 2"    }  ]}

Antwort 201

Körper

[  {    "code": "FAM 1",    "name": "Family 1"  },  {    "code": "FAM 2",    "name": "Family 2"  }]

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Löschen einer Produktfamilie

DELETE /api/product-family/{code}{?access_token}

Um eine Produktfamilie zu löschen, stellen Sie den Code der Produktfamilie bereit.

Beispiel-URI

DELETE /api/product-family/code?access_token=

URI-Parameter

Code

Zeichenfolge (erforderlich)

Produktcode

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

Content-Type: application/json

Antwort 204

Körper

Product Family was deleted

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Auflisten von Produktfamilien

GET /api/product-families{?access_token}

Zum Auflisten von Produktfamilien. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/product-families?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Seite

numerisch (optional)

Ergebnisseitenindex, beginnend bei 1

Anfrage

Header

Content-Type: application/json

Antwort 201

Körper

[  {    "code": "FAM 1",    "name": "Family 1"  },  {    "code": "FAM 2",    "name": "Family 2"  }]

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Maschinen

Produktionsressourcen der Prodsmart-API

ZÄHLER

Aktualisieren des Zählers

POST /api/machines/{machine_code}/counter{?access_token}

Um den aktuellen Zähler in der Maschine zu aktualisieren, senden Sie einfach die folgende Anforderung. Zur Vereinfachung der Maschinenverbindung können Sie entweder das Zugriffs-Token verwenden oder API-Anmeldedaten mit Basisauthentifizierung über den Authentifizierungs-Header senden. Prodsmart aktualisiert automatisch die Produktion, die vom Arbeiter gestartet wurde, der bei dieser Maschine angemeldet ist. Sowohl die Mengenanzahl als auch die Ausschussmenge müssen inkrementell sein (d. h. immer größer als die zuvor gesendeten Mengen).

Beispiel-URI

POST /api/machines/machine_code/counter?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

machine_code

Zeichenfolge (erforderlich)

In der Prodsmart-Plattform definierter Maschinencode

Anfrage

Header

Content-Type: application/json

Körper

{  "count": 500,  "waste": [    {      "code": "Waste1",      "quantity": 20    }  ],  "parameters": [    {      "name": "parameter1",      "value": "value1"    },    {      "name": "parameter2",      "value": "2022-12-19T00:00:00Z"    },    {      "name": "parameter3",      "value": 1    }  ]}

Antwort 200

Körper

Returns the new value for the machine's counter.

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

PARAMETER

Aktualisieren von Parametern

POST /api/machines/{machine_code}/parameters{?access_token}

Um einen Maschinenparameter zu aktualisieren, senden Sie einfach die folgende Anforderung. Zur Vereinfachung der Maschinenverbindung können Sie entweder das Zugriffs-Token verwenden oder API-Anmeldedaten mit Basisauthentifizierung über den Authentifizierungs-Header senden. Wenn diese Parameter übergeben werden und ein Produktionsdatensatz vorliegt

Beispiel-URI

POST /api/machines/machine_code/parameters?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

machine_code

Zeichenfolge (erforderlich)

In der Prodsmart-Plattform definierter Maschinencode

Anfrage

Header

Content-Type: application/json

Körper

{  "parameters": [    {      "code": "temperature",      "value": 25    },    {      "code": "valid",      "value": "yes"    }  ]}

Antwort 200

AUSFALLZEIT

Aktualisieren der Ausfallzeit

POST /api/machines/{machine_code}/startstop{?access_token}

Um den aktuellen Status der Maschine zu aktualisieren, senden Sie einfach die folgende Anforderung. Zur Vereinfachung der Maschinenverbindung können Sie entweder das Zugriffs-Token verwenden oder API-Anmeldedaten mit Basisauthentifizierung über den Authentifizierungs-Header senden. Prodsmart registriert automatisch eine Ausfallzeit oder beendet diese gemäß den erhaltenen Informationen. Senden Sie 0 bei einer angehaltenen Maschine und 1, wenn sie eingeschaltet ist. Geben Sie den Typ der Ausfallzeit an.

Um einen Maschinenstatus zu aktualisieren, geben Sie die folgenden Attribute an:

  • type (Zeichenfolge, erforderlich, muss ein bereits der Maschine zugewiesener Ausfallzeittyp sein): Der Typ der Ausfallzeit

  • running (Nummer, erforderlich, 0 oder 1): Wurde die Maschine angehalten (0) oder wird sie ausgeführt (1)?

Beispiel-URI

POST /api/machines/machine_code/startstop?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

machine_code

Zeichenfolge (erforderlich)

In der Prodsmart-Plattform definierter Maschinencode

Anfrage

Header

Content-Type: application/json

Körper

{  "type": "Maintenance",  "running": 0}

Antwort 200

Produktion

Produktionsressourcen der Prodsmart-API

PRODUKTION

Ein einzelnes Produktionsobjekt. Die Produktionsressource ist die zentrale Ressource der Prodsmart-API. Sie stellt die Arbeit eines einzelnen Arbeiters in einer Position während eines Zeitraums dar.

Die Produktionsressource verfügt über die folgenden Attribute:

  • id

  • start-time (Datum, erforderlich, Format YYYY-MM-DDTHH:MM:SSZ): Startzeit der Produktion

  • end-time (Datum, erforderlich, Format YYYY-MM-DDTHH:MM:SSZ): Endzeit der Produktion

  • work-time (Dauer, angegeben, Format 00H00m00s): Produktionsarbeitszeit (innerhalb der geplanten Zeit/Stempeluhr-Einträge und ohne Ausfallzeiten)

  • production-order (optional): Produktionsauftrag, für den diese Produktion durchgeführt wurde

    • code (Zeichenfolge, erforderlich): Code des Produktionsauftrags

    • id (Zeichenfolge, erforderlich)

  • operation (erforderlich): Aufgabe, die in dieser Produktion ausgeführt wurde

    • code (Zeichenfolge, erforderlich, eindeutig): Aufgabencode

    • product (erforderlich): das Material, das der Arbeiter in dieser Position bearbeitet

  • quantity (Ganzzahl, erforderlich, >0): In dieser Produktion hergestellte Menge

  • worker (erforderlich): Person, die Aufgaben ausführt

    • number (lang, erforderlich, eindeutig): Arbeiternummer

  • produced-waste (Array, optional): Fehlerhafte Materialausgabe bei einem Vorgang

    • quantity (numerisch, erforderlich): Ausschuss-Code

      • waste: Typ des fehlerhaften Materials

      • code (Zeichenfolge, erforderlich, eindeutig): Ausschuss-Code

      • description (Zeichenfolge, erforderlich): Ausschuss-Beschreibung

      • flaw (Zeichenfolge, erforderlich): Ausschuss-Typ

      • quantity (Ganzzahl, erforderlich): Menge des produzierten Ausschusses

Die Status-ID wird von der Prodsmart-API zum Zeitpunkt der Erstellung zugewiesen.

Aktualisieren einer Produktion

PUT /api/productions/{id}{?access_token}

Um eine Produktion zu aktualisieren, geben Sie einen Code und einen JSON-Hash der Attribute für die vorhandene Produktion an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Derzeit können Sie nur ein Produkt speichern, es können jedoch mehrere Vorgänge gleichzeitig erstellt werden.

Beispiel-URI

PUT /api/productions/id?access_token=

URI-Parameter

id

numerisch (erforderlich)

Produktions-ID

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{  "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}

Antwort 200

Körper

{  "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}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Löschen einer Produktion

DELETE /api/productions/{id}{?access_token}

Um eine Produktion zu löschen, geben Sie eine Produktions-ID an.

Beispiel-URI

DELETE /api/productions/id?access_token=

URI-Parameter

id

numerisch (erforderlich)

Produktions-ID

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

Content-Type: application/json

Antwort 201

Körper

{  "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}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body

Auflisten von Produktionen

GET /api/productions{?access_token}

Zum Auflisten von Produktionen. Mehrere Parameter werden als AND-Bedingung behandelt. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Dieser Dienst ist paginiert und gibt 25 Produktionen pro Seite zurück.

Beispiel-URI

GET /api/productions?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Seite

numerisch (optional)

Ergebnisseitenindex, beginnend bei 1

production-order-id

numerisch (optional)

Produktionen mit diesem production-order auflisten

production-order-code

Zeichenfolge (optional)

Produktionen mit diesem/diesen Produktionsauftrag/-aufträgen auflisten

worker

numerisch (optional)

Produktionen mit diesem Arbeiter auflisten (Arbeiternummer)

start-time-before

Datum (optional)

Produktionen mit Startzeit vor diesem Datum auflisten

start-time-after

Datum (optional)

Produktionen mit Startzeit nach diesem Datum auflisten

end-time-before

Datum (optional)

Produktionen mit Endzeit vor diesem Datum auflisten

end-time-after

Datum (optional)

Produktionen mit Endzeit nach diesem Datum auflisten

start-time

Datum (optional)

Produktionen auflisten, die nach dieser Startzeit (start-time) ausgeführt wurden (keine Kombination mit -before oder -after)

checked-out

Boolesche Operation (optional)

Ausgecheckte Produktionen auflisten

worker-name

Boolesche Operation (optional)

Namen und Nummer des Arbeiters abrufen, nicht nur die Nummer des Arbeiters

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

[  {    "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  }]

Ausfallzeit

Ausfallzeit-Ressourcen der Prodsmart-API

AUSFALLZEITEN

Auflisten von Ausfallzeiten

GET /api/downtimes{?access_token}

Zum Auflisten der Ausfallzeiten. Mehrere Parameter werden als AND-Bedingung behandelt. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/downtimes?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Seite

numerisch (optional)

Ergebnisseitenindex, beginnend bei 1

start-time-before

Datum (optional)

Ausfallzeiten mit Startzeit vor diesem Datum auflisten

start-time-after

Datum (optional)

Ausfallzeiten für Bestellungen mit Startzeit nach diesem Datum auflisten

end-time-before

Datum (optional)

Ausfallzeiten mit Endzeit vor diesem Datum auflisten

end-time-after

Datum (optional)

Ausfallzeiten mit Endzeit nach diesem Datum auflisten

machine

numerisch (optional)

Auf dieser Maschine aufgetretene Ausfallzeiten auflisten

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

[  {    "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"  }]

Stempeluhr

Stempeluhr-Ressourcen der Prodsmart-API

STEMPELUHR

Webhooks sind für Stempeluhrereignisse über das Integrationsmenü in der App verfügbar. Um diese Funktion verwenden zu können, fügen Sie den Endpunkt-URL-Callback mit den Benachrichtigungsereignissen hinzu, die Sie erhalten möchten. Wir sind bestrebt, Webhook-Benachrichtigungen zu senden, sobald Ereignisse in unserem System auftreten. Zurzeit unterstützen wir keine Wiederholungsläufe.

Auflisten von Stempeluhr-Einträgen

GET /api/punchclocks{?access_token}

Zum Auflisten von Stempeluhr-Einträgen. Mehrere Parameter werden als AND-Bedingung behandelt. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/punchclocks?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Seite

numerisch (optional)

Ergebnisseitenindex, beginnend bei 1

date-before

Datum (optional)

Stempeluhr-Einträge mit Datum vor diesem Datum auflisten

date-after

Datum (optional)

Stempeluhr-Einträge mit Datum nach diesem Datum auflisten

worker

numerisch (optional)

Stempeluhr-Einträge für diesen Arbeiter auflisten

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

[{    "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')

Bestandsbewegung

Bestandsbewegungs-Ressourcen der Prodsmart-API

BESTANDSBEWEGUNG

Ein einzelnes Bestandsbewegungs-Objekt. Die Bestandsbewegungs-Ressource ist eine der wichtigsten Ressourcen der Prodsmart-API.

Sie verfügt über die folgenden Attribute:

  • id (angegeben)

  • product (Zeichenfolge, erforderlich): Produktcode

  • date-time (Datum, optional, YYYY-MM-DDTHH:MM:SSZ): Datum, an dem die Bestandsbewegung erstellt wurde

  • quantity (double-Wert, erforderlich): Menge der Bestandsbewegungen

  • type (Zeichenfolge, erforderlich): Typ der Bestandsbewegung: Eingang, Ausgang, Verbrauch, Produktion

  • lot (Zeichenfolge, optional): Für die Bestandsbewegung zu verwendendes Los

  • total-cost (BigDecimal, optional): Gesamtkosten der Bestandsbewegung für die Menge

  • warehouse-location (Zeichenfolge, optional): Standortcode des Lagers

  • warehouse (Zeichenfolge, optional): Lagercode

  • location (Zeichenfolge, optional): Standort, wenn mehrere Standorte vorhanden sind

  • comment (Zeichenfolge, optional): Kommentar zur Bestandsbewegung

Abrufen einer Bestandsbewegung

GET /api/inventory-movements/{id}{?access_token}

Um eine Bestandsbewegung abzurufen, führen Sie einfach eine GET-Anforderung mit der ID der Bestandsbewegung aus. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/inventory-movements/id?access_token=

URI-Parameter

id

numerisch (erforderlich)

Bestandsbewegungs-ID

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

{  "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"    }  }}

Erstellen einer Bestandsbewegung

POST /api/inventory-movements/{?access_token}

Um eine Bestandsbewegung zu erstellen, geben Sie einen JSON-Hash der Attribute für die neue Bestandsbewegung an. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Derzeit ist nur das Speichern einer Bestandsbewegung möglich. Wenn in Zukunft die Anforderung ein Array und nicht eine einzelne Ressource ist, werden alle Elemente im Array gespeichert.

Beispiel-URI

POST /api/inventory-movements/?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{  "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"}

Antwort 200

Körper

{  "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"    }  }}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body.

Aktualisieren von Bestandsbewegungen

PUT /api/inventory-movements/{id}{?access_token}

Um eine Bestandsbewegung zu aktualisieren, geben Sie einen JSON-Hash mit den Attributen an, die Sie in der Bestandsbewegung aktualisieren möchten (alle Attribute sind optional). Diese Aktion erfordert ein access_token mit productions_write scope.

Beispiel-URI

PUT /api/inventory-movements/id?access_token=

URI-Parameter

id

numeric (erforderlich)

Bestandsbewegungs-ID

access_token

string (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Körper

{ "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" }

Löschen von Bestandsbewegungen

DELETE /api/inventory-movement/{id}{?access_token}

Um eine Bestandsbewegung zu löschen, geben Sie eine Bestandsbewegungs-ID an.

Beispiel-URI

DELETE /api/inventory-movement/id?access_token=

URI-Parameter

id

numeric (erforderlich)

Bestandsbewegungs-ID

access_token

string (erforderlich)

Prodsmart-API-Zugriffs-Token

Anfrage

Header

Content-Type: application/json

Antwort 204

Antwort 400

It's not possible to delete this inventory-movement.

Auflisten von Bestandsbewegungen

GET /api/inventory-movements/{?access_token}

Zum Auflisten von Bestandsbewegungen. Mehrere Parameter werden als AND-Bedingung behandelt. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich. Dieser Dienst ist paginiert und gibt 25 Bestandsbewegungen pro Seite zurück.

Beispiel-URI

GET /api/inventory-movements/?access_token=

URI-Parameter

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

Seite

numerisch (optional)

Ergebnisseitenindex, beginnend bei 1

product-code

Zeichenfolge (optional)

Produktcode

type

Zeichenfolge (optional)

Typ der Bestandsbewegung: Eingang, Ausgang, Verbrauch, Produktion

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

[  {    "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"      }    }  }]

Bestand

Bestandsressourcen der Prodsmart-API

Abrufen von Produktbeständen

GET /api/stock/{code}{?access_token}

Um einen Produktbestand abzurufen, führen Sie einfach eine GET-Anforderung mit dem Code des Produkts aus. Mehrere Parameter werden als AND-Bedingung behandelt. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/stock/code?access_token=

URI-Parameter

Code

Zeichenfolge (erforderlich)

Produktcode

access_token

Zeichenfolge (erforderlich)

Prodsmart-API-Zugriffs-Token

lot

Zeichenfolge (optional)

Los-Code und Bestandsmenge für das/die Produktlos(e) abrufen

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

{"product-code": "Example","stock": 35,"lot": [     {      "code": "A",      "stock": 10    },    {      "code": "B",      "stock": 5    }}

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body.

Berichte

Berichtsressourcen der Prodsmart-API

Arbeitszeit der Arbeiter

Arbeitszeit der Arbeiter GET/api/reports/worker-labor-time{?access_token}

Um einen Bericht abzurufen, führen Sie einfach eine GET-Anforderung mit Zeitintervall zum Extrahieren des Berichts aus. Sie können Arbeiter- und Bereichsparameter hinzufügen, um den Bericht zu filtern. Außerdem können Sie einige Flags angeben, um den Berichtsinhalt anzupassen. Der Vorgabewert aller Flags lautet False. Für diese Aktion ist ein Zugriffs-Token mit Schreibzugriff für Produktionen erforderlich.

Beispiel-URI

GET /api/reports/worker-labor-time?access_token=

URI-Parameter

start-time

Zeichenfolge (erforderlich)

Bericht bis zum Datum nach diesem Datum erstellen (einschließlich)

end-time

Zeichenfolge (erforderlich)

Bericht bis zum Datum vor diesem Datum erstellen (einschließlich)

access_token

Zeichenfolge (erforderlich)

Zugriffs-Token für die Prodsmart-API

worker-number

Zeichenfolge (optional)

Arbeiternummer zum Filtern des Berichts angeben

Schnitt

Zeichenfolge (optional)

Bereichsnamen angeben. Alle Arbeiter aus diesem Bereich werden in den Bericht einbezogen.

show-rework

Boolesche Operation (optional)

Neues Feld mit Nachbearbeitungsvorgängen in den Bericht einbeziehen

show-weekend

Boolesche Operation (optional)

Wochenendtage in Daten einbeziehen

only-punch-clock

Boolesche Operation (optional)

Nur die Anwesenheitszeit mit Stempeluhr-Einträgen berücksichtigen

Sonstige

numerisch (optional)

Ergebnisseitenindex, beginnend bei 1

Anfrage

Header

Content-Type: application/json

Antwort 200

Körper

[  {    "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"  }]

Antwort 400

Körper

If there's a problem with the request, the problem found will be reported on the Response Body.

Antwort 429

Körper

Another request is ongoing for this endpoint. Please wait until the current request finishes before doing another.

Zugriffsautorisierung und -kontrolle

Zugriff und Kontrolle des Prodsmart-Authentifizierungstoken

AUTORISIERUNG

Die Autorisierungsressource steht für eine Autorisierung, die dem Unternehmen erteilt wird. Sie können nur auf Ihre eigene Autorisierung zugreifen. Die verwendete Authentifizierung ist die Basisauthentifizierung, wobei sich der Authentifizierungs-Header im Formular <base64 kodierter Wert von API_KEY:API_SECRET> befindet. Um den API-Schlüssel und den geheimen API-Schlüssel zu erhalten, melden Sie sich bei Prodsmart an und bearbeiten Ihr Benutzerkonto. (Anmerkung: Sie müssen über die Rolle des Administrators verfügen, um diese zu erhalten.) Die Autorisierungsressource verfügt über die folgenden Attribute:

  • Token

  • scopes

Wobei token für ein Token und scopes für ein Array der Bereiche steht, für die die angegebene Autorisierung gewährt wurde. Derzeit ist der einzige verfügbare Bereich productions_write.

Abrufen der Autorisierung

GET /api/authorization

Verwenden Sie GET, um ein vorhandenes Zugriffs-Token abzurufen. Wenn noch kein Token vorhanden ist, kann dieses mit der POST-Methode generiert werden.

Beispiel-URI

GET /api/authorization

Anfrage

Header

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Antwort 200

Header

Content-Type: application/jsonLink: <http:/api.prodsmart.com/api/authorizations>;rel="self"

Körper

{    "_links": {        "self": { "href": "/api/authorizations" },    },    "scopes": [        "productions_write"    ],    "token": "abc123"}

Erstellen einer Autorisierung

POST /api/authorization

Verwenden Sie POST, um ein neues Zugriffs-Token zu generieren.

Beispiel-URI

POST /api/authorization

Anfrage

Header

Content-Type: application/jsonAuthorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Körper

{ "scopes": [ "productions_write" ] }

Antwort 201

Header

Content-Type: application/jsonLink: <http:/api.prodsmart.com/api/authorizations>;rel="self"

Körper

{    "_links": {        "self": { "href": "/api/authorizations" },    },    "scopes": [        "productions_write"    ],    "token": "abc123"}

Entfernen einer Autorisierung

DELETE /api/authorization

Beispiel-URI

DELETE /api/authorization

Anfrage

Header

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Antwort 204

Hat dies deine Frage beantwortet?