Przejdź do głównej zawartości

Śledzenie sprzedaży

Panel pokazuje, ile klientek zobaczyło przycisk, przymierzyło, dodało do koszyka, kupiło i zwróciło, oraz o ile więcej sprzedaje grupa z przymiarką od grupy bez przycisku. Łączenie zakupu z przymiarką robimy po naszej stronie. Ty wysyłasz tylko dwie rzeczy: dodanie do koszyka i operacje na zamówieniach.

Co Kto wysyła Twoja praca
Przycisk wyświetlony i kliknięty, przymiarka, zapis, udostępnienie widżet i SDK same brak
Dodanie do koszyka Twój przycisk koszyka 1 linijka
Zakup, anulowanie, zwrot Twój serwer jedno wywołanie API przy zmianie statusu zamówienia

Śledzenie jest domyślnie wyłączone. Włącza je właściciel konta w panelu: Sprzedaż → Ustawienia.

Zakup łączymy z przymiarką po identyfikatorze klientki. To ten sam external_user_id, który Twój serwer podaje przy POST /v1/session-tokens, i ten sam customer_id w zamówieniach. Nie przysyłaj maili ani telefonów: wystarczy numer konta. Numer zamówienia i klientki zapisujemy jako pseudonim.

Z okna przymiarki nie da się dodać do koszyka: nakładka służy do podglądu, a koszyk zostaje w Twoim sklepie. W miejscu, gdzie Twoja aplikacja albo strona dodaje produkt do koszyka swoim przyciskiem:

Przymierz.addedToCart("SKU-123", { size: "M" });
Przymierz.addedToCart('SKU-123', size: 'M');

Nie musisz sprawdzać, czy klientka przymierzała ten produkt. Robimy to sami.

Twój serwer wysyła operacje kluczem API, najlepiej z kolejki z ponowieniami. Ten sam event_id możesz wysłać wiele razy, liczy się raz.

POST /v1/commerce/events
Authorization: Bearer pk_live_…
{
"events": [
{
"event_id": "ord-123-paid",
"type": "order.paid",
"occurred_at": "2026-10-22T18:04:00Z",
"order_id": "123",
"customer_id": "k1",
"currency": "PLN",
"lines": [{ "line_id": "1", "product_id": "SKU-123", "size": "M", "quantity": 1, "unit_price": 199.0 }]
},
{
"event_id": "ret-77",
"type": "order.refunded",
"order_id": "123",
"customer_id": "k1",
"refund_id": "77",
"reason": "size_too_small",
"lines": [{ "line_id": "1", "product_id": "SKU-123", "size": "M", "quantity": 1, "amount": 199.0 }]
}
]
}
type Kiedy wysłać
order.paid zamówienie opłacone (albo przyjęte do realizacji przy płatności przy odbiorze)
order.cancelled zamówienie anulowane przed wysyłką
order.refunded zwrot, także częściowy; w lines tylko zwracane pozycje

Powody zwrotu (reason): size_too_small, size_too_big, looks_different, quality, changed_mind, other.

Odpowiedź: 202 z {"accepted": 2, "duplicates": 0, "conflicts": []}. Ten sam event_id z inną treścią trafia do conflicts. Zwrot zamówienia, którego jeszcze nie znamy, czeka, aż przyjdzie order.paid. Gdy śledzenie jest wyłączone w panelu, dostaniesz 409 tracking_disabled. Najwyżej 500 operacji w jednym zapytaniu.

Historię zamówień możesz dograć tym samym wywołaniem z dawnym occurred_at.

await fetch("https://api.przymierz.online…/v1/commerce/events", {
method: "POST",
headers: { Authorization: `Bearer ${process.env.PRZYMIERZ_KEY}`, "Content-Type": "application/json" },
body: JSON.stringify({ events: [toPrzymierzEvent(order)] }),
});
$ch = curl_init('https://api.przymierz.online…/v1/commerce/events');
curl_setopt_array($ch, [
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => ['Authorization: Bearer ' . getenv('PRZYMIERZ_KEY'), 'Content-Type: application/json'],
CURLOPT_POSTFIELDS => json_encode(['events' => [to_przymierz_event($order)]]),
CURLOPT_RETURNTRANSFER => true,
]);
curl_exec($ch);
httpx.post(
"https://api.przymierz.online…/v1/commerce/events",
headers={"Authorization": f"Bearer {os.environ['PRZYMIERZ_KEY']}"},
json={"events": [to_przymierz_event(order)]},
)
  • Powiązanie: pozycja zamówienia jest powiązana z przymiarką, gdy ta sama klientka przymierzyła ten sam produkt przed zakupem. Okno główne ustawiasz w panelu (domyślnie 24 godziny), drugie to 7 dni.
  • Przyrost: gdy włączysz grupę kontrolną (np. 10%), część klientek losowo nie widzi przycisku. Porównujemy wszystkie klientki z przyciskiem ze wszystkimi bez niego. Tylko ta liczba mówi, o ile przymiarka zmienia sprzedaż; lejek pokazuje powiązanie.
  • Prywatność: przechowujemy pseudonimy, produkty, rozmiary, ilości i kwoty. Surowe zdarzenia kasujemy po 13 miesiącach. „Usuń moje dane” klientki kasuje także jej zdarzenia. Małych liczb (poniżej 10 klientek albo 5 zwrotów) panel nie pokazuje.
  • Na stronie internetowej zdarzenia wysyłamy tylko po zalogowaniu klientki (token z jej identyfikatorem). Jeśli Twój baner cookies wymaga zgody na analitykę, wołaj Przymierz.init dopiero po niej.