Przejdź do głównej zawartości

Dokumentacja interfejsu API

David Andrade avatar
Napisane przez David Andrade
Zaktualizowano ponad 2 tygodnie temu

Punkt końcowy podstawowego identyfikatora URI interfejsu API

Punkt końcowy wszystkich wywołań interfejsu API to: https://app.prodsmart.com/

Uwierzytelnianie

Interfejs API programu Prodsmart używa prostego tokenu autoryzacji. Najpierw należy utworzyć nowy token (lub pozyskać istniejący). Po pobraniu tokenu można go użyć do uzyskania dostępu do innych zasobów mieszczących się w jego zakresie.

Token uwierzytelniania zachowuje ważność przez 2 godziny, potem trzeba zamówić nowy token z poświadczeniami interfejsu API.

Typy nośników

Żądania z użyciem treści wiadomości używają zwykłego kodu JSON do ustawiania lub aktualizowania stanów zasobów.

Stany błędu

Używane są wspólne kody stanu odpowiedzi HTTP.

Nieprawidłowa wartość JSON

W przypadku otrzymania odpowiedzi „Invalid JSON” (Nieprawidłowa wartość JSON) należy zweryfikować ładunek json używany w JSONLint.

Limit ilości

Liczba żądań interfejsu API jest ograniczona do 120 żądań na minutę na firmę. Po przekroczeniu limitu kolejne żądania będą uzyskiwać odpowiedź o kodzie stanu HTTP 429 — Too Many Requests (Zbyt wiele żądań).

Ponadto w nagłówku zostanie wyświetlona liczba sekund oczekiwania przed ponowieniem próby wykonania żądania:

Retry-After: <delay-seconds>

Najlepsze praktyki w przypadku ograniczenia ilości:

  • Należy rozłożyć żądania równomiernie w czasie, aby uniknąć skokowego wzrostu użycia, który może skutkować ograniczeniem przesyłania odpowiedzi.

  • Należy opracować logikę, która wykorzystuje informacje określone przez wartość Retry-After, aby ustalić, kiedy żądanie może zostać ponowione.

  • Należy sprawdzić, czy nie ma działających równolegle niepotrzebnych integracji, ponieważ wszystkie te integrację będą zliczane do limitu.

Format daty

Format pól daty interfejsu API jest zgodny z reprezentacją ISO 8601:

  • RRRR-MM-DDTgg:mm:ssZ

W tym formacie litera T symbolizuje wymagany separator, natomiast Z jest znacznikiem strefy czasowej, jeśli jest wymagana. Jeśli oznaczenie strefy nie jest używane, wówczas strefa czasowa zastosowana do daty jest taka sama jak strefa czasowa ustawiona w Prodsmart. Z oznacza zerową strefę czasową, ponieważ jest ona odsunięta o 0.

Przykład użycia:

  • Jeśli strefa czasowa jest o godzinę przed UTC, oznaczenie strefy powinno być mieć postać „+01:00”, „+0100” lub po prostu „+01”.

  • Jeśli strefa czasowa firmy jest ustawiona na -05:00, a format daty wysłania jest następujący: 2020-07-20T09:15:15Z, data w programie Prodsmart będzie wyświetlana jako: 07/20/2020 - 04:15:15

  • Jeśli wysłany format to: 2020-07-20T09:15:15, data będzie wyświetlana w programie Prodsmart jako: 07/20/2020 — 09:15:15 (ze strefą czasową -05:00), co oznacza, że jeśli użytkownik ma strefę czasową ustawioną na -04:00, będzie ona widoczna jako: 07/20/2020 — 10:15:15


Wspólne integracje ERP

Typowe scenariusze integracji ERP dotyczą głównie synchronizacji zamówień produkcji, zapasów i katalogu produktów.

Zamówienia produkcji

Gdy zamówienie produkcji zostaje utworzone po stronie ERP, system ERP powinien wysłać dane zamówienia produkcji w formacie JSON do interfejsu API Prodsmat, korzystając z usługi tworzenia zamówień produkcji. Jeśli wymagane jest zaktualizowanie strony ERP, gdy zamówienie produkcji zostanie utworzone lub zaktualizowane w programie Prodsmart, istnieją dwie możliwości: można skontaktować się z ERP z zewnątrz, i w tym przypadku możliwe jest skonfigurowanie elementów webhook w programie Prodsmart, a elementy webhook będą wywoływane podczas tworzenia, aktualizacji i usuwania zamówień produkcji po stronie Prodsmart. Jeśli nie można skontaktować się z ERP z zewnątrz, system ERP musi aktywować usługę listy zamówień produkcji, aby wykryć zmiany.

Zapasy

Zwykle ERP (lub WMS) jest głównym systemem zapasów, dlatego udostępniamy usługę (aktualizacji zapasów produktu), która umożliwia ERP/WMS aktualizację aktualnego zapasu produktu do określonej ilości. Czasami system ERP/WMS może być powiadamiany o zmianach zapasów produkcji albo poprzez obserwowanie zmian w zamówieniach produkcji, albo za pomocą elementów webhook lub usługi sieci Web aktualnych zapasów (na żądanie).

Produkty

Nie dzieje się to tak często, ale synchronizowany jest również katalog produktów. W tym przypadku system ERP jest zawsze systemem głównym i może tworzyć produkty i operacje za pomocą usługi tworzenia produktu.


Elementy webhook

Elementy webhook są dostępne do zdarzeń zamówień produkcji z menu integracji w aplikacji. Aby użyć tej funkcji, dodaj wywołanie zwrotne adresu URL punktu końcowego ze zdarzeniami powiadamiania, których chcesz nasłuchiwać. Staramy się wysyłać powiadomienia webhook niezwłocznie po wystąpieniu zdarzeń w naszym systemie. W przypadku jednoczesnej zmiany dużej liczby zamówień produkcji, może dojść do pojawienia się dużej liczby powiadomień w krótkim czasie. Obecnie nie obsługujemy ponownych prób.

Nagłówki

Nagłówki webhook

x-prodsmart-topic: "productionOrder/create"x-prodsmart-hmac-sha256: "c938fe31379c0d89b37468e1cae9e3aab2d56834"x-prodsmart-api-version: "1"x-prodsmart-webhook-uuid: "91cb972d-b476-4936-947c-4be471b9da5b"x-prodsmart-triggered-at: "2023-08-29T20:39:46.142Z"

Uwaga:

  • x-prodsmart-topic — pozwala określić temat elementu webhook

  • x-prodsmart-hmac-sha256 — służy do sprawdzania pochodzenia elementu webhook

  • x-prodsmart-api-version — wersja interfejsu API służąca do wysyłania elementu webhook

  • x-prodsmart-webhook-uuid — pozwala na identyfikację unikatowego elementu webhook

  • x-prodsmart-Tript-at — czas uruchomienia elementu webhook

Jak zweryfikować element webhook?

  • Przed udzieleniem odpowiedzi z kodem stanu 200 kluczowe jest potwierdzenie, że element webhook pochodzi z programu Prodsmart. Weryfikacja ta odbywa się przez obliczenie podpisu.

  • Każde element webhook zawiera określony nagłówek o nazwie x-prodsmart-hmac-sha1, który jest zakodowany w formacie base64. Nagłówek jest generowany przy użyciu klucza tajnego interfejsu API i danych zawartych w żądaniu webhook.

  • Aby sprawdzić autentyczność elementu webhook, należy samodzielnie obliczyć podpis, używając tego samego klucza tajnego interfejsu API i podanych danych.

  • Po uzyskaniu obliczonego podpisu należy porównać go z wartością znajdującą się w nagłówku x-prodsmart-hmac-sha1 przychodzącego żądania webhook.

  • Jeśli obliczony podpis odpowiada wartości w nagłówku x-prodsmart-hmac-sha1, można mieć pewność, że element webhook został wysłany z programu Prodsmart i można na niego odpowiedzieć kodem stanu 200.

Zamówienia produkcji

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

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

Uwaga: stan uruchomienia zostanie usunięty po usunięciu zamówienia produkcji.

Zegar czasu pracy

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

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

  • Możliwe wartości wejścia:

    • 1 — wejście

    • 0 — wyjście

  • Możliwe wartości powiadomienia:

    • punchClock_created

    • punchClock_updated

    • punchClock_deleted

Ruch magazynowy związany z wysyłką

Utworzono/zaktualizowano ruch magazynowy związany z wysyłką

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

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

  • Możliwe wartości powiadomienia:

    • shipping_inventory_movement_created

    • shipping_inventory_movement_updated

Usunięto ruch magazynowy związany z wysyłką

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

{  "id": 111}

  • Możliwe wartości powiadomienia:

    • shipping_inventory_movement_deleted

Ruch magazynowy związany z odbiorem

Utworzono/zaktualizowano ruch magazynowy związany z odbiorem

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

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

  • Możliwe wartości powiadomienia:

    • receiving_inventory_movement_created

    • receiving_inventory_movement_updated

Usunięto ruch magazynowy związany z odbiorem

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

{  "id": 111}

  • Możliwe wartości powiadomienia:

    • receiving_inventory_movement_deleted

Wewnętrzny ruch magazynowy

Utworzono/zaktualizowano wewnętrzny ruch magazynowy

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

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

  • Możliwe wartości powiadomienia:

    • internal_inventory_movement_created

    • internal_inventory_movement_updated

Usunięto wewnętrzny ruch magazynowy

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

{  "id": 111}

  • Możliwe wartości powiadomienia:

    • internal_inventory_movement_deleted

Ruch przenoszenia materiałów

Utworzono/zaktualizowano przenoszenie materiałów

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

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

  • Możliwe wartości powiadomienia:

    • material_staging_created

    • material_staging_updated

Usunięto przenoszenie materiałów

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

{  "id": 111}

  • Możliwe wartości powiadomienia:

    • material_staging_deleted

Partia

Utworzono/uaktualniono partię

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

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

  • Możliwe wartości powiadomienia:

    • lot_created

    • lot_updated

Usunięto partię

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

{  "id": 111}

  • Możliwe wartości powiadomienia:

    • lot_deleted

Przestój

Utworzono/zaktualizowano/usunięto przestój

  • Żądanie (aplikacja/json)

    • Metoda: POST

    • Tekst główny

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

  • Możliwe wartości powiadomienia:

    • downTime_created

    • downTime_updated

    • downTime_deleted

Kanały źródła danych zmian

Jeśli z jakiegoś powodu nie można wykorzystać elementów webhook, obecnie oferujemy alternatywę w postaci stosu zmian, który będzie przechowywać zmiany wprowadzone w ciągu ostatnich 24 godzin lub od ostatniego żądania zmian za pośrednictwem usługi sieciowej, którą udostępniamy. Aby użyć tej funkcji, należy utworzyć kanał w menu integracji (https://app.prodsmart.com/admin/integrations). Można utworzyć do 3 kanałów w każdej organizacji.

Istnieje 6 typów kanałów zmian:

  • DOWN_TIME

  • PRODUCT

  • PRODUCTION

  • PRODUCTION_ORDER

  • PUNCH_CLOCK

  • STOCK

Pobieranie zmian

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

Podczas wywoływania tej usługi zostanie wyświetlona lista elementów, które zostały zmienione, ponieważ zostały utworzone/zaktualizowane/usunięte lub ich stan uległ zmianie. Pojawi się szyk z bieżącym stanem elementów (uporządkowaną od najstarszych zmian do najnowszych), maksymalnie 25 na każde wywołanie usługi. Elementy pobierane z usługi są usuwane ze stosu (dopóki nie zostaną zaktualizowane). Jeśli nie wystąpią żadne zmiany, usługa zwróci pusty szyk („[]”).

Przykładowy identyfikator URI

GET /api/changes/channel?access_token=

Parametry URI

channel

ciąg (wymagane)

kanał, do którego ma zostać uzyskany dostęp

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

workers

wartość logiczna (opcjonalne)

pokaż listę pracowników w odpowiedzi kanału zamówień produkcji

Żądanie

Content-Type: application/json

PRZESTOJE

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

Uwaga: pole typu zdarzenia będzie widoczne tylko wtedy, gdy zostanie usunięty czas przestoju.

ZAMÓWIENIA PRODUKCJI

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

Uwaga: po usunięciu zamówienia produkcji w polu stanu uruchomienia zostanie usunięta wartość.

PRODUKTY

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

Uwaga: w polu powiadomienia zostanie wyświetlona wartość product_remove, gdy produkt zostanie usunięty.

REKORDY PRODUKCJI

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

Uwaga: pole stanu będzie obecne tylko wtedy, gdy rekord produkcji zostanie usunięty.

ZEGARY CZASU PRACY

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

Uwaga: pole powiadomienia będzie dostępne tylko wtedy, gdy zostanie usunięty wpis zegara czasu pracy.

ZAPASY

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

Dostawca

Zasoby dostawcy interfejsu API programu Prodsmart.

DOSTAWCA

Pojedynczy obiekt dostawcy.

Zasób dostawcy ma następujące atrybuty:

  • id (dostarczone)

  • code (ciąg, wymagane, niepowtarzalne) — kod dostawcy

  • name (ciąg, wymagane) — nazwa dostawcy

  • number (ciąg, opcjonalne) — numer VAT dostawcy

  • expiration-date (data, opcjonalne, format RRRR-MM-DDTGG:MM:SSZ) — data wygaśnięcia dostawcy

  • addresses (tablica, opcjonalne)

  • code (ciąg, wymagane, niepowtarzalne) — kod adresu

  • name (ciąg, opcjonalne) — nazwa adresu

  • address (ciąg, wymagane) — wiersz adresu

  • city (ciąg, opcjonalne) — miejscowość w adresie

  • post-code (ciąg, opcjonalne) — kod pocztowy w adresie

  • state (ciąg, opcjonalne) — stan/region w adresie

  • country (ciąg, wymagane) — kod kraju w adresie

  • default (wartość logiczna, opcjonalne — wartość domyślna to false) — wartość true oznacza, że jest to domyślny adres dostawcy

  • contacts (tablica, opcjonalne)

  • phone-number (ciąg, wymagane, jeśli nie ma adresu e-mail) — numer telefonu kontaktowego

  • email (ciąg, wymagane, jeśli nie ma numeru telefonu) — kontaktowy adres e-mail

  • name (ciąg, opcjonalne) — nazwa kontaktu

  • default (wartość logiczna, opcjonalne — wartość domyślna to false) — wartość true oznacza, że jest to domyślny adres kontaktu

Zasady dotyczące domyślnych adresów/kontaktów:

  • Zarówno kontakty, jak i adresy mogą mieć tylko jeden domyślny adres lub tylko jeden kontakt

  • Jeśli dostawca ma adresy, jeden z nich musi być adresem domyślnym

  • Jeśli dostawca ma kontakty, jeden z nich musi być kontaktem domyślnym

  • Podczas tworzenia/aktualizacji dostawcy, jeśli nie podano domyślnego adresu/kontaktu, domyślnym będzie pierwszy kontakt/adres

Tworzenie dostawcy

POST /api/suppliers{?access_token}

Stan: dostępny

Aby utworzyć dostawcę, podaj skrót JSON atrybutów nowego dostawcy. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

POST /api/suppliers?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Wyświetlanie listy dostawców

GET /api/suppliers{?access_token}

Pozwala wyświetlić listę dostawców. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Ta usługa jest stronicowana i zwraca 25 dostawców na stronę.

Przykładowy identyfikator URI

GET /api/suppliers?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

page

wartość numeryczna (opcjonalne)

indeks strony wyników, począwszy od 1

id

liczba (opcjonalne)

lista dostawców filtrowanych według identyfikatora

code

ciąg (opcjonalne)

lista dostawców filtrowanych według kodu

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Odpowiedź 400 Wyświetlanie

Tekst główny

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

Pobieranie dostawcy

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

Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

GET /api/suppliers/id?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

id

wartość numeryczna (wymagane)

Identyfikator dostawcy

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Aktualizacja dostawcy

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

Aby zaktualizować dostawcę, podaj skrót JSON atrybutów nowego dostawcy.

Kontakty

  • Dane kontakty dostawcy zastąpią bieżące kontakty.

  • Jeśli podany jest kontakt o takiej samej nazwie co istniejący kontakt, jego wartości zostaną zastąpione wartościami podanymi przez kontakt o tej nazwie.

  • Jeśli nie podano żadnych kontaktów, istniejące kontakty zostaną usunięte.

Adresy

  • Podane adresy zastąpią bieżące adresy.

  • Jeśli podany jest adres o tym samym kodzie co istniejący adres, jego wartości zostaną zastąpione wartościami podanymi przez adres o tym kodzie.

  • Jeśli nie podano żadnych adresów, istniejące adresy zostaną usunięte.

  • Jeśli adres ma skojarzone elementy, żądanie nie powiedzie się, ponieważ nie można usunąć adresu.

Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

PUT /api/suppliers/id?access_token=

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator klienta

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Usuwanie dostawcy

Usuń /api/suppliers/{id}{?access_token}

Przykładowy identyfikator URI

Usuń /api/suppliers/id?access_token=

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator dostawcy

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 204

Tekst główny

Supplier was deleted

Odpowiedź 412

Tekst główny

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

Klient

Zasoby klienta interfejsu API programu Prodsmart.

KLIENT

Pojedynczy obiekt klienta.

Zasób klienta ma następujące atrybuty:

  • id (dostarczone)

  • code (ciąg, wymagane, niepowtarzalny) — kod klienta

  • name (ciąg, wymagane) — nazwa klienta

  • number (ciąg, opcjonalne) — numer klienta

  • phone-number (ciąg, opcjonalne) — numer telefonu klienta

  • email (ciąg, opcjonalne) — adres e-mail klienta

  • addresses (tablica, opcjonalne)

  • code (ciąg, wymagane, niepowtarzalne) — kod adresu

  • name (ciąg, opcjonalne) — nazwa adresu

  • address (ciąg, wymagane) — wiersz adresu

  • city (ciąg, opcjonalne) — miejscowość w adresie

  • post-code (ciąg, opcjonalne) — kod pocztowy w adresie

  • state (ciąg, opcjonalne) — stan/region w adresie

  • country (ciąg, wymagane) — kod kraju w adresie

  • default (wartość logiczna, opcjonalne — wartość domyślna to false) — wartość true oznacza, że jest to domyślny adres klienta

  • contacts (tablica, opcjonalne)

  • phone-number (ciąg, wymagane, jeśli nie ma adresu e-mail) — numer telefonu kontaktowego

  • email (ciąg, wymagane, jeśli nie ma numeru telefonu) — kontaktowy adres e-mail

  • name (ciąg, opcjonalne) — nazwa kontaktu

  • default (wartość logiczna, opcjonalne — wartość domyślna to false) — wartość true oznacza, że jest to domyślny kontakt klienta

Zasady dotyczące domyślnych adresów/kontaktów:

  • Zarówno kontakty, jak i adresy mogą mieć tylko jeden domyślny adres lub tylko jeden kontakt

  • Jeśli klient ma adresy, jeden z nich musi być adresem domyślnym

  • Jeśli klient ma kontakty, jeden z nich musi być kontaktem domyślnym

  • Podczas tworzenia/aktualizacji klienta, jeśli nie podano domyślnego adresu/kontaktu, domyślnym będzie pierwszy kontakt/adres

Tworzenie klienta

POST /api/clients{?access_token}

Aby utworzyć klienta, podaj skrót JSON atrybutów dla nowego klienta. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Obecnie możliwe jest zapisanie tylko jednego klienta. Jeśli żądanie będzie w przyszłości szykiem zamiast jednym zasobem, wszystkie elementy w szyku zostaną zapisane.

Przykładowy identyfikator URI

POST /api/clients?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Wyświetlanie listy klientów

GET /api/clients{?access_token}

Pozwala wyświetlić listę klientów. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Ta usługa jest stronicowana i zwraca 25 klientów na stronę.

Przykładowy identyfikator URI

GET /api/clients?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

page

wartość numeryczna (opcjonalne)

indeks strony wyników, począwszy od 1

id

liczba (opcjonalne)

wyświetl listę klientów odfiltrowanych według identyfikatora

code

ciąg (opcjonalne)

wyświetl listę klientów odfiltrowanych według kodu

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Pobieranie klienta

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

Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

GET /api/clients/id?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

id

wartość numeryczna (wymagane)

Identyfikator klienta

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Aktualizowanie klienta

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

Aby zaktualizować klienta, podaj skrót JSON atrybutów dla nowego klienta.

Kontakty

  • Dane kontakty dostawcy zastąpią bieżące kontakty.

  • Jeśli podany jest kontakt o takiej samej nazwie co istniejący kontakt, jego wartości zostaną zastąpione wartościami podanymi przez kontakt o tej nazwie.

  • Jeśli nie podano żadnych kontaktów, istniejące kontakty zostaną usunięte.

Adresy

  • Podane adresy zastąpią bieżące adresy.

  • Jeśli podany jest adres o tym samym kodzie co istniejący adres, jego wartości zostaną zastąpione wartościami podanymi przez adres o tym kodzie.

  • Jeśli nie podano żadnych adresów, istniejące adresy zostaną usunięte.

  • Jeśli adres ma skojarzone elementy, żądanie nie powiedzie się, ponieważ nie można usunąć adresu.

Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

PUT /api/clients/id?access_token=

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator klienta

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Usuwanie klienta

Usuń /api/clients/{id}{?access_token}

Przykładowy identyfikator URI

Usuń /api/clients/id?access_token=

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator klienta.

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 204

Tekst główny

Client was deleted

Odpowiedź 412

Tekst główny

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

Zamówienie sprzedaży

Zasoby zamówienia klienta interfejsu API Prodsmart.

ZAMÓWIENIE SPRZEDAŻY

Pojedynczy obiekt zamówienia sprzedaży. Zasób zamówienia sprzedaży jest jednym z najważniejszych zasobów interfejsu API programu Prodsmart.

Zasób zamówienia sprzedaży ma następujące atrybuty:

  • id (dostarczone)

  • code (ciąg, wymagane) — kod zamówienia sprzedaży

  • client (ciąg, opcjonalne) — kod klienta

  • observations (ciąg, opcjonalne) — obserwacje dotyczące zamówienia sprzedaży

  • products (tablica, wymagane, niepuste)

    • code (ciąg, wymagane, niepowtarzalne) — kod produktu

    • quantity (double, wymagane, >0) — ilość zamówiona

    • due-date (data, opcjonalne, format RRRR-MM-DDTGG:MM:SSZ) — termin wysyłki

    • requested-date (data, opcjonalne, format RRRR-MM-DDTGG:MM:SSZ) — żądana data wysyłki

    • location (ciąg, opcjonalne) — lokalizacja, w przypadku wielu lokalizacji

    • price (double, opcjonalne) — cena produktu

  • parameters (ciąg, opcjonalne) — zawiera atrybut specyficzny dla zamówienia sprzedaży

Tworzenie zamówienia sprzedaży

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

Aby utworzyć zamówienie sprzedaży, należy podać skrót JSON atrybutów dla nowego zamówienia sprzedaży. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Obecnie możliwe jest zapisanie tylko jednego zamówienia sprzedaży. Jeśli żądanie będzie w przyszłości szykiem zamiast jednym zasobem, wszystkie elementy w szyku zostaną zapisane.

Przykładowy identyfikator URI

POST /api/client-order/?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Wyświetlenie listy zamówień sprzedaży

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

Aby wyświetlić listę zamówień sprzedaży. Wiele parametrów będzie traktowanych jako warunek AND. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Ta usługa jest stronicowana i zwraca 25 zamówień sprzedaży na stronę.

Przykładowy identyfikator URI

GET /api/client-order/?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

page

wartość numeryczna (opcjonalne)

indeks strony wyników, począwszy od 1

due-date-before

data (opcjonalne)

wyświetl listę zamówień sprzedaży z terminem przed tą

due-date-after

data (opcjonalne)

wyświetl listę zamówień sprzedaży z terminem po tej

client

ciąg (opcjonalne)

kod maszyny

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Pobieranie zamówienia sprzedaży

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

Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

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

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

id

wartość numeryczna (wymagane)

Identyfikator zamówienia sprzedaży

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Aktualizowanie zamówienia sprzedaży

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

Aby zaktualizować zamówienie sprzedaży, należy podać skrót JSON atrybutów dla nowego zamówienia sprzedaży. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

PUT /api/client-order/?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Usuwanie zamówienia sprzedaży

Usuń /api/client-order/{id}{?access_token}

Przykładowy identyfikator URI

Usuń /api/client-order/id?access_token=

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator zamówienia sprzedaży.

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 204

Tekst główny

Client order was deleted

Odpowiedź 409

Tekst główny

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

Zamówienie zakupu

Zasoby zamówienia zakupu interfejsu API programu Prodsmart.

ZAMÓWIENIE ZAKUPU

Pojedynczy obiekt zamówienia zakupu. Zasób zamówienia zakupu jest jednym z najważniejszych zasobów interfejsu API programu Prodsmart.

Zasób zamówienia zakupu ma następujące atrybuty:

  • id (dostarczone)

  • code (ciąg, wymagane) — kod zamówienia zakupu

  • supplier (ciąg, opcjonalne) — kod dostawcy

  • billing-address (ciąg, opcjonalne) — adres rozliczeniowy

  • observations (ciąg, opcjonalne) — obserwacje dotyczące zamówień zakupu

  • products (tablica, wymagane, niepuste)

    • code (ciąg, wymagane, niepowtarzalne) — kod produktu

    • quantity (double, wymagane, >0) — żądana ilość

    • due-date (data, opcjonalne, format RRRR-MM-DDTGG:MM:SSZ) — termin odbioru

    • requested-date (data, opcjonalne, format RRRR-MM-DDTGG:MM:SSZ) — żądana data odbioru

    • cost (double, opcjonalne) — koszt produktu

    • uom (ciąg, opcjonalne) — jednostka miary produktu

  • delivery-address (ciąg, opcjonalne) — adres dostawy odbioru

  • parameters (ciąg, opcjonalne) — parametry zamówienia zakupu

  • approval-status (ciąg, opcjonalne) — wersja robocza, trwa przegląd, zatwierdzenie, potwierdzenie, odrzucenie

Tworzenie zamówienia zakupu

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

Aby utworzyć zamówienie zakupu, należy podać skrót JSON atrybutów nowego zamówienia zakupu. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Obecnie możliwe jest zapisanie tylko jednego zamówienia zakupu. Jeśli żądanie będzie w przyszłości szykiem zamiast jednym zasobem, wszystkie elementy w szyku zostaną zapisane.

Przykładowy identyfikator URI

POST /api/purchase-orders/?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Pobieranie zamówienia zakupu

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

Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

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

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

id

wartość numeryczna (wymagane)

Identyfikator zamówienia zakupu

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Aktualizowanie zamówienia zakupu

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

Aby zaktualizować zamówienie zakupu, należy podać skrót JSON atrybutów dla nowego zamówienia zakupu. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

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

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

id

wartość numeryczna (wymagane)

Identyfikator zamówienia zakupu

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Usuwanie zamówienia zakupu

Usuń /api/purchase-orders/{id}{?access_token}

Przykładowy identyfikator URI

Usuń /api/purchase-orders/id?access_token=

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator zamówienia zakupu

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 204

Tekst główny

Purchase order was deleted

Odpowiedź 409

Tekst główny

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

Wyświetlanie listy zamówień zakupu

GET /api/purchase-orders{?access_token}

Pozwala wyświetlić listę zamówień zakupu. Wiele parametrów będzie traktowanych jako warunek AND. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Ta usługa jest stronicowana i zwraca 25 zamówień sprzedaży na stronę.

Przykładowy identyfikator URI

GET /api/purchase-orders?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

page

wartość numeryczna (opcjonalne)

indeks strony wyników, począwszy od 1

id

liczba (opcjonalne)

wyświetl listę zamówień zakupu odfiltrowaną według identyfikatora zamówienia zakupu

code

ciąg (opcjonalne)

wyświetl listę zamówień zakupu odfiltrowaną według kodu zamówienia zakupu

due-date-before

data (opcjonalne)

wyświetl listę zamówień zakupu z terminem wcześniejszym

due-date-after

data (opcjonalne)

wyświetl listę zamówień zakupu z terminem późniejszym

supplier

ciąg (opcjonalne)

wyświetl listę zamówień zakupu odfiltrowaną według kodu dostawcy

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Zamówienie produkcji

Zasoby zamówienia produkcji interfejsu API programu Prodsmart.

ZAMÓWIENIE PRODUKCJI

Jeden obiekt zamówienia produkcji. Zasób zamówienia produkcji jest jednym z najważniejszych zasobów interfejsu API programu Prodsmart. Reprezentuje on zamówienie zarządzania w celu wytworzenia przez zdefiniowanych pracowników z góry określonej liczby produktów w określonym okresie.

Zasób zamówienia produkcji ma następujące atrybuty:

  • id (dostarczone)

  • code (ciąg, wymagane) — kod zamówienia produkcji

  • start-date (data, wymagane, format RRRR-MM-DDTGG:MM:SSZ) — data zaplanowanego rozpoczęcia tego zamówienia produkcji

  • due-date (data, wymagane, format RRRR-MM-DDTGG:MM:SSZ) — data wykonania tego zamówienia produkcji

  • products (tablica, wymagane, niepuste) — produkty i zamówione ilości

  • product (ciąg, wymagane, niepowtarzalne) — kod produktu

  • quantity-ordered (liczba całkowita, wymagane, >0) — ilość zamówiona

  • observations (opcjonalne) — uwaga na temat tego produktu

  • quantity-produced (liczba całkowita, dostarczona, >0) — ilość wyprodukowana

  • description (opcjonalne) — opis tego zamówienia produkcji

  • shipping (opcjonalne) — kod wysyłkowy dla tego zamówienia

  • workers-assigned (tablica, opcjonalne)

  • number — numer pracownika

  • machines (tablica, opcjonalne)

  • code — kod maszyny

  • serial-number (opcjonalne)

  • description (opcjonalne)

  • notes (opcjonalne)

  • status (dostarczone) — scheduled (przed start_date i completeness = 0), onschedule (przed end_date i completeness < 100%), delayed (po end_date i completeness < 100%), completed (completeness >= 100%)

  • running-status (dostarczone) — notstarted (brak produkcji), started (z produkcjami), closed (ręcznie zamknięte lub zamknięte poprzez ukończenie), archived (ręcznie zarchiwizowane)

Identyfikator stanu jest przypisywany przez interfejs API programu Prodsmart w momencie tworzenia.

Pobieranie zamówienia produkcji

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

Aby pobrać zamówienie produkcji, wystarczy wykonać żądanie GET z identyfikatorem zamówienia produkcji. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

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

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator zamówienia produkcji

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

workers

wartość logiczna (opcjonalne)

pokaż listę pracowników w odpowiedzi

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Aktualizowanie/zastąpienie zamówienia produkcji

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

Aby zaktualizować zamówienie produkcji, wystarczy wykonać żądanie PUT z identyfikatorem zamówienia produkcji. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

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

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator zamówienia produkcji

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

workers

wartość logiczna (opcjonalne)

pokaż listę pracowników w odpowiedzi

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 200

Tekst główny

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

Usuwanie zamówienia produkcji

Usuń /api/production-orders/{id}{?access_token}

Przykładowy identyfikator URI

Usuń /api/production-orders/id?access_token=

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator zamówienia produkcji

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 204

Tekst główny

Production order was deleted

Tworzenie zamówienia produkcji

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

Aby utworzyć zamówienie produkcji, należy podać skrót JSON atrybutów nowego zamówienia produkcji. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Obecnie możliwe jest zapisanie tylko jednego zamówienia produkcji. Jeśli żądanie będzie w przyszłości szykiem zamiast jednym zasobem, wszystkie elementy w szyku zostaną zapisane.

Przykładowy identyfikator URI

POST /api/production-orders/?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

workers

wartość logiczna (opcjonalne)

pokaż listę pracowników w odpowiedzi

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Wyświetl listę zamówień produkcji

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

Pozwala wyświetlić listę zamówień produkcji. Wiele parametrów będzie traktowanych jako warunek AND. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Ta usługa jest stronicowana i zwraca 25 ZP na stronę.

Przykładowy identyfikator URI

GET /api/production-orders/?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

page

wartość numeryczna (opcjonalne)

indeks strony wyników, począwszy od 1

start-date-before

data (opcjonalne)

wyświetl listę zamówień produkcji z wcześniejszą datą rozpoczęcia

start-date-after

data (opcjonalne)

wyświetl listę zamówień produkcji z późniejszą datą rozpoczęcia

due-date-before

data (opcjonalne)

wyświetl listę zamówień produkcji z wcześniejszym terminem

due-date-after

data (opcjonalne)

wyświetl listę zamówień produkcji z późniejszym terminem

running-status

ciąg (opcjonalne)

notstarted, started, closed, archived

aktywny

wartość logiczna (opcjonalne)

wyświetl tylko aktywne (true) lub nieaktywne (false) zamówienia produkcji

product

ciąg (opcjonalne)

kod produktu

maszyna

ciąg (opcjonalne)

kod maszyny

workers

wartość logiczna (opcjonalne)

pokaż listę pracowników w odpowiedzi

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Powiadamianie o problemie dotyczącym zamówienia produkcji

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

Usługa, która wysyła krótki komunikat w źródle i dodaje komunikat na temat zamówienia produkcji.

  • short-message (ciąg, wymagane) — komunikat zamieszczony w kanale informacyjnym, maks. długość 140 znaków

  • message (ciąg, opcjonalne) — komunikat dodany do sekcji uwagi w ZP

Przykładowy identyfikator URI

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

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator zamówienia produkcji

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 200

Aktywowanie zamówienia produkcji

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

Usługa aktywująca zamówienie produkcji.

Przykładowy identyfikator URI

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

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator zamówienia produkcji

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

{}

Odpowiedź 200

Odpowiedź 204

Tekst główny

Production Order was already active

Odpowiedź 405

Tekst główny

Production Order was closed or archived and cannot be activated

Produkty

Zasoby produktu interfejsu API programu Prodsmart.

PRODUCT

Pojedynczy obiekt produktu. Zasób produktu jest jednym z najważniejszych zasobów interfejsu API programu Prodsmart. Reprezentuje on produkty w zakładzie produkcyjnym i zawiera operacje niezbędne do ich produkcji. Ta metoda umożliwia utworzenie nowych produktów i ich operacji. Może być również użyta

Zasób produktu ma następujące atrybuty:

  • code (ciąg, wymagane) — kod produktu

  • name (ciąg, wymagane) — nazwa produktu

  • section (ciąg, opcjonalne)

  • families (tablica, opcjonalne)

  • operations (tablica, opcjonalne) — operacje służące do tworzenia produktu

    • code (ciąg, wymagane) — kod operacji

    • name (ciąg, wymagane) — nazwa operacji

    • waste (tablica, opcjonalne)

    • task-durations (tablica, opcjonalne, maks.:1)

      • duration (czas, opcjonalne, np. format „10H59m59s”) — teoretyczny średni czas wykonania tej operacji

      • duration-customer (czas, opcjonalne, np. format „10H59m59s”) — czas określony w budżecie

      • ratio-quantity (double, opcjonalne, wartość domyślna: 1.0) — objętość wytworzona w każdym wystąpieniu tej operacji

    • times-per-product (liczba całkowita, opcjonalne, wartość domyślna: 1) — ile razy należy wykonać tę operację, aby ukończyć jednostkę produktu

    • custom-fields (tablica, opcjonalne, musi istnieć w systemie) — pola niestandardowe, które mają zostać dodane do operacji

      • name (ciąg, wymagane) — nazwa pola niestandardowego, już utworzona w systemie

    • machines (tablica, opcjonalne, musi istnieć w systemie) — maszyny, których można użyć do wykonania operacji

      • code (ciąg, wymagane) — kod maszyny, już utworzony w systemie

    • disabled (logiczne, opcjonalne) — wyłącz operację

    • optional (wartość logiczna, opcjonalne) — ustaw operację jako opcjonalną

    • recovery (logiczne, opcjonalne) — ustaw operację jako odzyskiwanie

    • no-time (wartość logiczna, opcjonalne) — nie rejestruj czasu produkcji

    • no-quantity (wartość logiczna, opcjonalne) — nie rejestruj ilości w produkcji

    • as-team (operacja logiczna, opcjonalne) — operacja do wykonania jako zespół

    • max-waste-threshold (double, opcjonalne) — maksymalny dopuszczalny współczynnik odpadów

Pola nieobecne w żądaniu zostaną ustawione z wartościami domyślnymi. W przypadku używania tej metody do istniejących produktów/operacji nieobecne pola będą traktowane jako usunięcia.

Pobieranie produktu

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

Aby pobrać produkt, wystarczy wykonać żądanie GET z kodem produktu. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

GET /api/products/code?access_token=

Parametry URI

code

ciąg (wymagane)

Kod produktu.

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Odpowiedź 404

Tekst główny

If product with the provided code doesn't exist.

Tworzenie produktu

POST /api/products{?access_token}

Aby utworzyć produkt, należy podać skrót JSON atrybutów nowego produktu i jego operacji. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Można utworzyć wiele operacji jednocześnie.

Przykładowy identyfikator URI

POST /api/products?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Aktualizowanie produktu

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

Aby zaktualizować produkt, należy podać skrót JSON atrybutów istniejącego produktu i jego operacji. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Obecnie można zapisać tylko jeden produkt, ale jednocześnie można utworzyć wiele operacji.

Przykładowy identyfikator URI

PUT /api/products/code?access_token=

Parametry URI

code

ciąg (wymagane)

Kod produktu.

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Usuwanie produktu

Usuń /api/products/{code}{?access_token}

Aby usunąć produkt, należy podać kod produktu.

Przykładowy identyfikator URI

Usuń /api/products/code?access_token=

Parametry URI

code

ciąg (wymagane)

Kod produktu.

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

Content-Type: application/json

Odpowiedź 204

Odpowiedź 400

Tekst główny

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

Wyświetlanie listy produktów

GET /api/products{?access_token}

Pozwala wyświetlić listę produktów i ich operacji. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

GET /api/products?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

page

wartość numeryczna (opcjonalne)

indeks strony wyników, począwszy od 1

product-family-code

ciąg (opcjonalne)

wyświetl listę produktów należących do podanej rodziny produktów

modification-date

data (opcjonalne)

wyświetl listę produktów zmodyfikowanych za pośrednictwem systemu zaplecza po podanej dacie

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Odpowiedź 400

Tekst główny

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

ZESTAWIENIE MATERIAŁÓW PRODUKTU

W zestawieniu materiałów produktu (BoM) określone są materiały używane do wytwarzania określonego produktu. Zestawienie materiałów zawiera następujące atrybuty:

  • product-code — produkt główny

  • bom (tablica, wymagane)

    • product-code (ciąg, wymagane) — kod produktu komponentu/zużycia

    • quantity (double, wymagane) — ilość

    • operation-code (ciąg, opcjonalne) — kod operacji, w którym użyty jest materiał zdefiniowany w polu product-code. Jeśli wartość jest pusta, zużycie nastąpi przy pierwszej operacji procesu produkcyjnego tego produktu.

Aktualizowanie zestawienia materiałów produktu

POST /api/bom{?access_token}

Aby zaktualizować zestawienie materiałów produktu, należy podać skrót JSON atrybutów nowego produktu i jego operacji. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

POST /api/bom?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

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

Odpowiedź 404

Tekst główny

Main product not found

Odpowiedź 400

Tekst główny

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

ZAPASY PRODUKTU

Zasób zapasów określa zapasy dostępne na potrzeby określonego produktu.

  • product-code (ciąg, wymagane)

  • stock (double, wymagane)

  • date (data, opcjonalne) — data liczenia zapasów

Aktualizowanie zapasów produktu

POST /api/stock{?access_token}

Aby zaktualizować zapasy produktu, należy podać skrót JSON atrybutów dla jego bieżących zapasów. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

POST /api/stock?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Tekst główny

Request successful

Odpowiedź 404

Tekst główny

Product not found

Odpowiedź 400

Tekst główny

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

Rodziny produktów

Zasoby produktu interfejsu API programu Prodsmart.

RODZINA PRODUKTÓW

Obiekt rodziny produktów reprezentuje rodzinę lub rodziny, do których należy produkt.

Zasób rodziny produktów ma następujące atrybuty:

  • code (ciąg, wymagane) — kod rodziny produktów

  • name (ciąg, wymagane) — nazwa rodziny produktów

Tworzenie rodziny produktów

POST /api/product-families{?access_token}

Pozwala utworzyć jedną lub więcej rodzin produktów. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

POST /api/product-families?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Usuwanie rodziny produktów

Usuń /api/product-family/{code}{?access_token}

Aby usunąć rodzinę produktów, należy podać kod rodziny produktów

Przykładowy identyfikator URI

Usuń /api/product-family/code?access_token=

Parametry URI

code

ciąg (wymagane)

Kod produktu.

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

Content-Type: application/json

Odpowiedź 204

Tekst główny

Product Family was deleted

Odpowiedź 400

Tekst główny

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

Wyświetlanie listy rodzin produktów

GET /api/product-families{?access_token}

Pozwala wyświetlić listę rodzin produktów. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

GET /api/product-families?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

page

wartość numeryczna (opcjonalne)

indeks strony wyników, począwszy od 1

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Maszyny

Zasoby produkcji interfejsu API programu Prodsmart.

LICZNIK

Licznik aktualizacji

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

Aby zaktualizować bieżący licznik na maszynie, wystarczy wysłać następujące żądanie. Aby uprościć połączenie z maszyną, można użyć tokenu access_token lub wysłać dane uwierzytelniające API w nagłówku uwierzytelniania z podstawowym uwierzytelnianiem. Program Prodsmart automatycznie zaktualizuje produkcję rozpoczętą przez pracownika na danej maszynie. Liczniki ilości i odpadów muszą być przyrostowe (tzn. zawsze większe niż poprzednio wysłane).

Przykładowy identyfikator URI

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

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

machine_code

ciąg (wymagane)

Kod maszyny zdefiniowany na platformie Prodsmart

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 200

Tekst główny

Returns the new value for the machine's counter.

Odpowiedź 400

Tekst główny

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

PARAMETRY

Aktualizowanie parametrów

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

Aby zaktualizować parametr maszyny, wystarczy wysłać następujące żądanie. Aby uprościć połączenie z maszyną, można użyć tokenu access_token lub wysłać dane uwierzytelniające API w nagłówku uwierzytelniania z podstawowym uwierzytelnianiem. Po przekazaniu tych parametrów, jeśli rekord produkcyjny to

Przykładowy identyfikator URI

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

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

machine_code

ciąg (wymagane)

Kod maszyny zdefiniowany na platformie Prodsmart

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 200

PRZESTÓJ

Aktualizowanie przestoju

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

Aby zaktualizować bieżący stan na maszynie, wystarczy wysłać następujące żądanie. Aby uprościć połączenie z maszyną, można użyć tokenu access_token lub wysłać dane uwierzytelniające API w nagłówku uwierzytelniania z podstawowym uwierzytelnianiem. Prodsmart automatycznie zarejestruje przestój lub go zakończy, zgodnie z otrzymanymi informacjami. Wyślij 0, jeśli maszyna jest zatrzymana, 1, jeśli jest włączona, i określ typ czasu przestoju.

Aby zaktualizować stan maszyny, określ następujące atrybuty:

  • type (ciąg, wymagane, musi być typem przestoju już przypisanym do maszyny) — typ przestoju

  • running (liczba, wymagane, 0 lub 1) — oznacza, że maszyna została zatrzymana (0) lub uruchomiona (1)

Przykładowy identyfikator URI

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

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

machine_code

ciąg (wymagane)

Kod maszyny zdefiniowany na platformie Prodsmart

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 200

Produkcja

Zasoby produkcji interfejsu API programu Prodsmart.

PRODUCTION

Pojedynczy obiekt produkcji. Zasób produkcji jest centralnym zasobem interfejsu API programu Prodsmart. Reprezentuje on pracę jednego pracownika na stanowisku w danym okresie czasu.

Zasób produkcji ma następujące atrybuty:

  • id

  • start-time (data, wymagane, format RRRR-MM-DDTGG:MM:SSZ) — czas rozpoczęcia produkcji

  • end-time (data, wymagane, format RRRR-MM-DDTHH:MM:SSZ) — czas zakończenia produkcji

  • work-time (czas trwania, podane, format 00H00m00s) — czas pracy produkcji (w ramach czasu harmonogramu / zegarów czasu pracy i z wyłączeniem przestojów)

  • production-order (opcjonalne) — zamówienie produkcji, dla którego wykonano tę produkcję

    • code (ciąg, wymagane) — kod zamówienia produkcji

    • id (ciąg, wymagane)

  • operation (wymagane) — zadanie wykonane w tej produkcji

    • code (ciąg, wymagane, niepowtarzalne) — kod zadania

    • product (wymagane) — materiał, z którym pracownik pracuje na tym stanowisku

  • quantity (liczba całkowita, wymagane, >0) — ilość wyprodukowana w tej produkcji

  • worker (wymagane) — osoba wykonująca zadania

    • number (długie, wymagane, niepowtarzalne) — numer pracownika

  • produced-waste (tablica, opcjonalne) — wadliwe materiały wytworzone podczas operacji

    • quantity (wartość liczbowa, wymagane) — kod odpadu

      • waste — rodzaj wadliwego materiału

      • code (ciąg, wymagany, niepowtarzalny) — kod odpadu

      • description (ciąg, wymagane) — opis odpadu

      • flaw (ciąg, wymagane) — typ odpadu

      • quantity (liczba całkowita, wymagane) — ilość wytworzonych odpadów

Identyfikator stanu jest przypisywany przez interfejs API programu Prodsmart w momencie tworzenia.

Aktualizowanie produkcji

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

Aby zaktualizować produkcję, należy podać skrót JSON atrybutów istniejącej produkcji. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Obecnie można zapisać tylko jeden produkt, ale jednocześnie można utworzyć wiele operacji.

Przykładowy identyfikator URI

PUT /api/productions/id?access_token=

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator produkcji.

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 200

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Usuwanie produkcji

Usuń /api/productions/{id}{?access_token}

Aby usunąć produkcję, należy podać identyfikator produkcji.

Przykładowy identyfikator URI

Usuń /api/productions/id?access_token=

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator produkcji.

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

Content-Type: application/json

Odpowiedź 201

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Wyświetlanie listy produkcji

GET /api/productions{?access_token}

Pozwala wyświetlić listę produkcji. Wiele parametrów będzie traktowanych jako warunek AND. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Ta usługa jest stronicowana i zwraca 25 produkcji na stronę.

Przykładowy identyfikator URI

GET /api/productions?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

page

wartość numeryczna (opcjonalne)

indeks strony wyników, począwszy od 1

production-order-id

wartość numeryczna (opcjonalne)

wyświetl listę produkcji z tym zamówieniem produkcji

production-order-code

ciąg (opcjonalne)

wyświetl listę produkcji z tymi zamówieniami produkcji

worker

wartość numeryczna (opcjonalne)

wyświetl listę produkcji dla tego pracownika (numer pracownika)

start-time-before

data (opcjonalne)

wyświetl listę produkcji z wcześniejszym czasem rozpoczęcia

start-time-after

data (opcjonalne)

wyświetl listę produkcji z późniejszym czasem rozpoczęcia

end-time-before

data (opcjonalne)

wyświetl listę produkcji z wcześniejszym czasem rozpoczęcia

end-time-after

data (opcjonalne)

wyświetl listę produkcji z czasem zakończenia po niej

start-time

data (opcjonalne)

wyświetl listę produkcji uruchomionych po tym czasie rozpoczęcia (nie używaj w połączeniu z opcją before-after)

checked-out

wartość logiczna (opcjonalne)

wyświetl listę produkcji, które są wypisane

worker-name

wartość logiczna (opcjonalne)

pobiera nazwę i numer pracownika zamiast tylko numeru pracownika.

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Przestój

Zasoby przestojów interfejsu API programu Prodsmart.

PRZESTOJE

Wyświetl listę przestojów

GET /api/downtimes{?access_token}

Pozwala wyświetlić listę przestojów. Wiele parametrów będzie traktowanych jako warunek AND. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

GET /api/downtimes?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

page

wartość numeryczna (opcjonalne)

indeks strony wyników, począwszy od 1

start-time-before

data (opcjonalne)

wyświetl listę przestojów z czasem rozpoczęcia przed nią

start-time-after

data (opcjonalne)

wyświetl listę przestojów z czasem rozpoczęcia po niej

end-time-before

data (opcjonalne)

wyświetl listę przestojów z czasem zakończenia przed nią

end-time-after

data (opcjonalne)

wyświetl listę przestojów z czasem zakończenia po niej

maszyna

wartość numeryczna (opcjonalne)

wyświetl przestojów na tej maszynie

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Zegar czasu pracy

Zasoby zegara czasu pracy interfejsu API programu Prodsmart.

ZEGAR CZASU PRACY

Elementy webhook są dostępne w przypadku zdarzeń zegara czasu pracy z menu integracji w aplikacji. Aby użyć tej funkcji, dodaj wywołanie zwrotne adresu URL punktu końcowego ze zdarzeniami powiadamiania, których chcesz nasłuchiwać. Staramy się wysyłać powiadomienia webhook niezwłocznie po wystąpieniu zdarzeń w naszym systemie. Obecnie nie obsługujemy ponownych prób.

Wyświetl listę zegarów czasu pracy

GET /api/punchclocks{?access_token}

Aby wyświetlić listę zegarów czasu pracy. Wiele parametrów będzie traktowanych jako warunek AND. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

GET /api/punchclocks?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

page

wartość numeryczna (opcjonalne)

indeks strony wyników, począwszy od 1

date-before

data (opcjonalne)

wyświetl listę zegarów czasu pracy z wcześniejszą datą

date-after

data (opcjonalne)

wyświetl listę zegarów czasu pracy z późniejszą datą

worker

wartość numeryczna (opcjonalne)

wyświetl listę wpisów zegara czasu pracy dla tego pracownika

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Ruch magazynowy

Zasoby ruchu magazynowego interfejsu API programu Prodsmart.

RUCH MAGAZYNOWY

Pojedynczy obiekt ruchu magazynowego. Zasób ruchu magazynowego jest jednym z najważniejszych zasobów interfejsu API programu Prodsmart.

Zasób ruchu magazynowego ma następujące atrybuty:

  • id (dostarczone)

  • product (ciąg, wymagane) — kod produktu

  • date-time (data, opcjonalne, format RRRR-MM-DDTGG:MM:SSZ) — data utworzenia ruchu magazynowego.

  • quantity (double, wymagane) — ilość ruchu magazynowego

  • type (ciąg, wymagane) — typ ruchu magazynowego: do, z, zużycie, produkcja

  • lot (ciąg, opcjonalne) — partia ruchu magazynowego do użycia

  • total-cost (wartość dziesiętna, opcjonalne) — całkowity koszt ruchu magazynowego w przypadku ilości

  • warehouse-location (ciąg, opcjonalne) — kod lokalizacji magazynu

  • warehouse (ciąg, opcjonalne) — kod magazynu

  • location (ciąg, opcjonalne) — lokalizacja, w przypadku wielu lokalizacji

  • comment (ciąg, opcjonalne) — komentarz do ruchu magazynowego

Pobieranie ruchu magazynowego

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

Aby pobrać ruch magazynowy, wystarczy wykonać żądanie GET z identyfikatorem ruchu magazynowego. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

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

Parametry URI

id

wartość numeryczna (wymagane)

Identyfikator ruchu magazynowego.

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Tworzenie ruchu magazynowego

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

Aby utworzyć ruch magazynowy, należy podać skrót JSON atrybutów nowego ruchu magazynowego. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Obecnie można zapisać tylko jeden ruch magazynowy. Jeśli żądanie będzie w przyszłości szykiem zamiast jednym zasobem, wszystkie elementy w szyku zostaną zapisane.

Przykładowy identyfikator URI

POST /api/inventory-movements/?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Odpowiedź 200

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Aktualizacja ruchu magazynowego

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

Aby zaktualizować ruch magazynowy, należy podać plik JSON z atrybutami do zaktualizowania w ruchu magazynowym (wszystkie atrybuty są opcjonalne). Ta operacja wymaga access_token z productions_write scope.

Przykładowy identyfikator URI

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

Parametry URI

id

numeric (wymagane)

Identyfikator ruchu magazynowego.

access_token

string (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Tekst główny

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

Usuwanie ruchu magazynowego

Usuń /api/inventory-movement/{id}{?access_token}

Aby usunąć ruch magazynowy, należy podać identyfikator ruchu magazynowego.

Przykładowy identyfikator URI

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

Parametry URI

id

numeric (wymagane)

Identyfikator ruchu magazynowego.

access_token

string (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 204

Odpowiedź 400

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

Wyświetl listę ruchów magazynowych

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

Pozwala wyświetlić listę ruchów magazynowych. Wiele parametrów będzie traktowanych jako warunek AND. Ta operacja wymaga tokenu dostępu z zakresem productions_write. Ta usługa jest stronicowana i zwraca 25 IM na stronę.

Przykładowy identyfikator URI

GET /api/inventory-movements/?access_token=

Parametry URI

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

page

wartość numeryczna (opcjonalne)

indeks strony wyników, począwszy od 1

product-code

ciąg (opcjonalne)

kod produktu

typ

ciąg (opcjonalne)

typ ruchu magazynowego: do, z, zużycie, produkcja

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Zapasy

Zasoby zapasów interfejsu API programu Prodsmart.

Pobieranie zapasów produktu

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

Aby pobrać zapasy produktu, wystarczy wykonać żądanie GET z kodem produktu. Wiele parametrów będzie traktowanych jako warunek AND. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

GET /api/stock/code?access_token=

Parametry URI

code

ciąg (wymagane)

Kod produktu.

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart.

lot

ciąg (opcjonalne)

Pobierz kod partii i ilość zapasów do partii produktu

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Raporty

Zasoby raportowania interfejsu API programu Prodsmart.

Czas pracy pracownika

Czas pracy pracownika GET/api/reports/worker-labor-time{?access_token}

Aby pobrać raport, wystarczy wykonać żądanie GET z interwałem wyodrębniania raportu. Można dodać pracownika i parametr sekcji, aby filtrować raport. Ponadto można określić kilka flag, aby dostosować zawartość raportu. Domyślną wartością dla wszystkich znaczników jest false. Ta operacja wymaga tokenu dostępu z zakresem productions_write.

Przykładowy identyfikator URI

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

Parametry URI

start-time

ciąg (wymagane)

Generuj raport do dat późniejszych (uwzględnione)

end-time

ciąg (wymagane)

Generuj raport do dat wcześniejszych (uwzględnione)

access_token

ciąg (wymagane)

Token dostępu do interfejsu API programu Prodsmart

worker-number

ciąg (opcjonalne)

Określ numer pracownika, aby filtrować raport

section

ciąg (opcjonalne)

Określ nazwę sekcji. Wszyscy pracownicy z tej sekcji zostaną uwzględnieni w raporcie

show-rework

wartość logiczna (opcjonalne)

Uwzględnij w raporcie nowe pole z operacjami dotyczącymi przeróbek

show-weekend

wartość logiczna (opcjonalne)

Uwzględnij dni tygodnia w danych

only-punch-clock

wartość logiczna (opcjonalne)

Uwzględniaj czas obecności tylko przy użyciu wpisów zegara czasu pracy

page

wartość numeryczna (opcjonalne)

indeks strony wyników, począwszy od 1

Żądanie

Nagłówki

Content-Type: application/json

Odpowiedź 200

Tekst główny

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

Odpowiedź 400

Tekst główny

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

Odpowiedź 429

Tekst główny

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

Autoryzacja i kontrola dostępu

Dostęp do tokenu autoryzacji programu Prodsmart i jego kontrola.

AUTORYZACJA

Zasób autoryzacji reprezentuje autoryzację przyznaną firmie. Można uzyskać dostęp tylko do własnej autoryzacji. Używana autoryzacja to autoryzacja Basic, gdzie nagłówek Authentication ma postać <base64 zakodowana wartość API_KEY:API_SECRET>. Aby uzyskać klucz i klucz tajny interfejsu API, zaloguj się do programu Prodsmart i edytuj użytkownika. (Uwaga: aby uzyskać dostęp do tej funkcji, musisz mieć uprawnienia administratora). Zasób autoryzacji ma następujący atrybut:

  • token

  • scopes

Gdzie token oznacza token, a scopes jest szykiem zakresów przyznanych dla danej autoryzacji. W tej chwili jedynym dostępnym zakresem jest productions_write.

Pobieranie autoryzacji

GET /api/authorization

Użyj polecenia GET, aby pobrać istniejący token dostępu. Jeśli token jeszcze nie istnieje, można go wygenerować za pomocą metody POST.

Przykładowy identyfikator URI

GET /api/authorization

Żądanie

Nagłówki

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Odpowiedź 200

Nagłówki

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

Tekst główny

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

Tworzenie autoryzacji

POST /api/authorization

Użyj polecenia POST, aby wygenerować nowy token dostępu.

Przykładowy identyfikator URI

POST /api/authorization

Żądanie

Nagłówki

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

Tekst główny

{ "scopes": [ "productions_write" ] }

Odpowiedź 201

Nagłówki

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

Tekst główny

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

Usuwanie autoryzacji

Usuń /api/authorization

Przykładowy identyfikator URI

DELETE /api/authorization

Żądanie

Nagłówki

Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==

Odpowiedź 204

Czy to odpowiedziało na twoje pytanie?