Przejdź do treści

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:

  1. POST – dodawanie nowego zamówienia lub aktualizacja danych o zamówieniu.
  2. GET – pozyskiwanie informacji o zamówieniu.
  3. PUT – zmiana statusu zamówienia.
  4. 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:

  1. Adres serwera (endpoint): https://api.ecdp.app/orders
  2. Wymagane parametry:
ParametrTypKategoriaMaksymalna liczba znakówOpis
x-api-key*stringheaderklucz API
id*stringbody128numer ID zamówienia,
date*string($date-time)bodydata złożenia zamówienia
totalValue*number($double)bodycałkowita wartość zamówienia
customer*bodydane klienta; obejmuje dodatkowy zestaw parametrów >>> zobacz tabele poniżej
products*bodydane 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:

ParametrTypMaksymalna liczba znakówOpis
emailstring320adres 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.
phonestring20numer 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.
crmIdstring128numer 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:

ParametrTypMaksymalna liczba znakówOpis
id*string128
numer ID zakupionego produktu
name*string2048nazwa produktu
price*number($double)cena produktu
quantity*integer($int32)ilość zakupionego produktu; minimalna wartość: 1,
maksymalna wartość: 2147483647
returnedinteger($int32)ilość zwróconych produktów; minimalna wartość: 1,
maksymalna wartość: 2147483647
urlstring2048adres URL zakupionego produktu
imageUrlstring2048adres URL obrazka zakupionego produktu
categorystring2048kategoria zakupionego produktu
productAttributes Cechy produktu; obejmuje dodatkowy zestaw parametrów >>> zobacz tabelę poniżej

Dla productAttributes są to:

ParametrTypMaksymalna liczba znakówOpis
name*string256nazwa cechy produktu
valuestringwartość cechy produktu

Pozostałe parametry, które możesz umieścić w zapytaniu:

ParametrTypMaksymalna liczba znakówOpis
timeZonestring100strefa czasowa zamówienia. Wartości, jakie możesz podać znajdziesz tutaj: Obsługiwane strefy czasowe w zamówieniach
websiteIdinteger($int32)numer ID strony sklepu, w którym złożono zamówienie
statusstringstatus zamówienia: placed, paid, completed, canceled
currencystringmin.: 3
maks.: 3
waluta, w której złożono zamówienie
returnsValuenumber($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:

ParametrTypMaksymalna liczba znakówOpis
name*string256nazwa cechy zamówienia
valuestringwartość 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:

  1. Adres serwera (endpoint): https://api.ecdp.app/orders/{id}
  2. Parametry:
ParametrTypKategoriaOpis
x-api-keystringheadertwój klucz API, który znajdziesz w Ustawienia > API
idstringpathnumer 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ć:

  1. Adres serwera (endpoint): https://api.ecdp.app/orders/status
  2. Parametry:
ParametrTypKategoriaOpis
x-api-keystringheaderklucz API, który znajdziesz w Ustawienia > API
orderId*stringbodyNumer ID zamówienia; minimalna liczba znaków: 1
orderStatus*stringbodystatus 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ć:

  1. Adres serwera (endpoint): https://api.ecdp.app/orders/{id}
  2. Parametry
ParametrTypKategoriaOpis
x-api-keystringheadertwój klucz API, który znajdziesz w Ustawienia > API
orderIdstringpathnumer 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"
}