Zamówienia – metody API
API umożliwi Ci automatyzację działań związanych z zamówieniami składanymi przez Twoich klientów. Udostępniamy trzy metody HTTP:
- POST – dodawanie nowego zamówienia lub aktualizacja danych o zamówieniu.
 - GET – pozyskiwanie informacji o zamówieniu.
 - PUT – zmiana statusu zamówienia.
 - DELETE – usuwanie zamówienia.
 
Metoda POST – dodawanie informacji o zamówieniu
Działania, jakie przeprowadzisz tą metodą, to dodawanie danych o nowych zamówieniach oraz aktualizacja danych już złożonych zamówień. Służą do tego trzy tryby (modes):
- Add – dodanie zamówienia w platformie ExpertSender.
 - AddOrReplace – dodanie nowego zamówienia od platformy lub wymiana jego danych, jeśli zamówienie już znajduje się w platformie.
 - Replace – zmiana zestawu danych w zamówieniu.
 
Metoda POST – zapytanie
Żeby wysłać zapytanie z użyciem tej metody, potrzebujesz następujących informacji:
- Adres serwera (endpoint): https://api.ecdp.app/orders
 - Wymagane parametry:
 
| Parametr | Typ | Kategoria | Maksymalna liczba znaków | Opis | 
| x-api-key* | string | header | – | klucz API | 
| id* | string | body | 128 | numer ID zamówienia, | 
| date* | string($date-time) | body | – | data złożenia zamówienia | 
| totalValue* | number($double) | body | – | całkowita wartość zamówienia | 
| customer* | body | dane klienta; obejmuje dodatkowy zestaw parametrów >>> zobacz tabele poniżej | ||
| products* | body | dane produktu; obejmuje dodatkowy zestaw parametrów >>> zobacz tabele poniżej | 
Parametry customer oraz products, oraz orderAttributes posiadają jeszcze własne parametry, które pozwolą Ci na dodanie lub uzyskanie bardziej szczegółowych informacji na temat zamówień. Parametry oznaczone gwiazdką muszą znaleźć się w zapytaniu. Dla customer są to:
| Parametr | Typ | Maksymalna liczba znaków | Opis | 
| string | 320 | adres e-mail klienta, który złożył zamówienie; wymagany, jeśli e-mail został wybrany dla danej jednostki biznesowej jako domyślne pole identyfikujące w Ustawieniach > Klienci. | |
| phone | string | 20 | numer telefonu klienta, który złożył zamówienie; wymagany, jeśli numer telefonu został wybrany dla danej jednostki biznesowej jako domyślne pole identyfikujące w Ustawieniach > Klienci. | 
| crmId | string | 128 | numer ID CRM klienta, który złożył zamówienie; wymagany, jeśli CRM ID zostało wybrane dla danej jednostki biznesowej jako domyślne pole identyfikujące w Ustawieniach > Klienci. | 
Dla products są to:
| Parametr | Typ | Maksymalna liczba znaków | Opis | 
| id* | string | 128 | numer ID zakupionego produktu | 
| name* | string | 2048 | nazwa produktu | 
| price* | number($double) | – | cena produktu | 
| quantity* | integer($int32) | – | ilość zakupionego produktu; minimalna wartość: 1,  maksymalna wartość: 2147483647  | 
| returned | integer($int32) | – | ilość zwróconych produktów; minimalna wartość: 1,  maksymalna wartość: 2147483647  | 
| url | string | 2048 | adres URL zakupionego produktu | 
| imageUrl | string | 2048 | adres URL obrazka zakupionego produktu | 
| category | string | 2048 | kategoria zakupionego produktu | 
| productAttributes | Cechy produktu; obejmuje dodatkowy zestaw parametrów >>> zobacz tabelę poniżej | 
Dla productAttributes są to:
| Parametr | Typ | Maksymalna liczba znaków | Opis | 
| name* | string | 256 | nazwa cechy produktu | 
| value | string | – | wartość cechy produktu | 
Pozostałe parametry, które możesz umieścić w zapytaniu:
| Parametr | Typ | Maksymalna liczba znaków | Opis | 
| timeZone | string | 100 | strefa czasowa zamówienia. Wartości, jakie możesz podać znajdziesz tutaj: Obsługiwane strefy czasowe w zamówieniach | 
| websiteId | integer($int32) | – | numer ID strony sklepu, w którym złożono zamówienie | 
| status | string | – | status zamówienia: placed, paid, completed, canceled | 
| currency | string | min.: 3 maks.: 3  | waluta, w której złożono zamówienie | 
| returnsValue | number($double) | – | wartość zwróconych produktów | 
| orderAttributes | cechy zamówienia; obejmuje dodatkowy zestaw parametrów >>> zobacz tabele poniżej | 
Parametry orderAttributes posiadają jeszcze własne parametry, które pozwolą Ci na dodanie lub uzyskanie bardziej szczegółowych informacji na temat zamówień. Parametry oznaczone gwiazdką muszą znaleźć się w zapytaniu:
| Parametr | Typ | Maksymalna liczba znaków | Opis | 
| name* | string | 256 | nazwa cechy zamówienia | 
| value | string | – | wartość cechy zamówienia | 
Składnia zapytania dla metody POST
Poniżej widzisz przykładową składnię zapytania, za pomocą którego dodasz (mode: Add) szczegóły zamówienia do ExpertSender.
{
  "mode": "Add",
  "data": [
    {
      "id": "12345",
      "date": "2024-07-25T10:10:00.055Z",
      "timeZone": "Central Europe Standard Time",
      "websiteId": 1,
      "status": "Completed",
      "currency": "PLN",
      "totalValue": 299.99,
      "returnsValue": 0,
      "customer": {
        "email": "klient@example.com",
        "phone": "+48600123456",
        "crmId": "56789"
      },
      "products": [
        {
          "id": "002",
          "name": "Słuchawki Bezprzewodowe",
          "price": 149.99,
          "quantity": 2,
          "returned": 0,
          "url": "https://example.com/produkty/sluchawki-bezprzewodowe",
          "imageUrl": "https://example.com/zdjecia/sluchawki-bezprzewodowe.jpg",
          "category": "Elektronika",
          "productAttributes": [
            {
              "name": "Kolor",
              "value": "Czarny"
            },
            {
              "name": "Gwarancja",
              "value": "2 lata"
            }
          ]
        }
      ],
      "orderAttributes": [
        {
          "name": "Metoda dostawy",
          "value": "Kurier"
        },
        {
          "name": "Opakowanie na prezent",
          "value": "Tak"
        }
      ]
    }
  ]
}Jeśli nie wiesz, czy zamówienie zostało zarejestrowane w bazie, a chcesz dodać jego dane, zmień parametr „mode” na „AddOrReplace”.
Kody odpowiedzi na zapytanie metodą POST
201: Created
Żądanie zostało utworzone.
400: Bad request
Żądanie nie zostało przetworzone. Powodem jest zwykle brakujący lub nieprawidłowy parametr.
Przykładowa składnia odpowiedzi:
{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string",
  "errors": [
    "string"
  ]
}401: Unauthorized
W żądaniu brakowało klucza API lub prosisz o dostęp do informacji, do których nie masz uprawnień.
Przykładowa składnia odpowiedzi:
{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string"
}Metoda GET – pozyskiwanie informacji o zamówieniu
Metoda GET służy do pozyskiwania informacji z platformy ExpertSender o zamówieniu złożonym przez klienta. Na prawidłowe zapytanie metodą GET otrzymasz następującą odpowiedź o statusie ‘tylko do odczytu’.
Metoda GET – zapytanie
Żeby wysłać zapytanie z użyciem tej metody, potrzebujesz następujących informacji:
- Adres serwera (endpoint): https://api.ecdp.app/orders/{id}
 - Parametry:
 
| Parametr | Typ | Kategoria | Opis | 
| x-api-key | string | header | twój klucz API, który znajdziesz w Ustawienia > API | 
| id | string | path | numer ID zamówienia | 
Prawidłowe zapytanie API o zamówienie o numerze ID 12 będzie wyglądało następująco: https://api.ecdp.app/orders/12
Kody odpowiedzi na zapytanie metodą GET{id}
200: Success
Zapytanie zostało przetworzone, serwer zwrócił odpowiedź.
Przykładowa składnia odpowiedzi:
{
  "status": 0,
  "data": {
    "id": "string",
    "date": "2024-07-24T10:23:15.493Z",
    "timeZone": "string",
    "websiteId": 0,
    "status": "string",
    "currency": "str",
    "totalValue": 0,
    "returnsValue": 0,
    "customer": {
      "id": 0,
      "email": "string",
      "phone": "string",
      "crmId": "string"
    },
    "products": [
      {
        "id": "string",
        "name": "string",
        "price": 0,
        "quantity": 2147483647,
        "returned": 2147483647,
        "url": "string",
        "imageUrl": "string",
        "category": "string",
        "productAttributes": [
          {
            "name": "string",
            "value": "string"
          }
        ]
      }
    ],
    "orderAttributes": [
      {
        "name": "string",
        "value": "string"
      }
    ]
  }
}401: Unauthorized
W żądaniu brakowało klucza API lub prosisz o dostęp do informacji, do których nie masz uprawnień. Przykładowa składnia odpowiedzi:
{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string"
}404: Not found
Na serwerze nie ma danych, których szukasz.
Przykładowa składania odpowiedzi:
{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string"
}Metoda PUT – zmiana statusu zamówienia
Metoda PUT służy do zmiany statusu zamówienia zarejestrowanego w platformie ExpertSender CDP. Na prawidłowe zapytanie metodą PUT otrzymasz odpowiedź o statusie ‘tylko do odczytu’.
Metoda PUT – zapytanie
Żeby wysłać zapytanie z użyciem tej metody, musi ono zawierać:
- Adres serwera (endpoint): https://api.ecdp.app/orders/status
 - Parametry:
 
| Parametr | Typ | Kategoria | Opis | 
| x-api-key | string | header | klucz API, który znajdziesz w Ustawienia > API | 
| orderId* | string | body | Numer ID zamówienia; minimalna liczba znaków: 1 | 
| orderStatus* | string | body | status zamówienia; minimalna liczba znaków: 1 | 
Składnia zapytania dla metody PUT
Poniżej widzisz przykładową składnię zapytania, za pomocą którego zmienisz status zamówienia.
{
  "orderId": "12345",
  "orderStatus": "placed"
}Kody odpowiedzi na zapytanie metodą PUT
200: Success
Zapytanie zostało przetworzone, serwer zwrócił odpowiedź.
400: Bad request
Żądanie nie zostało przetworzone. Powodem jest zwykle brakujący lub nieprawidłowy parametr. Przykładowa składnia odpowiedzi:
{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string",
  "errors": [
    "string"
  ]
}401: Unauthorized
W żądaniu brakowało klucza API lub prosisz o dostęp do informacji, do których nie masz uprawnień. Przykładowa składania odpowiedzi:
{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string"
}Metoda DELETE – zmiana statusu zamówienia na IsDeleted
Metoda PUT służy do zmiany statusu zamówienia zarejestrowanego w platformie ExpertSender na Usunięty (IsDeleted).
Na prawidłowe zapytanie metodą PUT otrzymasz odpowiedź o statusie ‘tylko do odczytu’.
Metoda DELETE – zapytanie
Żeby wysłać zapytanie z użyciem tej metody, musi ono zawierać:
- Adres serwera (endpoint): https://api.ecdp.app/orders/{id}
 - Parametry
 
| Parametr | Typ | Kategoria | Opis | 
| x-api-key | string | header | twój klucz API, który znajdziesz w Ustawienia > API | 
| orderId | string | path | numer ID zamówienia | 
Prawidłowe zapytanie API o zmianę statusu zamówienia o numerze 12 na Usunięty wygląda następująco: https://client.ecdp.app/orders/12
Kody odpowiedzi na zapytanie metodą DELETE{id}
200: Success
Zapytanie zostało przetworzone, serwer zwrócił odpowiedź.
Przykładowa składnia odpowiedzi:
Example Value
Schema
{
  "status": 0,
  "data": {
    "id": "string",
    "date": "2024-07-24T10:26:09.455Z",
    "timeZone": "string",
    "websiteId": 0,
    "status": "string",
    "currency": "str",
    "totalValue": 0,
    "returnsValue": 0,
    "customer": {
      "id": 0,
      "email": "string",
      "phone": "string",
      "crmId": "string"
    },
    "products": [
      {
        "id": "string",
        "name": "string",
        "price": 0,
        "quantity": 2147483647,
        "returned": 2147483647,
        "url": "string",
        "imageUrl": "string",
        "category": "string",
        "productAttributes": [
          {
            "name": "string",
            "value": "string"
          }
        ]
      }
    ],
    "orderAttributes": [
      {
        "name": "string",
        "value": "string"
      }
    ]
  }
}401: Unauthorized
W żądaniu brakowało klucza API lub prosisz o dostęp do informacji, do których nie masz uprawnień. Przykładowa składnia odpowiedzi:
{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string"
}404: Not Found
Na serwerze nie ma danych, których szukasz.
Przykładowa składania odpowiedzi:
{
  "type": "string",
  "title": "string",
  "status": 0,
  "substatus": "CustomerInvalidModelState",
  "detail": "string",
  "instance": "string"
}