allegro / allegro-api

Issue tracker and wiki for Allegro REST API
https://developer.allegro.pl/
213 stars 39 forks source link

WZA flow zamawiania kuriera przez REST API #6999

Closed tomasz3k closed 1 year ago

tomasz3k commented 1 year ago

Mamy metodę https://developer.allegro.pl/documentation#operation/getParcelsPickupDateProposals Po jej wywołaniu bez parametry readyDate zwaraca puste tablice do każdej przesyłki. Gdy ustawię readyDate na jutro, jedna z przesyłek zwraca tablicę z dostępną datą nadania.

Pytania:

  1. Czy ta metoda jest w ogóle wymagana?
  2. Czy jeśli przy danej przesyłce zwróci pustą tablicę z datami to znaczy, że nie można do niej zamówić kuriera?
  3. Dlaczego api nie zwraca kolejnej możliwej daty kiedy można nadać przesyłkę automatycznie jeśli dziś nie jest to możliwe?
  4. Co jeśli zamówię kuriera do przesyłki, dla której otrzymałem pustą tablicę proposals?
  5. Jakie jest flow zamówienia kuriera dla przesyłek? Skąd pobrać informacje, do których przesyłek można zamówić kuriera, a do których nie?
  6. Czy protokół można wygenerować do przesyłek, do których nie zamówiliśmy kuriera?
  7. Czy generując protokół dla 100 przesyłek różnych przewoźników, api zwróci różne protokoły dla różnych typów? Czy sami mamy dzielić przesyłki według przewoźnika?
PrzemyslawLukanowski commented 1 year ago
  1. Nie, nie jest. Możesz od razu zamówić kuriera, jednak należy liczyć się z tym, że w przypadku przekazania błędnego zakresu możemy zwrócić błąd (np. ze względu na zbyt późne godziny).
  2. Jeszcze wyjaśniam z zespołem odpowiedzialnym za usługę, wrócę z informacją.
  3. jw.
  4. W takim przypadku zamówienie kuriera powinno zakończyć się prawidłowo (ew. zwrócimy błąd, jeśli dane wejściowe nie będą prawidłowe).
  5. Możesz zamówić kuriera do wszystkich paczek, które nie mają być nadane z punktu/maszyny.
  6. Tak, są też sytuacje, gdzie klient ma stały odbiór i też może mieć protokół.
  7. API zwróci protokoły wg przewoźników.
tomasz3k commented 1 year ago

To jeszcze pytanie następujące: Czy proponowane daty odbioru przesyłek są grupowane według przewoźników czy w inny sposób? Np. według miejsca nadania? Z tego co mi się wydaje powinny być grupowane według miejsca nadania, a następnie przewoźników czy mam rację?
Chodzi o to czy dla tego samego miejsca nadania i tego samego kuriera bez znaczenia parcel id, daty będą takie same?

PrzemyslawLukanowski commented 1 year ago

Ten temat również jeszcze musimy skonsultować z zewnętrznym dostawcą. Prosiłbym o cierpliwość, wrócę z informacją, jak tylko otrzymam odpowiedzi.

tomasz3k commented 1 year ago

To może na to pytanie będziesz znać odpowiedź: Zamawiając kuriera dla przesyłek mamy możliwość podania max 100 parcelId w żadaniu. Mamy sytuację, że np o 12 danego dnia sklep internetowy chce zamówić kuriera do utworzonych przesyłek. Na liście ma 50 przesyłek różnych przewoźników. Pytam więc api o proponowane daty odbioru i dla każdej z przesyłki otrzymuję, że może być wysłana dziś ale w różnych godzinach w zależności od przewoźnika.

Pytanie więc jest następujące.

  1. Czy zamówienie kuriera dla tych 50 przesyłek mogę zrobić jednym zapytaniem do api podając po prostu jakiś uśredniony czas w którym mieści się każda przesyłka?
  2. Czy też mam pogrupować przesyłki według proposals?
  3. Czy przesyłki Inpost, które zwracają zawsze pustą tablice proposals, a którym nie możemy wskazać daty nadania zawsze powinniśmy zamawiać osobno?
  4. Czy może w ogóle dla każdej przesyłki wywołać osobno zamówienie kuriera?
  5. Czy jeśli zamówię kuriera do listy paczek nie podając dat, kurier zostnie zamówiony, i przyjedzie po prostu w najbliższym możliwym terminie?

Pytań zrodziło się więcej jak to pisałem :-)

PrzemyslawLukanowski commented 1 year ago

Wracam z odpowiedziami :)

Czy jeśli przy danej przesyłce zwróci pustą tablicę z datami to znaczy, że nie można do niej zamówić kuriera?

To zależy czy przekazany jest parametr readyDate. Ten przypadek może być zależny od przewoźnika oraz usług dla przesyłki (jeżeli tego readyDate nie ma). Scenariusz gdzie można zamówić kuriera, ale proponowane godziny nie są zwracane jest np. w przypadku InPostu, ponieważ nie może on określić dokładnej godziny podjazdu.

Dlaczego api nie zwraca kolejnej możliwej daty kiedy można nadać przesyłkę automatycznie jeśli dziś nie jest to możliwe?

Wpływ na to ma przekazanie konkretnej daty w readyDate, jeżeli takowa została wskazana, to tylko dla tej daty podjazdy są zwracane.

Czy proponowane daty odbioru przesyłek są grupowane według przewoźników czy w inny sposób? Np. według miejsca nadania? Z tego co mi się wydaje powinny być grupowane według miejsca nadania, a następnie przewoźników czy mam rację? Chodzi o to czy dla tego samego miejsca nadania i tego samego kuriera bez znaczenia parcel id, daty będą takie same?

Daty odbioru przesyłek są grupowane jeżeli następujące parametry są jednakowe:

Czy zamówienie kuriera dla tych 50 przesyłek mogę zrobić jednym zapytaniem do api podając po prostu jakiś uśredniony czas w którym mieści się każda przesyłka?

Nie, przesyłki muszą być w osobnych requestach wg przewoźników, taka aby konkretny przewoźnik mógł otrzymać zlecenie podjazdu. Request, w którym będą wymieszani przewoźnicy zostanie odrzucony

Czy też mam pogrupować przesyłki według proposals?

Nie, wystarczy wg przewoźników.

Czy przesyłki Inpost, które zwracają zawsze pustą tablice proposals, a którym nie możemy wskazać daty nadania zawsze powinniśmy zamawiać osobno?

Tak.

Czy może w ogóle dla każdej przesyłki wywołać osobno zamówienie kuriera?

Wystarczy jedno zamówienie, ale w przesyłki muszą być w ramach tego samego przewoźnika.

Czy jeśli zamówię kuriera do listy paczek nie podając dat, kurier zostnie zamówiony, i przyjedzie po prostu w najbliższym możliwym terminie?

Zadziała to tylko w przypadku InPost, Poczta Polska, ORLEN Paczka i GLS. W pozostałych należy wskazać pickupDate.

tomasz3k commented 1 year ago

Wpływ na to ma przekazanie konkretnej daty w readyDate, jeżeli takowa została wskazana, to tylko dla tej daty podjazdy są zwracane.

Nie do końca. Dla przesyłki DPD podając readyDate na dziś zwróciło mi również daty na drugiego maja więc to pewnie zależy od przewoźnika...

Zadziała to tylko w przypadku InPost, Poczta Polska, ORLEN Paczka i GLS. W pozostałych należy wskazać pickupDate.

Czyli do poczty też można zamówić kuriera? Podobno się nie da... wg dokumentacji waszej :)

PrzemyslawLukanowski commented 1 year ago

Masz rację, przepraszam za pomyłkę :) Poczta nie ma metody w API, która pozwoliłaby na zamówienie podjazdu - można to zrobić tylko telefonicznie albo przez formularz na stronie PP.

tomasz3k commented 1 year ago

Jeszcze pytanie, mam nadzieję ostatnie :-)

Czy jeśli przy danej przesyłce zwróci pustą tablicę z datami to znaczy, że nie można do niej zamówić kuriera?

To zależy czy przekazany jest parametr readyDate. Ten przypadek może być zależny od przewoźnika oraz usług dla przesyłki (jeżeli tego readyDate nie ma). Scenariusz gdzie można zamówić kuriera, ale proponowane godziny nie są zwracane jest np. w przypadku InPostu, ponieważ nie może on określić dokładnej godziny podjazdu.

Zakładam, że parameter readyDate będzie zawsze i będzie wskazywał na jeden z 3 następujących dni roboczych. Np. w przypadku DHL'a zwracacie, w zależności od pory dnia pustą tablicę. Tak samo Inpost ale ten ma zawsze pustą. Pytanie wiec bo jeśli dla DHLa zwróciło pustą tablicę oznacza, to, że kurier nie może być zamówiony, ale w przypadku inpostu już może. Jak to rozróżnić? Tak by zaprezentować klientowi informacje ze do danej przesyłki nie można zamówić kuriera, a do innej już tak?

PrzemyslawLukanowski commented 1 year ago

W przypadku przewoźników InPost, ORLEN Paczka i GLS zwrócimy pustą tablicę i jest to prawidłowe zachowanie, dla nich nie musisz przekazywać pola pickupDate. Dla pozostałych kurierów wymagamy tej informacji.

tomasz3k commented 1 year ago

Proszę tylko o potwierdzenie: Gdy metoda /parcel-management/pickup-date-proposals zróci pustą tablicę dla carrierId INPOST, GLS, RUCH to jest ok i można zamówić kuriera nie podając pickupDate, Dla wszystkich pozostałych przewoźników trzeba podać pickupDate?

PrzemyslawLukanowski commented 1 year ago

Dokładnie tak.

stale[bot] commented 1 year ago

W tym wątku nie pojawiła się żadna nowa odpowiedź w ciągu 7 dni, dlatego automatycznie oznaczamy go jako przeterminowany. Jeśli w ciągu kolejnych 7 dni nie pojawi się żadna odpowiedź, wątek zostanie zamknięty. Dziękujemy za zaangażowanie w dyskusję i zachęcamy Cię do wypełnienia ankiety dotyczącej naszego wsparcia na forum.


There was no new reply in this thread within 7 days, therefore, we automatically marked it as expired. If no response is received within the next 7 days, this thread will be closed. Thank you for engaging in the discussion. We encourage you to complete our forum support survey.