allegro / allegro-api

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

Checkout form not found (2) #10074

Open tomylee0 opened 1 month ago

tomylee0 commented 1 month ago

Dostaję order.id z tego billingu:

{
  "id": "4491c964-8efe-4048-986b-c0bdd104096a",
  "occurredAt": "2024-09-13T17:40:28.016Z",
  "type": {
    "id": "SUC",
    "name": "Prowizja od sprzedaży"
  },
  ...
  "order": {
    "id": "2b93c4e0-71f7-11ef-8620-cd4e1b46584f"
  }
}

Przy próbie pobrania zamówienia dostaję CheckoutFormNotFoundException: trace-id: 928d788bfb119fba

Czy to ten sam problem, który zgłaszałem w #9803? Jeśli tak, to czy on dalej będzie się czasem pojawiał?

Pozdrawiam P.S. Znalazłem jeszcze takie brakujące zamówienia do których istnieją billingi: 3fb77b30-78f3-11ef-b268-4d9622232aed 49c3f5e0-78f3-11ef-b268-4d9622232aed cbb895a0-71f6-11ef-8620-cd4e1b46584f eeb9e140-78f3-11ef-b436-679471b8460b

AureliuszBrussy commented 1 month ago

Tak, to jest ta sama sytuacja. Potwierdzam, że dalej taka sytuacja może się powtarzać.

Z perspektywy naszego systemu to nie jest bug.

Zachowanie systemu wynika z faktu, że prowizję naliczamy po zakupie, a nie po płatności. W tych sytuacjach doszło do zakupu, w związku z czym naliczyliśmy prowizję (na billingu: SUC). Następnie po jakimś czasie ten zakup został opłacony wraz z innym, w związku z czym powstał nowy numer zamówienia. Prowizja już była naliczona, wpis już istnieje na billingu dlatego w tej sytuacji nie jesteśmy w stanie zmodyfikować wpisu na billingu - zgodnie założeniami jest on niemodyfikowalny.

Natomiast oczywiście opłata nie jest naliczana drugi raz, więc, tak jak wspomnieliśmy w oryginalnym wątku - z finansowego punktu widzenia wszystko się zgadza.

tomylee0 commented 1 month ago

Dzięki wielkie za wyjaśnienie. Pozdrawiam.

tomylee0 commented 1 month ago

Chciałbym jeszcze dopytać w jaki sposób w tej sytuacji powinienem odnaleźć nowy numer zamówienia na podstawie tego billingu?

AureliuszBrussy commented 1 month ago

Niestety, ale na podstawie billingu tego nie wyłapiesz.

Jedynie można wyłapać taką sytuację w dzienniku zdarzeń w zamówieniach. Możesz oprzeć się na pojedynczym akcie zakupowym - lineItem.id (jeżeli jeden lineItem.id występuje w kilku zamówieniach oznacza to, że mamy do czynienia z połączeniem zakupów przez kupującego). Czyli do tego nowszego zamówienia przechodzi lineitem.id z poprzedniego, usuniętego.