allegro / allegro-api

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

Zapytanie o oferty zakończone z powodu EMPTY_STOCK #8675

Closed egro-allegro closed 8 months ago

egro-allegro commented 8 months ago

Dzień dobry. Czy istnieje metoda aby odpytać o oferty ze statusem publikacji "ENDED" oraz parametrem "endedBy" = "EMPTY_STOCK"? GET https://api.{environment}/sale/offers nie zwraca pola "endedBy", czy zatem muszę odpytać o każdą ofertę ze statusem "ENDED" osobno aby uzyskać wartość "endedBy" ?

AureliuszBrussy commented 8 months ago

Powód zakończenia zwracamy tylko, jeżeli zapytasz o szczegóły oferty. Alternatywą jest dziennik zdarzeń w ofertach (GET /sale/offer-events), gdzie zwracamy zakończenie wraz z powodem, aby na bieżąco móc śledzić te przypadki.

egro-allegro commented 8 months ago

Ale dziennik zdarzeń nie zwraca powodu zakończenia publikacji poprzez EMPTY_STOCK:   | Array of stringsItems Enum: "OFFER_ACTIVATED" "OFFER_CHANGED" "OFFER_ENDED" "OFFER_STOCK_CHANGED" "OFFER_PRICE_CHANGED" "OFFER_ARCHIVED" "OFFER_BID_PLACED" "OFFER_BID_CANCELED" "OFFER_TRANSLATION_UPDATED" "OFFER_VISIBILITY_CHANGED"

Czy w przypadku, gdy liczba dostępnego produktu osiągnie 0 to otrzymam dwa eventy: OFFER_STOCK_CHANGED oraz OFFER_ENDED ?

AureliuszBrussy commented 8 months ago

Zwracamy taką informację w zdarzeniu typu OFFER_ENDED, w polu offer.publication.endedBy:

{
"id": "MTEzMjQzODU3NA",
"occurredAt": "2019-06-26T15:26:43.891Z",
"type": "OFFER_ENDED",
"offer": {
  "id": "2865624934",
  "publication": {
    "endedBy": "EMPTY_STOCK"
  },
"external": {
"id": "externalId"
  }
 }
}

Tak, otrzymasz dwa zdarzenia.

egro-allegro commented 8 months ago

Mam jeszcze pytanie, w jakim przypadku, pomimo, że stock wykazuje wartość dodatnią to pole "endedBy" przyjmie wartość "EMPTY_STOCK" ?

Poniżej przedstawiam taką sytuację na produkcyjnym środowisku Allegro:

{"name":"Knorr Kostka Rosołowa/Bulionowa Wołowy 120 g","productSet":[{"product":{"id":"8fc07942-31d9-4aa8-b9fd-afb598be8eba","publication":{"status":"LISTED"},"parameters":[{"id":"210758","name":"Postać","values":["kostka rosołowa/bulionowa"],"valuesIds":["210758_1781893"],"rangeValue":null},{"id":"225693","name":"EAN (GTIN)","values":["8712423009554"],"valuesIds":null,"rangeValue":null},{"id":"224017","name":"Kod producenta","values":["8712423009554"],"valuesIds":null,"rangeValue":null},{"id":"235577","name":"Marka","values":["Knorr"],"valuesIds":["235577_723172"],"rangeValue":null},{"id":"244509","name":"Nazwa handlowa","values":["KNORR BULION WOŁOWY 120G"],"valuesIds":null,"rangeValue":null},{"id":"237130","name":"Smak","values":["wołowy"],"valuesIds":["237130_407802"],"rangeValue":null},{"id":"221929","name":"Waga","values":["120"],"valuesIds":null,"rangeValue":null},{"id":"17448","name":"Waga produktu z opakowaniem jednostkowym","values":["0.13"],"valuesIds":null,"rangeValue":null},{"id":"230753","name":"Liczba sztuk w opakowaniu","values":["12"],"valuesIds":null,"rangeValue":null}]},"quantity":{"value":1},"responsiblePerson":null}],"parameters":[],"images":["https://a.allegroimg.com/original/11c6b9/7a84ca644234a166f324322d1a3b"],"afterSalesServices":{"impliedWarranty":{"id":"d00d6cfe-103d-48a5-8ff1-4d04c79a05de"},"returnPolicy":{"id":"135c31d8-515a-4829-a8ed-6dae6d2df53c"},"warranty":null},"payments":{"invoice":"VAT"},"sellingMode":{"format":"BUY_NOW","price":{"amount":"4.60","currency":"PLN"},"startingPrice":null,"minimalPrice":null},"stock":{"available":20,"unit":"UNIT"},"location":{"countryCode":"PL","province":"LODZKIE","city":"Łódź","postCode":"90-369"},"delivery":{"shippingRates":{"id":"07115caa-f7f0-49ef-a974-2bdd144171af"},"handlingTime":"PT48H","additionalInfo":null,"shipmentDate":null},"description":{"sections":[{"items":[{"type":"TEXT","content":"<h1>Knorr Kostka Rosołowa/Bulionowa Wołowy 120 g</h1>"},{"type":"IMAGE","url":"https://a.allegroimg.com/original/11c6b9/7a84ca644234a166f324322d1a3b"}]}]},"external":{"id":"7450"},"category":{"id":"261159"},"tax":{"percentage":"5.00","rate":"5.00","subject":"GOODS","exemption":null,"id":"08d3300e-a714-418e-8208-09159cbffe08"},"taxSettings":{"subject":"GOODS","exemption":null,"rates":[{"rate":"5.00","countryCode":"PL"}]},"sizeTable":null,"discounts":{"wholesalePriceList":null},"contact":null,"fundraisingCampaign":null,"messageToSellerSettings":null,"attachments":[],"b2b":null,"additionalServices":null,"compatibilityList":null,"additionalMarketplaces":{"allegro-cz":{"sellingMode":null,"publication":{"state":"NOT_REQUESTED","refusalReasons":[]}},"allegro-sk":{"sellingMode":null,"publication":{"state":"NOT_REQUESTED","refusalReasons":[]}}},"id":"14066184573","language":"pl-PL","publication":{"status":"ENDED","duration":null,"endedBy":"EMPTY_STOCK","endingAt":null,"startingAt":null,"republish":false,"marketplaces":{"base":{"id":"allegro-pl"},"additional":[]}},"validation":{"errors":[],"warnings":[],"validatedAt":"2023-07-28T12:53:06.762Z"},"createdAt":"2023-07-28T07:43:11.000Z","updatedAt":"2024-01-24T10:48:52.173Z"}

AureliuszBrussy commented 8 months ago

Nie, jest to jedyny powód. Ta oferta została zakończona przez wyprzedanie, tutaj mamy sytuację taką, że stock został zmodyfikowany po jej zakończeniu.

egro-allegro commented 8 months ago

Czyli, kiedy stock oferty zmienię przez API na 0 to automatycznie status zmieni się na ENDED oraz pole endedBy otrzyma wartość "EMPTY_STOCK", ale kiedy zmienię stock takiej zakończonej oferty na > 0 to muszę również przesłać status oferty jako ACTIVE? Wtedy po wznowieniu oferty wartość pola edndeBy będzie już pusta?

AureliuszBrussy commented 8 months ago

Tak, zgadza się.