Przejdź do głównej zawartości

Rekomendacje użytkownika

Wywołanie rekomendacji użytkownika zwraca trzy listy produktów dopasowanych do konkretnego użytkownika:

  • topPicks - produkty, które użytkownik powinien kupić teraz.
  • replenishment - produkty, które użytkownik regularnie kupuje, ale których teraz nie potrzebuje.
  • discovery - produkty, którymi użytkownik może być zainteresowany.

Żądanie

Rekomendacje są pobierane żądaniem POST do następującego endpointu:

POST {{OpenAppUrl}}/merchant/v1/recommendations/user
{
"loggedUser": "user-id-from-webshop",
"limits": {
"topPicks": 3,
"replenishment": 5,
"discovery": 5
}
}

Każda lista ma konfigurowalny limit (domyślnie 20, maksymalnie 200). Pomiń limits lub dowolne jego pole, aby użyć wartości domyślnych.

Odpowiedź

{
"topPicks": [
{
"id": "id124",
"ean": "5901234123464",
"quantity": 1
}
],
"replenishment": [
{
"id": "id123-red",
"ean": "5901234123457",
"quantity": 2,
"expectedAt": "2026-06-20T00:00:00.000Z"
}
],
"discovery": [
{
"id": "id123-blue",
"ean": "5901234123471",
"quantity": 1,
"score": 0.44
}
],
"expiresAt": "2026-06-10T09:42:00.000Z"
}

Zwracane są wyłącznie produkty znane z katalogu i aktualnie dostępne. Każda lista może być krótsza niż jej limit - lub pusta - gdy OpenApp nie ma wystarczająco trafnych rekomendacji. Dla loggedUser, którego OpenApp nie widział jeszcze w feedzie zamówień, wszystkie trzy listy są puste. Merchant powinien zaprojektować listy produktów tak, aby obsługiwały puste wyniki.

Elementy na każdej liście są zwracane w stabilnej kolejności sortowania. Zastosowanie kolejności prezentacji przyjaznej dla użytkownika - na przykład grupowanie według kategorii produktów - zostaje po stronie merchanta.

Rekomendacje dla użytkownika są przeliczane raz dziennie. Produkt, który użytkownik właśnie kupił, może nadal pojawiać się na listach do następnego przeliczenia. Merchant powinien ukrywać niedawno zakupione produkty podczas renderowania listy.

Gdy pole expiresAt jest obecne, odpowiedź może być cachowana i używana ponownie dla tego samego użytkownika do tego momentu - wskazuje on, kiedy będzie dostępne następne przeliczenie. Gdy expiresAt jest nieobecne, odpowiedzi nie należy cachować.

informacja

Wywołanie może trwać kilka sekund i nie może blokować użytkownika. Pobieraj rekomendacje asynchronicznie - na przykład z wyprzedzeniem lub w tle - i renderuj listę produktów po otrzymaniu odpowiedzi.

Błędy

Nazwa błęduKod
RecommendationValidationException400
RecommendationsNotReadyException409