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 Jeśli w zapytaniu nie uwzględnisz tego parametru, datę złożenia zamówienia dostosujemy do strefy czasowej Twojej jednostki biznesowej. Znajdziesz ją w Ustawienia > Ogólne > pole Strefa czasowa. |
| 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"
}