Raporty – atrybucja zamówień
Ta metoda zwraca listę zamówień, które ECDP przypisał do konkretnych wiadomości marketingowych w wybranym zakresie dat.
Każdy rekord (zestaw danych) zawiera informacje o zamówieniu, kliencie, kanale i wiadomości, które doprowadziły do konwersji, oraz wartość zamówienia zarówno w oryginalnej walucie, jak i w walucie raportowania jednostki biznesowej. Użyj tej metody, aby weryfikować poprawność atrybucji, uzgadniać przychody i analizować skuteczność kampanii w kanałach e-mail, SMS i web push.
Endpoint
Adres serwera dla tego zapytania to https://api.ecdp.app/reports/attribution/orders
Parametry zapytania
| Parametr | Lokalizacja | Typ | Wymagany | Opis | Dozwolone wartości / uwagi |
| x-api-key | nagłówek | string | tak | Klucz API do uwierzytelnienia | Dostępny w Ustawienia > API |
| startDate | query | string | tak | Początek okna raportowania atrybucji | Format: YYYY-MM-DD. Musi być prawidłową datą |
| endDate | query | string | tak | Koniec okna raportowania atrybucji | Format: YYYY-MM-DD. Musi być prawidłową datą. endDate musi być późniejszy niż startDate |
| websiteId | query | integer | nie | Ogranicz wyniki do jednej strony | Dodatnia liczba całkowita |
| channel | query | enum | nie | Ogranicz wyniki do jednego kanału | Email, Sms, WebPush. Wymagany, gdy podano messageId |
| messageType | query | enum | nie | Ogranicz wyniki do jednego typu wiadomości | Newsletter, Scenario, Confirmation. Confirmation dostępny wyłącznie dla kanału Email |
| messageId | query | integer | nie | Ogranicz wyniki do zamówień przypisanych do konkretnej wiadomości | Dodatnia liczba całkowita. Wymaga podania parametru channel |
| includeDetails | query | boolean | nie | Uwzględnij pozycje produktów dla każdego zamówienia | true lub false. Domyślnie: false |
Odpowiedź
Odpowiedź zawiera tablicę data. Każdy element reprezentuje jedno przypisane zamówienie.
Report data
| Pole | Typ | Opis |
| orderId | string | Unikalny identyfikator zamówienia |
| orderDateTime | string | Data i godzina złożenia zamówienia w formacie ISO-8601 UTC |
| websiteId | integer | Strona, z której pochodzi zamówienie |
| channel | string | Kanał, który doprowadził do atrybucji: Email, Sms, PopUp, WebPush, Banner, Mobile |
| messageType | string | Typ wiadomości: Newsletter, Scenario lub Confirmation |
| messageId | integer | Identyfikator przypisanej wiadomości |
| customer | – | Dane klienta. Zobacz tabelę Customer data |
Customer data
Obiekt customer zawiera następujące pola.
| Pole | Typ | Opis |
| id | integer | Wewnętrzny identyfikator klienta w ECDP |
| string | Adres e-mail klienta | |
| phone | string | Numer telefonu klienta |
| crmId | string | Identyfikator klienta w systemie CRM |
Wartość i podsumowanie zamówienia#
| Pole | Typ | Opis |
| orderValueConverted | number | Wartość zamówienia przeliczona na walutę raportowania jednostki biznesowej |
| originalTotalValue | number | Wartość zamówienia w oryginalnej walucie transakcji |
| originalCurrency | string | Kod waluty oryginalnej transakcji zgodny ze standardem ISO 4217 |
| productsCount | integer | Liczba odrębnych pozycji produktów w zamówieniu |
Order attributes
orderAttributes to tablica par { name, value } zawierająca niestandardowe cechy zamówienia (np. kody kuponów lub metody wysyłki). Pole jest pomijane, gdy żadne cechy nie są zdefiniowane.
Order details
Gdy includeDetails=true, każde zamówienie zawiera tablicę orderDetails z pozycjami produktów.
| Pole | Typ | Opis |
| id | string | Identyfikator produktu zgodny ze źródłem e-commerce |
| name | string | Nazwa produktu |
| price | number | Cena jednostkowa w oryginalnej walucie transakcji |
| quantity | number | Zakupiona ilość |
| returned | number | Zwrócona ilość. Pomijane, jeśli nie dotyczy |
| category | string | Kategoria produktu. Pomijane, jeśli nie ustawiono |
| productAttributes | array | Tablica par { name, value } z niestandardowymi cechami produktu. Pomijane, jeśli brak |
| recommendationAttribution | object | Obecne, gdy produkt został dodany za pośrednictwem rekomendacji ECDP. Zobacz strukturę poniżej |
Recommendation attribution – atrybucja rekomendacji
| Pole | Typ | Opis |
| scope | string | Zakres atrybucji: Channel lub Onsite |
| type | string | Etykieta typu rekomendatora |
| id | integer | Identyfikator rekomendatora (np. ID banera) |
| channel | string | Powierzchnia rekomendacji: Banner, Email lub PopUp |
Kody odpowiedzi
| Kod | Status | Opis |
| 200 | OK | Żądanie zostało przetworzone pomyślnie. Odpowiedź zawiera listę przypisanych zamówień |
| 204 | Brak treści | Żądanie jest prawidłowe, ale żadne zamówienia nie spełniają podanych kryteriów |
| 400 | Błędne żądanie | Nieprawidłowe lub brakujące parametry |
| 401 | Brak autoryzacji | Klucz API jest brakujący, nieprawidłowy lub wygasł |
| 403 | Brak dostępu | Klucz API nie ma uprawnień do tego zasobu |
| 500 | Wewnętrzny błąd serwera | Błąd po stronie serwera. Ponów żądanie lub skontaktuj się z pomocą techniczną, jeśli problem się utrzymuje |
Przykładowe zapytania i odpowiedzi
Raport zbiorczy dla konkretnej strony i kanału komunikacji
GET /reports/attribution/orders?startDate=2025-03-01&endDate=2025-03-07&websiteId=21&channel=Email
Odpowiedź (200 OK):
{
"data": [
{
"orderId": "100042",
"orderDateTime": "2025-03-03T11:24:15Z",
"websiteId": 21,
"channel": "Email",
"messageType": "Newsletter",
"messageId": 12045,
"customer": { "id": 981245, "email": "anna@poczta.pl", "phone": "", "crmId": "778" },
"orderValueConverted": 249.99,
"originalTotalValue": 249.99,
"originalCurrency": "PLN",
"productsCount": 3
},
{
"orderId": "100057",
"orderDateTime": "2025-03-05T19:02:41Z",
"websiteId": 21,
"channel": "Email",
"messageType": "Scenario",
"messageId": 11880,
"customer": { "id": 771100, "email": "jan@poczta.pl", "phone": "", "crmId": "101" },
"orderValueConverted": 89.99,
"originalTotalValue": 89.99,
"originalCurrency": "PLN",
"productsCount": 1
}
]
}Raport filtrowany według wiadomości, z pozycjami produktów
GET /reports/attribution/orders?startDate=2025-03-15&endDate=2025-03-15&channel=WebPush&messageType=Newsletter&messageId=9021&websiteId=21&includeDetails=true
Odpowiedź (200 OK):
{
"data": [
{
"orderId": "100042",
"orderDateTime": "2025-03-15T09:41:06Z",
"websiteId": 21,
"channel": "WebPush",
"messageType": "Newsletter",
"messageId": 9021,
"customer": { "id": 332100, "email": "", "phone": "", "crmId": "551" },
"orderValueConverted": 142.70,
"originalTotalValue": 142.70,
"originalCurrency": "PLN",
"productsCount": 2,
"orderAttributes": [
{ "name": "kupon", "value": "LATO10" }
],
"orderDetails": [
{
"id": "SKU-101",
"name": "Torba shopperka",
"price": 39.90,
"quantity": 1,
"category": "Torby",
"productAttributes": [{ "name": "color", "value": "naturalny" }]
},
{
"id": "SKU-225",
"name": "Butelka na wodę",
"price": 102.80,
"quantity": 1,
"returned": 1,
"category": "Akcesoria",
"recommendationAttribution": {
"scope": "Onsite",
"type": "Bestsellery",
"id": 12,
"channel": "Banner"
}
}
]
}
]
}Reguły walidacji i zachowania#
- startDate i endDate są wymagane. startDate musi być wcześniejszy lub równy endDate.
- channel jest wymagany, gdy podano messageId.
- Wartość Confirmation parametru messageType jest prawidłowa wyłącznie gdy channel=Email.
- Każdy parametr filtra przyjmuje dokładnie jedną wartość. Powtórzenie tego samego parametru lub podanie pustej wartości zwraca błąd ‘400 Bad Request’.
- includeDetails przyjmuje wyłącznie wartości true lub false. Każda inna wartość zwraca błąd ‘400 Bad Request’.
- Gdy żadne zamówienia nie spełniają kryteriów zapytania, endpoint zwraca ‘204 No Content’.
Dokumentacja referencyjna#
Swagger — Raport atrybucji zamówień