Dziennik zdarzeń w ofertach sprzedawcy

GET /sale/offer-events to dziennik zdarzeń w ofertach zalogowanego sprzedawcy, który zwraca informacje z ostatnich 24 godzin o:

  • wystawieniu oferty (“type”: “OFFER_ACTIVATED”);

  • zmianie w ofercie (“type”: “OFFER_CHANGED”);

  • zmianie liczby sztuk w ofercie - zwracany również po zakupie (“type”: “OFFER_STOCK_CHANGED”);

  • zmianie ceny w ofercie (“type”: “OFFER_PRICE_CHANGED”);

  • zakończeniu oferty (“type”: “OFFER_ENDED”);

  • zarchiwizowaniu oferty (“type”: “OFFER_ARCHIVED”);

  • złożeniu oferty w licytacji (“type”: “OFFER_BID_PLACED”);

  • wycofaniu oferty w licytacji (“type”: “OFFER_BID_CANCELED”).


W wywołaniu możesz podać parametry wejściowe, które pozwolą ci dopasować odpowiedź do twoich potrzeb:

  • from - podaj id eventu, by uzyskać wszystkie eventy które nastąpiły później (np. from=MTEzMjQzODU3NA);

  • limit - podaj liczbę eventów, które chcesz uzyskać w odpowiedzi (domyślnie 100, max. 1000);

  • type - podaj typ eventów, które chcesz uzyskać w odpowiedzi (np. type=OFFER_ENDED).

Przykładowy request - którym uzyskasz 200 zdarzeń o zmianie liczby sztuk, które nastąpiły po evencie o “id”: “MTU2Mzg2NTM5MTU2Mzg0Ng”

  curl -X GET \
  'https://api.allegro.pl/sale/offer-events?from=MTU2Mzg2NTM5MTU2Mzg0Ng&limit=200&type=OFFER_STOCK_CHANGED' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Authorization: Bearer {token}'

Jak pobrać moje oferty w REST API

Aby otrzymać listę wszystkich ofert danego użytkownika, wywołaj metodę GET /sale/offers. Musisz być zautoryzowanym jako sprzedawca, który utworzył te oferty. Domyślnie oferty posortowane są po identyfikatorze oferty malejąco.


Aby dostosować listę wyszukiwania do swoich potrzeb możesz skorzystać z parametrów:

  • limit by określić liczbę ofert na liście (przyjmuje wartości od 1 do 1000),

  • offset by wskazać miejsce, od którego chcesz pobrać kolejną porcję danych (min. 0),

np. GET sale/offers?limit=100&offset=10

Filtry

Przeszukiwanie listy ułatwią ci filtry:

  • oferty z odpowiednim statusem - wywołaj GET /sale/offers?publication.status={status} - może zawierać jedną lub więcej wartości, np. GET sale/offers?publication.status=INACTIVE&publication.status=ACTIVE

    • INACTIVE - draft oferty,

    • ACTIVE - wystawiona oferta,

    • ACTIVATING - zaplanowana oferta lub w czasie wystawiania,

    • ENDED - zakończona oferta.

  • szukanie po identyfikatorze oferty - wywołaj GET /sale/offers?offer.id={offer.id}

  • szukanie po sygnaturze (jednym lub więcej external.id) - wywołaj GET /sale/offers?external.id={external_id}&external.id={external_id}

  • szukanie po tytule - wywołaj GET /sale/offers?name={name} - należy podać choć jedną literę, na którą zaczyna się jakikolwiek wyraz z tytułu

  • szukanie po identyfikatorze kategorii - wywołaj GET /sale/offers?category.id={categoryId}

  • szukanie ofert, które nie posiadają przypisanego produktu - wywołaj GET /sale/offers?product.id.empty=true

  • szukanie ofert, które należą do kategorii, w których produktyzacja jest obowiązkowa - wywołaj GET /sale/offers?productizationRequired=true

  • szukanie po cenniku dostawy - wywołaj GET/sale/offers?delivery.shippingRates.id={id}

  • szukanie ofert bez cennika dostawy - wywołaj GET/sale/offers?delivery.shippingRates.id.empty=true

  • minimalna cena - wywołaj GET /sale/offers?sellingMode.price.amount.gte={price}

  • maksymalna cena - wywołaj GET /sale/offers?sellingMode.price.amount.lte={price}

  • format sprzedaży - wywołaj GET /sale/offers?sellingMode.format={format} - może zawierać jedną lub więcej wartości oddzielonych przecinkiem:

    • BUY_NOW - Kup teraz,

    • ADVERTISEMENT - ogłoszenie,

    • AUCTION - licytacja.

Sortowanie

Domyślnie oferty posortowane są od najnowszej (po ID malejąco). Aby otrzymać oferty w innej kolejności, możesz je posortować korzystając z GET /sale/offers?sort={value}. Możesz skorzystać z następujących wartości:

  • sellingMode.price.amount - sortowanie po cenie rosnąco,

  • -sellingMode.price.amount - sortowanie po cenie malejąco,

  • stock.sold - sortowanie po liczbie sprzedanych przedmiotów rosnąco,

  • -stock.sold - sortowanie po liczbie sprzedanych przedmiotów malejąco,

  • stock.available - sortowanie po liczbie dostępnych przedmiotów rosnąco,

  • -stock.available - sortowanie po liczbie dostępnych przedmiotów malejąco.


Użyj parametrów limit (przyjmuje wartości od 1 do 1000) i offset (min. 0, maksymalnie ilość ofert -1) do pobierania odpowiednich porcji ofert.


Poniżej kilka przykładów wywołań dla listy ofert:

  • wyszukaj wszystkie moje aktywne oferty i posortuj je po liczbie sprzedanych przedmiotów rosnąco: GET /sale/offers?publication.status=ACTIVE&sort=stock.sold,

  • wyszukaj wszystkie moje oferty kup teraz, które w tytule mają frazę “suszarka” GET /sale/offers?sellingMode.format=BUY_NOW&name=suszarka,

  • wyszukaj wszystkie moje oferty, w których cena przedmiotu mieści się w przedziale od 50 do 120 PLN i posortuj je po cenie malejąco: GET /sale/offers?sellingMode.price.amount.gte=50&sellingMode.price.amount.lte=120&sort=-sellingMode.price.amount,

  • wyświetl wszystkie oferty łącznie z draftami: GET /sale/offers?publication.status=INACTIVE&publication.status=ACTIVATING&publication.status=ACTIVE&publication.status=ENDED,

  • wyświetl listę moich ofert

Przykładowy request:

  curl -X GET \
  https://api.allegro.pl/sale/offers \
 -H 'Authorization: Bearer {token}' \
 -H 'Accept: application/vnd.allegro.public.v1+json'

Kliknij, żeby zobaczyć przykładowy response:
 {
    "offers": [
        {
            "id": "7610768778",               -- numer identyfikacyjny oferty
            "name": "Suszarka do włosów A180 dyfuzor",    -- tytuł oferty
            "category": {
                "id": "67481"                 -- kategoria najniższego rzędu, w której
                                              znajduje się oferta
            },
            "primaryImage": {                 -- zdjęcie główne w ofercie (miniaturka)
                "url": "https://9.allegroimg.com/original/03d631/d744e5be46dfbfb687d2faee38b9"
            },
            "sellingMode": {
                "format": "BUY_NOW",          -- format sprzedaży, przyjmuje wartości:
                                              "BUY_NOW" (Kup teraz), "ADVERTISEMENT"
                                              (ogłoszenie), "AUCTION" (licytacja)
                "price": {
                    "amount": "133.0",        -- cena dla oferty w formacie BUY_NOW (Kup
                                              Teraz), ADVERTISEMENT (ogłoszenie)
                    "currency": "PLN"
                },
                "minimalPrice": null,         -- cena minimalna, dostępna w formacie
                                              sprzedaży AUCTION (licytacja)
                "startingPrice": null         -- cena początkowa licytacji, dostępna w
                                              formacie sprzedaży AUCTION (licytacja)
            },
            "saleInfo": {
                "currentPrice": null,         -- cena zakupu w licytacji
                "biddersCount": 0             -- liczba osób licytujących
            },
            "stats": {
                "watchersCount": 0,           -- liczba obserwowanych
                "visitsCount": 0              -- liczba odwiedzonych
            },
            "stock": {
                "available": 8,               -- liczba przedmiotów aktualnie dostępnych
                                              w ofercie
                "sold": 0                     -- liczba sprzedanych przedmiotów w ofercie
                                              z ostatnich 30 dni
            },
            "publication": {
                "status": "ACTIVE",           -- status oferty, przyjmuje wartości:
                                              "INACTIVE" (draft), "ACTIVE" (wystawiona),
                                              "ACTIVATING" (planowana lub w czasie wystawiania),
                                              "ENDED" (zakończona)
                "startingAt": null,                    -- data zaplanowanego wystawienia
                "startedAt": "2018-10-11T12:16:02Z",   -- data wystawienia oferty
                "endingAt": "2018-10-21T12:16:02Z",    -- data planowanego zakończenia oferty
                "endedAt": null                        -- faktyczna data zakończenia oferty
            },
            "afterSalesServices": {
                "warranty": {
                  "id": "2d15741b-93b1-4d24-989c-dc2d412d91ff" -- identyfikator warunków gwarancji
                },
                "returnPolicy": {
                  "id": "cf5f8e7a-4488-4420-810d-259bd84b745f"  -- identyfikator polityki zwrotów
                },
                "impliedWarranty": {
                  "id": "de2ad368-2682-47ab-9868-d813d968846a"  -- identyfikator opisu reklamacji
                }
            },
            "additionalServices": {
                "id": "ab18d75d-5db2-4bee-aca5-32de952a7b44"    -- identyfikator usług dodatkowych
            },
            "external": {
                "id": "external_id"                          -- sygnatura - zewnętrzny identyfikator
            }
        },
        {
            "id": "7569844187",
            "name": "fotel bujany",
            "category": {
                "id": "20285"
            },
            "primaryImage": {
                "url": "https://9.allegroimg.com/original/03d631/d744e5be46dfbfb687d2faee37b9"
            },
            "sellingMode": {
                "format": "AUCTION",
                "price": {
                    "amount": "220.0",
                    "currency": "PLN"
                },
                "minimalPrice": null,
                "startingPrice": {
                    "amount": "150.0",
                    "currency": "PLN"
                }
            },
            "saleInfo": {
                "currentPrice": {
                    "amount": "150.0",
                    "currency": "PLN"
                },
                "biddersCount": 0
            },
            "stats": {
                "watchersCount": 0,
                "visitsCount": 17
            },
            "stock": {
                "available": 1,
                "sold": 0
            },
            "publication": {
                "status": "ENDED",
                "startingAt": null,
                "startedAt": "2018-10-02T11:16:13Z",
                "endingAt": "2018-10-07T11:16:13Z",
                "endedAt": "2018-10-07T11:16:13Z"
            },
            "afterSalesServices": {
                "warranty": {
                    "id": "2d15741b-93b1-4d24-989c-dc2d412d91ff"
                },
                "returnPolicy": {
                    "id": "cf5f8e7a-4488-4420-810d-259bd84b745f"
                },
                "impliedWarranty": {
                    "id": "de2ad368-2682-47ab-9868-d813d968846a"
                }
            },
            "additionalServices": null,
            "external": null
        }
    ],
    "count": 2,                        -- liczba ofert w tej odpowiedzi
    "totalCount": 2                    -- liczba ofert dostępnych dla tego zapytania
 }

Edycja pojedynczej oferty

Na początek możesz pobrać ofertę, którą chcesz edytować za pomocą GET sale/offers/{offerId}. Następnie skorzystaj z PUT /sale/offers/{offerId} - prześlij ofertę z wprowadzonymi zmianami. Zmiany możesz wprowadzać w każdej ofercie - tej trwającej i tej zakończonej. Jeśli prześlesz niekompletne dane, to w polu validation wyświetlimy:

  • co powinieneś uzupełnić,

  • błędy, jakie pojawiły się w twojej ofercie.

Uwaga! Nawet jeśli aktualizujesz wartość tylko w jednym polu, to musisz przesłać pełną strukturę pól oferty, łącznie z numerem oferty.

Edycja wielu ofert jednocześnie

WAŻNE! W pojedynczym wywołaniu możesz wyedytować do 1000 ofert.

Cena

PUT /sale/offer-price-change-commands/{commandId} - tym zasobem zlecisz zmianę ceny w wybranych ofertach. W commandId podaj wartość w formacie UUID - wygeneruj go we własnym zakresie. Musisz być zautoryzowany jako sprzedawca, który wystawił te oferty. Udostępniamy poniższe typy modyfikacji ceny:

zmiana ceny w ofertach - wartościowo

Przykładowy request:

  curl -X PUT \
  https://api.allegro.pl/sale/offer-price-change-commands/{CommandId} \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -d '{
    "modification":{
        "type":"FIXED_PRICE",     -- dostępne wartości: "FIXED_PRICE" (zmiana ceny
                                  na podaną wartość), "INCREASE_PRICE"
                                  (zwiększenie ceny o podaną wartość),
                                  "DECREASE_PRICE" (zmniejszenie ceny o podaną wartość)
        "price":{                 -- jeśli jako "type" wybierzesz "INCREASE_PRICE"
                                  lub "DECREASE_PRICE", zmień nazwę tego pola na "value"
            "amount":"10.50",     -- wartość zmiany ceny. 
            "currency":"PLN"
           }
        },
    "offerCriteria":[
        {
          "type":"CONTAINS_OFFERS",
          "offers":[              -- lista ofert w których chcesz dokonać zmian
           {
             "id":"7660573029"
           },
           {
             "id":"7644576839"
           }
          ]
        }
     ]
  }'

zmiana ceny w ofertach o podany procent

Przykładowy request:

  curl -X PUT \
  https://api.allegro.pl/sale/offer-price-change-commands/{CommandId} \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -d '{
    "modification":{
        "type":"INCREASE_PERCENTAGE",     -- dostępne wartości: INCREASE_PERCENTAGE"
                                        (zwiększenie ceny o podany %),
                                        "DECREASE_PERCENTAGE" (zmniejszenie ceny o podany %)
        "percentage": 10				  -- procent o jaki chcesz zwiększyć
                                        lub zmniejszyć cenę
        },
    "offerCriteria":[
        {
          "type":"CONTAINS_OFFERS",
          "offers":[              -- lista ofert w których chcesz dokonać zmian
           {
             "id":"7660573029"
           },
           {
             "id":"7644576839"
           }
          ]
        }
     ]
  }'

Przykładowy response dla edycji ceny:

  {
    "id": "aacfb40c-daca-4252-91ef-244d68d28123",
    "taskCount": {                      -- do momentu rozpoczęcia przetwarzania pokazujemy
                                        wartość 0, dopiero po chwili pojawią się właściwe
                                        liczby ofert do przetworzenia
            "total": 0,
            "success": 0,
            "failed": 0
    }
  }


GET /sale/offer-price-change-commands/{commandId} Przy pomocy tego zasobu dowiesz się, w ilu ofertach wprowadziliśmy zmiany w ramach podanego {commandId}. Otrzymasz zestawienie, przy ilu ofertach edycja przebiegła pomyślnie, a przy ilu zakończyła się niepowodzeniem. Musisz być zautoryzowany jako sprzedawca, który wystawił te oferty.

Przykładowy request:

  curl -X GET \
  https://api.allegro.pl/sale/offer-price-change-commands/{commandId} \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json'

Przykładowy response:

  {
    "id": "aacfb40c-daca-4252-91ef-244d68d28123",
    "taskCount": {
        "total": 2,                                  -- liczba ofert, w których zleciłeś edycję
        "success": 2,                                -- liczba ofert, w których zmiany zostały
                                                        wprowadzone
        "failed": 0                                  -- liczba ofert, w których
                                                        zmiany nie zostały wprowadzone
    }          
  }


GET /sale/offer-price-change-commands/{commandId}/tasks Tym zasobem sprawdzisz statusy zadań operacji grupowej zmiany ceny w ramach jednego {commandId}. W odpowiedzi otrzymasz listę edytowanych ofert ze statusem i czasem edycji. Musisz być zalogowany jako sprzedawca, który wystawił te oferty. Dla tego zasobu można skorzystać z parametrów, które pozwolą pobrać odpowiednie porcje danych:

  • limit by określić liczbę ofert na liście (przyjmuje wartości od 1 do 1000),

  • offset by wskazać miejsce, od którego chcesz pobrać kolejną porcję danych (domyślnie 0).

Przykładowy request:

  curl -X GET \
  https://api.allegro.pl/sale/offer-price-change-commands/aacfb40c-daca-4252-91ef-244d68d28123/tasks \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json'

Przykładowy response:

  {
    "tasks": [
        {
            "offer": {
                "id": "7644576839"                           -- identyfikator oferty
            },
            "message": "",
            "status": "SUCCESS",                             -- status wykonanej edycji
            "scheduledAt": "2018-11-14T11:42:38.388+01:00",  -- data rozpoczęcia edycji
            "finishedAt": "2018-11-14T11:42:41.499+01:00",   -- data zakończenia edycji
            "field": "price"                                 -- pole, które edytowałeś
        },
        {
            "offer": {
                "id": "7660573029"
            },
            "message": "",
            "status": "SUCCESS",
            "scheduledAt": "2018-11-14T11:42:38.397+01:00",
            "finishedAt": "2018-11-14T11:42:41.498+01:00",
            "field": "price"
        }
    ]
 }

Liczba przedmiotów

PUT /sale/offer-quantity-change-commands/{commandId} - tym zasobem zlecisz operację grupową zmiany liczby przedmiotów w wybranych ofertach. W commandId podaj wartość w formacie UUID - wygeneruj go we własnym zakresie. Musisz być zautoryzowany jako sprzedawca, który wystawił te oferty.

Przykładowy request:

  curl -X PUT \
  https://api.allegro.pl/sale/offer-quantity-change-commands/{commandId} \
  -H 'Authorization: Bearer {token}' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -d '{
    "modification":{
        "changeType":"FIXED",           -- dostępne wartości: “FIXED” (docelowa liczba
                                        sztuk w ofercie), “GAIN” (dodaj/odejmij
                                        od liczby przedmiotów w ofercie. By odjąć wpisz
                                        w polu value wartość z minusem)
        "value":30                      -- wartość na jaką (FIXED) lub o jaką (GAIN)
                                        chcesz zmienić liczbę sztuk w ofercie       
            },
    "offerCriteria":[
    {
        "type":"CONTAINS_OFFERS",
        "offers":[                      -- lista ofert w których chcesz dokonać zmian
         {
           "id":"7660573029"
         },
         {
           "id":"7644576839"
         }
        ]
     }
    ]
 }'

Przykładowy response:

  {
    "id": "e476171a-18b1-44e5-81d1-d142b86ff13d",
    "taskCount": {                      -- do momentu rozpoczęcia przetwarzania pokazujemy
                                        wartość 0, dopiero po chwili pojawią się właściwe
                                        liczby ofert do przetworzenia
            "total": 0,
            "success": 0,
            "failed": 0
    }
  }


GET /sale/offer-quantity-change-commands/{commandId} - użyj tego zasobu, by sprawdzić ogólny status zleconej operacji grupowej zmiany liczby przedmiotów w ramach jednego {commandId}. Musisz być zalogowany jako sprzedawca, który wystawił te oferty.

Przykładowy request:

  curl -X GET \
  https://api.allegro.pl/sale/offer-quantity-change-commands/e476171a-18b1-44e5-81d1-d142b86ff13d \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json'

Przykładowy response:

  {
    "id": "e476171a-18b1-44e5-81d1-d142b86ff13d",
    "taskCount": {
        "total": 2,                                  -- liczba ofert, w których zleciłeś edycję
        "success": 2,                                -- liczba ofert, w których zmiany zostały
                                                        wprowadzone
        "failed": 0                                  -- liczba ofert, w których
                                                        zmiany nie zostały wprowadzone
    }          
  }


GET /sale/offer-quantity-change-commands/{commandId}/tasks użyj tego zasobu, by sprawdzić statusy zadań operacji grupowej zmiany liczby przedmiotów w ramach jednego {commandId}. Musisz być zalogowany jako sprzedawca, który wystawił te oferty. Dla tego zasobu można skorzystać z parametrów, które pozwolą pobrać odpowiednie porcje danych:

  • limit by określić liczbę ofert na liście (domyślnie 100, min.1 max 1000),

  • offset by wskazać miejsce, od którego chcesz pobrać kolejną porcję danych (domyślnie 0).

Przykładowy request:

  curl -X GET \
  https://api.allegro.pl/sale/offer-quantity-change-commands/e476171a-18b1-44e5-81d1-d142b86ff13d/tasks \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json'

Przykładowy response:

  {
    "tasks": [
        {
            "offer": {
                "id": "7644576839"                            -- identyfikator oferty
            },
            "message": "",
            "status": "SUCCESS",                              -- status wykonanej edycji
            "scheduledAt": "2018-11-14T12:54:54.624+01:00",   -- data rozpoczęcia edycji
            "finishedAt": "2018-11-14T12:54:57.103+01:00",    -- data zakończenia edycji
            "field": "quantity"                               -- pole, które edytowałeś
        },
        {
            "offer": {                    
                "id": "7660573029"
            },
            "message": "",
            "status": "SUCCESS",
            "scheduledAt": "2018-11-14T12:54:54.634+01:00",
            "finishedAt": "2018-11-14T12:54:58.499+01:00",
            "field": "quantity"
        }
    ]
  }


PUT /sale/offer-modification-commands/{commandId} - to zasób którym wyedytujesz wiele ofert na raz. W commandId podaj wartość w formacie UUID - wygeneruj go we własnym zakresie. Musisz być zautoryzowany jako sprzedawca, który wystawił te oferty.

Uwaga! Możesz grupowo zmienić tylko jeden element podczas jednego requestu.

Cennik dostawy

Przykładowy request dla zmiany cennika dostawy:

  curl -X PUT \
  https://api.allegro.pl/sale/offer-modification-commands/{commandId} \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -d '{
    "modification":
        {
            "delivery": {
                "shippingRates": {
                "id": "4b9ad5b9-7ee9-409b-86f5-578672c13df8" -- numer identyfikacyjny cennika
                                                            dostawy, pobierzesz go za pomocą metody
                                                            GET /sale/shipping-rates
                                                            Przed przypisaniem cennika dostawy uzupełnij pole "location".
                                                            Dla formatu sprzedaży typu ADVERTISEMENT
                                                            (ogłoszenie) zostaw to pole puste -
                                                            prześlij "delivery": null
                }
            }
        },
      "offerCriteria":[
        {
            "type":"CONTAINS_OFFERS",
            "offers":[
                {
                  "id":"7531636067"
                },
                {
                  "id":"7512439587"
                }
            ]
        }
     ]
   }

Przykładowy response

 {
    "id": "30354f98-6788-4db6-83c4-1e7e404dc137",       -- {commandId} - wartość, którą podasz w zapytaniu.
                                                        Na jej podstawie możesz sprawdzić stan wprowadzanych
                                                        zmian
    "taskCount": {                                      -- do momentu rozpoczęcia przetwarzania pokazujemy
                                                        wartość 0, dopiero po chwili pojawią się właściwe
                                                        liczby ofert do przetworzenia
        "total": 0,                         
        "success": 0,
        "failed": 0
    }
  }


GET /sale/offer-modification-commands/{commandId} Przy pomocy tego zasobu dowiesz się, w ilu ofertach wprowadziliśmy zmiany w ramach podanego {commandId}. Otrzymasz zestawienie, przy ilu ofertach edycja przebiegła pomyślnie, a przy ilu zakończyła się niepowodzeniem. Musisz być zautoryzowany jako sprzedawca, który wystawił te oferty.

Przykładowy request:

  curl -X GET \
  'https://api.allegro.pl/sale/offer-modification-commands/{commandId}'
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json'

Przykładowy response:

  {
    "id": "6666c97f-0d32-4747-8a17-1da38f9499de",
    "taskCount": {
        "total": 2,                                  -- liczba ofert, w których zleciłeś edycję
        "success": 2,                                -- liczba ofert, w których zmiany zostały
                                                        wprowadzone
        "failed": 0                                  -- liczba ofert, w których
                                                        zmiany nie zostały wprowadzone
    }          
  }


GET /sale/offer-modification-commands/{commandId}/tasks Tym zasobem pobierzesz raport zmian, których dokonałeś w wielu ofertach dla danego {commandId}. Znajdziesz w nim informacje, czy edycja zakończyła się sukcesem, czy nie, a także pola w których dokonałeś edycji. Musisz być zautoryzowany jako sprzedawca, który wystawił te oferty.

Przykładowy request:

  curl -X GET \
  'https://api.allegro.pl/sale/offer-modification-commands/{commandId}/tasks'
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json'

Przykładowy response:

  {
    "tasks": [
        {
            "offer": {
                "id": "7512439587"                          -- numer identyfikacyjny oferty
            },
            "message": "",
            "status": "SUCCESS",
            "scheduledAt": "2018-08-28T10:09:51.002+02:00", -- data zlecenia zmiany
            "finishedAt": "2018-08-28T10:09:51.663+02:00",  -- data wprowadzenia zmiany
            "field": "shippingRates"                        -- pole, które edytowałeś
        },
        {
            "offer": {
                "id": "7531636067"
            },
            "message": "",
            "status": "SUCCESS",
            "scheduledAt": "2018-08-28T10:09:51.005+02:00",
            "finishedAt": "2018-08-28T10:09:51.48+02:00",
            "field": "shippingRates"
        }
    ]
  }


Poza cennikami dostawy, za pomocą tego zasobu dodasz lub zmienisz:

Przypisz oferty do cennika hurtowego

  {
    "modification": {
    "discounts": {                                         -- typ zmiany
      "wholesalePriceList": {                    
       "id": "9de4be5d-9c60-48aa-8711-363625c9d793"        -- identyfikator cennika
      }
    }
  },
  "offerCriteria":[
      {
        "type":"CONTAINS_OFFERS",
        "offers":[
         {
           "id":"9292002929"                               -- identyfikator oferty
         },
         {
           "id":"9876543210"
         }
        ]
      }
   ]
  }

Promowanie

 {
    "offerCriteria": [
    {
      "offers": [						        -- lista ofert, w których chcesz
                                                wykonać zmiany
        {
          "id": "12345678"
        }
      ],
      "type": "CONTAINS_OFFERS"
    }
  ],
    "modification": {
        "basePackage": {
        "id": "emphasized10d"
      },
      "extraPackages": [
        {
          "id": "departmentPage"
        }
      ],
      "modificationTime": "END_OF_CYCLE" 		-- kiedy chcesz wykonać zmianę,
                                                dostępne wartości to “NOW” (od razu)
                                                oraz “END_OF_CYCLE”
                                                (z końcem cyklu, jest to
                                                wartość domyślna)
      }
    }

Tabele rozmiarów

  {
    "modification": {
    "sizeTable": {          
      "id": "de2689bc-3d47-11e8-811c-246e9677f638"      -- identyfikator tabeli rozmiarów,
                                                        pobierzesz go przy pomocy metody
                                                        GET /sale/size-tables
     }
    },
    "offerCriteria":[
      {
        "type":"CONTAINS_OFFERS",
        "offers":[
         {
           "id":"7531636067"
         },
         {
           "id":"7512439587"
         }
       ]
      }
    ]
  }

Informacje o fakturze

  {
    "modification": {
    "payments": {
      "invoice": "VAT",                             -- informacja o fakturze;
                                                    dostępne są 4 wartości: VAT (faktura VAT);
                                                    VAT_MARGIN (faktura VAT marża);
                                                    WITHOUT_VAT (faktura bez VAT);
                                                    NO_INVOICE (nie wystawiam faktury)   
      "tax": {                                      -- stawka podatku VAT, możesz określić tylko,
         "percentage": "23.00"                      gdy jako typ faktury wybrana jest opcja "VAT",
      }                                             dostępne wartości: 0%, 5%, 8%, 23%
    }
   },
    "offerCriteria":[
      {
        "type":"CONTAINS_OFFERS",
        "offers":[
         {
        "  id":"7531636067"
         },
         {
          "id":"7512439587"
         }
       ]
     }
    ]
 }

Usługi dodatkowe

 {
    "modification": {
        "additionalServicesGroup": {                 -- określa grupę usług dodatkowych
                                                     jaką chcesz przypisać do ofert           
        "id": "240e22a8-9e57-4fc2-b386-8b5ac1aeaa34" -- identyfikator grupy usług dodatkowych
                                                     pobierzesz go przy pomocy metody:
                                                     GET /sale/offer-additional-services/groups
     }
   },
     "offerCriteria":[
      {
        "type":"CONTAINS_OFFERS",
        "offers":[
         {
          "id":"7531636067"
         },
         {
          "id":"7512439587"
         }
       ]
      }
    ]
}

Czas trwania oferty

Ważne!

  • W statusie INACTIVE w ofertach typu Kup Teraz i w licytacjach możesz dowolnie zmienić czas trwania.

  • W statusie ACTIVE:

    • W licytacjach nie możesz zmienić czasu trwania;

    • W ofertach typu Kup Teraz czas trwania możesz zmienić jedynie na „do wyczerpania przedmiotów”.

  • W statusie ENDED:

    • W licytacjach nie możesz zmienić czasu trwania;

    • W ofertach typu Kup Teraz czas trwania możesz zmienić jedynie na „do wyczerpania przedmiotów”. Pamiętaj, że po tej zmianie musisz aktywować ofertę, by była widoczna w serwisie.

Możesz ustawić wartość dla jednego z dwóch parametrów:

  • duration - czas trwania w formacie ISO8601, np. “PT72H”;

  • durationUnlimited - czas trwania do wyczerpania przedmiotów;

W przypadku, gdy prześlesz dwa parametry API zwróci błąd walidacji.


Przykładowy request - ustawienie określonego czasu trwania:

 {
    "modification": {
        "publication": {
            "duration": “PT720H”                       
        }
    },
    "offerCriteria": [
        {
        "offers": [
            {
                "id": "8360057987"
            }
        ],
                "type": "CONTAINS_OFFERS"
        }
    ]
 }

Przykładowy request - ustawienie opcji do wyczerpania zapasów:

 {
    "modification": {
        "publication": {
            "durationUnlimited": true                      
        }
    },
    "offerCriteria": [
        {
        "offers": [
            {
                "id": "8360057987"
            }
        ],
                "type": "CONTAINS_OFFERS"
        }
    ]
 }

Kategorie i parametry

Dziennik zmian w kategoriach

Skorzystaj z GET /sale/category-events, aby pobrać informację o zmianach w kategoriach, które wydarzyły się w ostatnich 3 miesiącach. Domyślnie w odpowiedzi otrzymasz 100 najstarszych zdarzeń. Aby dopasować wyniki do swoich potrzeb, użyj filtrów:

  • from - ID eventu, od którego chcesz pobrać kolejną porcję danych. W odpowiedzi otrzymasz zdarzenia, które nastąpiły po tym ID;

  • limit - liczba wyników, które zwrócimy w odpowiedzi. Domyślna wartość to 100, maksymalna 1000;

  • type - rodzaj zdarzenia:

    • CATEGORY_CREATED - utworzyliśmy nową kategorię;

    • CATEGORY_RENAMED - zmieniliśmy nazwę kategorii;

    • CATEGORY_MOVED - przenieśliśmy kategorię w inne miejsce w drzewie kategorii, zmieniliśmy tym samym wartość parent.id danej kategorii;

    • CATEGORY_DELETED - usunęliśmy kategorię, nie jest już dostępna. W swoich żądaniach użyj category.id widoczne w polu redirectCategory.
      Żądanie może zawierać jedną lub więcej wartości, np. GET /sale/category-events?type=CATEGORY_CREATED&type=CATEGORY_MOVED


Przykładowy request:

  curl -X GET 
  ‘https://api.allegro.pl/sale/category-events’/
  -H ‘Authorization: Bearer {token}’ /
  -H ‘Accept: application/vnd.allegro.public.v1+json’


Przykładowy response:

   {
    ...
	  {	
  	    "id": "MTEzMjQzODU3NA",			            -- ID zdarzenia
        "occurredAt": "2021-01-12T15:26:43.891Z",	-- czas wystąpienia zdarzenia
        "type": "CATEGORY_CREATED",			        -- typ zdarzenia
        "category": {					            -- dane kategorii, której dotyczy 
								                    zdarzenie
            "id": "165",					        -- ID kategorii
            "name": "Smartphones and Cell Phones",	-- nazwa kategorii
            "parent": {
                "id": "4"				            -- ID kategorii nadrzędnej
                },
            "leaf": false					        -- czy dana kategoria jest kategorią
								                    najniższego rzędu
                }
          }
    ...
    }

Jak sprawdzić nieuzupełnione parametry w ofertach

Skorzystaj z GET /sale/offers/unfilled-parameters i sprawdź brakujące parametry w ofertach. W odpowiedzi zwrócimy domyślnie listę 100 ofert, w których nie są uzupełnione parametry obowiązkowe oraz te, które w ciągu najbliższych 3 miesięcy oznaczymy jako wymagane. Jeżeli chcesz zawęzić wyniki, możesz skorzystać z dodatkowych filtrów:

  • offer.id - otrzymasz dane tylko dla wybranych ofert, np. GET /sale/offers/unfilled-parameters?offer.id=123456789&offer.id=98765432;

  • limit - liczba wyników, które zwrócimy w odpowiedzi. Domyślna wartość to 100, maksymalna 1000.

  • offset - miejsce, od którego chcesz pobrać kolejną porcję danych.

  • parameterType - typ parametrów:

    • REQUIRED - obecnie wymagane parametry,
    • REQUIREMENT_PLANNED - parametry, które w ciągu najbliższych 3 miesięcy oznaczymy jako wymagane.


Przykładowy request:

 curl -X GET \
 'https://api.allegro.pl/sale/offers/unfilled-parameters?offer.id=123456789 \
 -H 'Authorization: Bearer {token}' \
 -H 'Accept: application/vnd.allegro.public.v1+json'


Przykładowy response:

  {
    "offers": [
    	     {
      		"id": "123456789",		    -- ID oferty
      		"parameters": [		        -- informacje o nieuzupełnionych parametrach
        		  {
          		    "id": "14228"		-- ID parametru
        		  }
      		],
      		"category": {
        		  "id": "257931"		-- ID kategorii, w której występuje parametr
      		}
    	     }
  	],
  	"count": 1,				            -- liczba wyświetlanych wyników
  	"totalCount": 1				        -- łączna liczba wyników
  }

Jak sprawdzić przyszłe zmiany w parametrach

Za pomocą GET /sale/category-parameters-scheduled-changes sprawdzisz zmiany w parametrach, które zaplanowaliśmy na najbliższe 3 miesiące. Domyślnie w odpowiedzi otrzymasz listę 100 najwcześniej zaplanowanych zmian.

information Uwaga! W wyjątkowych sytuacjach możemy zdecydować, aby nie wdrażać wybranych zaplanowanych zmian - np. jeżeli zrezygnujemy z oznaczenia danego parametru jako obowiązkowy. W takiej sytuacji dane zdarzenie usuniemy z odpowiedzi.

Jeżeli chcesz zawęzić wyniki, możesz skorzystać z dodatkowych filtrów:

  • limit - liczba wyników które zwrócimy w odpowiedzi. Domyślna wartość to 100, maksymalna 1000.

  • offset - miejsce, od którego chcesz pobrać kolejną porcję danych,

  • type - rodzaj zmiany, na tę chwilę zwracamy tylko jedną wartość - REQUIREMENT_CHANGE (dany parametr oznaczymy jako wymagany),

  • scheduledAt.gte - najwcześniejsza data, kiedy zaplanowaliśmy zmianę, np. GET /sale/category-parameters-scheduled-changes?scheduledAt.gte=2021-01-01T00:00:00Z

  • scheduledAt.lte - najpóźniejsza data, kiedy zaplanowaliśmy zmianę np. ET /sale/category-parameters-scheduled-changes?scheduledAt.lte=2021-01-13T23:59:59Z

  • scheduledFor.gte - najwcześniejsza data planowanego uobowiązkowienia, np. GET /sale/categories/parameters/required-changes?scheduledFor.gte=2021-02-01T00:00:00Z

  • scheduledFor.lte - najpóźniejsza data planowanego uobowiązkowienia, nie może być większa niż 3 miesiące od bieżącej daty, np. GET /sale/category-parameters-scheduled-changes?scheduledFor.lte=2021-02-28T23:59:59Z.


Przykładowy request:

  curl -X GET 
  ‘https://api.allegro.pl/sale/category-parameters-scheduled-changes’ \
  -H ‘Authorization: Bearer {token}’ \
  -H ‘Accept: application/vnd.allegro.public.v1+json’


Przykładowy response:

   {
    ... 
     {
      "scheduledAt": "2021-01-12T15:26:43.891Z",    -- data z przeszłości, kiedy 
                                                    zaplanowaliśmy zmianę
      "scheduledFor": "2021-02-14T15:26:43.891Z",   -- data z przyszłości, na kiedy 
                                                    planujemy wdrożyć zmianę
      "type": "REQUIREMENT_CHANGE",	                -- rodzaj zmiany
      "category": {
          "id": "165"					            -- ID kategorii, w której znajduje się
						                            parametr, którego dotyczy zmiana
          },
      "parameter": {
          "id": "11323"				                -- ID parametru, którego dotyczy 
                                                    zmiana
          }
      }
    ...
    }

Jak zarządzać promowaniem

Jak pobrać dostępne opcje promowania

Skorzystaj z GET /sale/offer-promotion-packages, aby pobrać listę dostępnych opcji promowania. Udostępniamy trzy pakiety wyróżnień oraz jedną opcję dodatkową:

  • Flexible Emphasized - Wyróżnienie Elastyczne, za które opłatę naliczamy codziennie,

  • Emphasized - Wyróżnienie, za które opłatę naliczamy co dziesięć dni,

  • Promo package - Pakiet Promo (Wyróżnienie + Podświetlenie + Pogrubienie), dla którego opłatę naliczamy codziennie,

  • Department page promo - opcja dodatkowa, Promowanie na stronie działu, opłatę naliczamy co dziesięć dni.

W odpowiedzi otrzymasz:

  • ID pakietu promowania,
  • nazwę pakietu promowania,
  • długość cyklu rozliczeniowego.


Przykładowy request:

 curl -X GET \
    'https://api.allegro.pl/sale/offer-promotion-packages' \
    -H 'Authorization: Bearer {token}' \
    -H 'Accept: application/vnd.allegro.public.v1+json'

Przykładowy response:
 {
    "basePackages": [				    -- podstawowe opcje promowania
        {
            "id": "emphasized10d",		-- ID pakietu promowania
            "name": "Emphasized",		-- nazwa pakietu promowania
            "cycleDuration": "PT240H"	-- długość cyklu rozliczeniowego
        },
        {
            "id": "emphasized1d",
            "name": "Flexible Emphasized",
            "cycleDuration": "PT24H"
        },
        {
            "id": "promoPackage",
            "name": "Promo Package",
            "cycleDuration": "PT24H"
        }
    ],
    "extraPackages": [					-- dodatkowa opcja promowania
        {
            "id": "departmentPage",
            "name": "Department page promo",
            "cycleDuration": "PT240H"
        }
    ]
 }

Jak dodać lub zmienić opcje promowania w pojedynczej ofercie

Za pomocą POST /sale/offers/{offerId}/promo-options-modification dodasz, zmienisz lub wyłączysz opcje promowania w pojedynczej ofercie. Jako offerId przekaż numer oferty, której dotyczy modyfikacja. W ofercie może być aktywny tylko jeden z podstawowych pakietów promowania.


Przykładowy request, jak dodać promowanie:

 curl -X POST \
    'https://api.allegro.pl/sale/offers/{offerId}/promo-options-modification' \
    -H 'Authorization: Bearer {token}' \
    -H 'Accept: application/vnd.allegro.public.v1+json' \
    -d ‘{
        "modifications": [
            {
            "modificationType": "CHANGE",       -- typ modyfikacji, dostępne wartości
                                                to “CHANGE” (dodaj lub zmień),
                                                “REMOVE_WITH_END_OF_CYCLE”
                                                (usuń z końcem cyklu rozliczeniowego),
                                                “REMOVE_NOW” (usuń natychmiast),
      	   "packageType": "BASE",		        -- typ pakietu promowania, dostępne
                                                wartości to “BASE” (opcje podstawowe)
                                                lub “EXTRA” (opcje dodatkowe),
     	   "packageId": "emphasized10d"         -- ID pakietu promowania, który możesz
                                                pobrać za pomocą
                                                GET /sale/offer-promotion-packages
      }
    ]
  }’

Przykładowy response:
  {
  "basePackage": {					             -- informacje o aktualnie
                                                 przypisanym podstawowym pakiecie
                                                 promowania
    "id": "emphasized10d",   				     -- ID pakietu promowania
    "validFrom": "2020-10-20T09:11:41.185Z",     -- data, od kiedy pakiet jest aktywny
    "validTo": null, 					         -- data, do kiedy pakiet jest aktywny.
							                     Wartość zwracamy tylko, gdy wyłączenie
							                     pakietu jest w trakcie.
    "nextCycleDate": "2020-10-30T09:11:41.185Z"  -- data następnego cyklu rozliczeniowego
  },
  "extraPackages": []					         -- informacje o aktualnie przypisanym
							                     dodatkowym pakiecie promowania
  }


Przykładowy request, jak zmienić promowanie:

 curl -X POST \
    'https://api.allegro.pl/sale/offers/{offerId}/promo-options-modification' \
    -H 'Authorization: Bearer {token}' \
    -H 'Accept: application/vnd.allegro.public.v1+json' \
    -d ‘{
        "modifications": [
            {
      	     "modificationType": "CHANGE",      
      	     "packageType": "BASE",		
     	      "packageId": "promoPackage"      
            }
        ]
    }’


Przykładowy response:

 {
  "basePackage": {						            -- informacje o aktualnie
                                                    przypisanym podstawowym pakiecie promowania
    "id": "emphasized10d",					        -- ID pakietu promowania
    "validFrom": "2020-10-20T09:11:41.185Z",	    -- data, od kiedy pakiet jest aktywny
    "validTo": "2020-10-30T09:11:41.185Z",		    -- data, do kiedy pakiet jest aktywny
    "nextCycleDate": null
  },
   "extraPackages": []					            -- informacje o aktualnie przypisanym
							                        dodatkowym pakiecie promowania
   "pendingChanges": {						        -- informacje o nowych pakietach
								                    promowania, które włączymy
								                    po zakończeniu aktualnego okresu
                                                    rozliczeniowego
    "basePackage": {						
      "id": "promoPackage",					        -- ID pakietu promowania
      "validFrom": "2020-10-30T09:11:41.185Z",	    -- data, od kiedy pakiet jest aktywny
      "validTo": null,						        -- data, do kiedy pakiet jest aktywny
      "nextCycleDate": "2020-10-31T09:11:41.185Z"   -- data następnego cyklu rozliczeniowego
    }
  }
 }


Przykładowy request, jak usunąć promowanie:

 curl -X POST \
    'https://api.allegro.pl/sale/offers/{offerId}/promo-options-modification' \
    -H 'Authorization: Bearer {token}' \
    -H 'Accept: application/vnd.allegro.public.v1+json' \
    -d ‘{
    "modifications": [
        {
      	   "modificationType": "REMOVE_WITH_END_OF_CYCLE",  
      	   "packageType": "BASE",		
     	   "packageId": "promoPackage"     
        }
    ]
  }’

Przykładowy response

  {
    "basePackage": {				
        "id": "promoPackage",					
        "validFrom": "2020-10-30T09:11:41.185Z",		
        "validTo": "2020-10-31T09:11:41.185Z",			
        "nextCycleDate": null
    },
    "extraPackages": [ ]					         
  }

Jak pobrać opcje promowania przypisane do oferty

Aktualnie przypisane do oferty pakiety opcji promowania pobierzesz za pomocą GET /sale/offers/{offerId}/promo-options. W sekcji pendingChanges zwrócimy informacje o nowych opcjach promowania, które włączymy po zakończeniu aktualnego cyklu rozliczeniowego. Jako offerId przekaż numer oferty, dla której chcesz pobrać aktualne dane.


Przykładowy request

    curl -X GET \
    'https://api.allegro/sale/offers/{offerId}/promo-options' \
    -H 'Authorization: Bearer {token}' \
    -H 'Accept: application/vnd.allegro.public.v1+json'


Przykładowy response

 {
  "basePackage": {						    -- informacje o aktualnie
                                            przypisanym podstawowym
                                            pakiecie promowania
    "id": "emphasized10d",					-- ID pakietu promowania
    "validFrom": "2020-06-05T00:00:01Z",	-- data, od kiedy pakiet jest aktywny
    "validTo": "2020-06-15T00:00:00Z",		-- data, do kiedy pakiet jest aktywny
    "nextCycleDate": null,					-- data następnego cyklu
                                            rozliczeniowego
   },
  "extraPackages": [						-- informacje o aktualnie
                                            przypisanym dodatkowym pakiecie
                                            promowania
   {
    "id":"departmentPage",
    "validFrom": "2020-06-10T00:00:01Z",
    "nextCycleDate": "2020-06-10T00:00:01Z",
    "validTo": null,
   }
  ],

  "pendingChanges": [						-- informacje o nowych pakietach
								            promowania, które włączymy
								            po zakończeniu aktualnego okresu
                                            rozliczeniowego
	"basePackage": {
      "id": "emphasized1d",
      "validFrom": "2020-06-15T00:00:01Z",
      "validTo": null,
      "nextCycleDate": null,
   }
  ]
 }

Jak dodać lub edytować opcje promowania na wielu ofertach

Za pomocą PUT /sale/offers/promo-options-commands/{commandId} dodasz lub zmienisz opcje promowania. Jako commandId przekaż wygenerowany we własnym zakresie numer UUID.


Przykładowy request

    curl -X PUT \
    'https://api.allegro/sale/offers/promo-options-commands/d8ce32f4-d6fc-4e2d-87ff-3f3e1c78843b' \
    -H 'Authorization: Bearer {token}' \
    -H 'Accept: application/vnd.allegro.public.v1+json' \
    -d‘{
    "offerCriteria": [
    {
      "offers": [						        -- lista ofert, w których chcesz
                                                wykonać zmiany
        {
          "id": "12345678"
        }
      ],
      "type": "CONTAINS_OFFERS"
    }
  ],
    "modification": {
        "basePackage": {
        "id": "emphasized10d"
      },
      "extraPackages": [
        {
          "id": "departmentPage"
        }
      ],
      "modificationTime": "END_OF_CYCLE" 		-- kiedy chcesz wykonać zmianę,
                                                dostępne wartości to “NOW” (od razu)
                                                oraz “END_OF_CYCLE”
                                                (z końcem cyklu, jest to
                                                wartość domyślna)
      }
    }’


Przykładowy response

    {
    "id": "d8ce32f4-d6fc-4e2d-87ff-3f3e1c78843b",
    "taskCount": {
        "failed": 0,
        "success": 0,
        "total": 0
        }
    }

Zasób działa asynchronicznie, dlatego w odpowiedzi otrzymasz same zera. Aby sprawdzić status wykonania zadania, użyj GET /sale/offers/promo-options-commands/{commandId}. Dzięki temu otrzymasz informację, do ilu ofert prawidłowo przypisaliśmy pakiet promowania i dla ilu zakończyło się to błędem.

Jak sprawdzić szczegółowy raport zadania

Aby sprawdzić szczegółowy raport zadania, użyj GET /sale/offers/promo-options-commands/{commandId}/tasks. W odpowiedzi zwrócimy:

  • identyfikatory ofert powiązane z danym zadaniem,
  • datę zlecenia przypisania pakietu promowania,
  • datę wykonania danego zadania,
  • status próby przypisania pakietu promowania,
  • informację o błędach w przypadku nieudanej próby przypisania pakietu promowania,
  • informacje o modyfikacjach.

Aby zawęzić wyniki, możesz użyć filtrów, którymi określisz:

  • limit - liczbę zwróconych wyników. Domyślna wartość to 100, maksymalna 1000;
  • offset - miejsce od którego, chcesz pobrać następną porcję danych.


Przykładowy request

    curl -X GET \
    'https://api.allegro/sale/offers/promo-options-commands/d8ce32f4-d6fc-4e2d-87ff-3f3e1c78843b/tasks?offset=0&limit=100' \
    -H 'Authorization: Bearer {token}' \
    -H 'Accept: application/vnd.allegro.public.v1+json'


Przykładowy response

 {
  "tasks": [
    {
      "offer": {
        "id": "12345678"						-- ID oferty
      },
      "scheduledAt": "2020-04-14T08:43:54Z",	-- data zlecenia przypisania
                                                pakietu promowania
      "finishedAt": "2020-04-14T08:43:54Z",		-- data wykonania zadania
      "status": "FINISHED"					    -- status wykonania zadania,
                                                dostępne wartości to “FINISHED”
                                                (zakończone prawidłowo),
                                                “IN_PROGRESS” (w trakcie przetwarzania),
                                                “ERROR” (wystąpiły błędy)
      "errors": []
    }
   ],
     "modification": {						    -- informacje o modyfikacjach dla
								                danej oferty
       "basePackage": {"id":"emphasized10d" },	-- ID pakietu promowania
       "modificationTime": "END_OF_CYCLE" 		-- termin wykonania zmiany, jaki
                                                określiłeś w żądaniu
   }
  }

Jak zakończyć ofertę

Za pomocą PUT /sale/offer-publication-commands/{commandId} możesz też zakończyć/wstrzymać wybrane oferty - wystarczy, że w polu action podasz wartość END. W commandId podaj wartość w formacie UUID - wygeneruj go we własnym zakresie.

Jak wznowić ofertę

Możesz wznowić zakończoną ofertę w formacie BUY_NOW (Kup Teraz) pod tym samym numerem ID. Skorzystaj z PUT /sale/offer-publication-commands/{commandId} podaj wartość ‘ACTIVATE’ w polu action i numery ofert, dla których ma być zmieniony status. W commandId podaj wartość w formacie UUID - wygeneruj go we własnym zakresie. Jeśli chcesz zaplanować wznowienie oferty w przyszłości - wystarczy, że w polu scheduleFor ustawisz datę planowanej publikacji oferty. Jeśli wznowisz ofertę zanim minie 30 dni od jej zakończenia, zachowasz popularność proporcjonalnie do czasu wstrzymania oferty. Oznacza to, że jeśli wznowisz ofertę po 20 dniach od jej zakończenia, będzie w niej naliczona popularność z ostatnich 10 dni jej trwania.

Uwaga! Jeśli zakończona oferta ma zerowy stan, to najpierw musisz zmienić liczbę przedmiotów, a dopiero potem ją aktywować.

Przykładowy request

  curl -X PUT \
  'https://api.allegro.pl/sale/offer-publication-commands/{commandId}'
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json'
  -d {
    "publication": {
        "action": "ACTIVATE",                       -- wymagane, dostępne są dwie wartości:
                                                    "ACTIVATE" (aktywowanie danych ofert) i
                                                    "END" (zakończenie danych ofert)
        "scheduledFor":"2018-03-28T12:00:00.000Z"   -- niewymagane, wysyłasz jeśli chcesz
                                                    zaplanować wystawienie oferty w przyszłości
    },
    "offerCriteria": [
        {
            "offers":[                              -- wymagane, tablica obiektów z
                                                    numerami identyfikacyjnymi ofert
                {
                    "id": "7276377308"
                }
            ],
            "type": "CONTAINS_OFFERS"               -- wymagane, obecnie dostępna jest jedna wartość:
                                                    CONTAINS_OFFERS (oferty, w których zmienimy status)
        }
    ]
 }

Przykładowy response

  {
    "id": "3417d97f-0d32-4747-8a17-1de38f8899de",
    "taskCount": {
                "total": 0,
                "success": 0,
                "failed": 0
            }
  }

Dodatkowe informacje

Limit wystawiania ofert

Możesz wystawić maksymalnie 200 000 ofert na jednym koncie. Limit dotyczy też ofert, w których ustawiłeś datę wystawienia w przyszłości. Jeśli przekroczysz limit i spróbujesz wystawić nową, albo wznowisz zakończoną ofertę - otrzymasz komunikat błędu:

  {
    "errors": [
        {
            "code": "PublicationValidationException.MaxActiveOffers",
            "message": "Offer cannot be published - your account has exceeded
            the maximum number 200 000 of active offers",
            "details": null,
            "path": null,
            "userMessage": "Nie można wystawić oferty - Twoje konto przekroczyło
            maksymalną liczbę 200 000 aktywnych ofert"
        }
    ]
  }

Wielowariantowość

Te same przedmioty w różnych wariantach możesz połączyć ze sobą i stworzyć kompletną ofertę. Skorzystaj z odpowiednich zasobów, które dla ciebie udostępniliśmy.

Kalkulator

Możesz obliczyć koszty wystawienia swoich ofert. Wystarczy, że skorzystasz z zasobów, które ci udostępniliśmy.

Tabele rozmiarów

Możesz pobrać identyfikatory tabel rozmiarów i ich zawartość za pomocą udostępnionych zasobów.

Załączniki i tagi

Możesz skorzystać z zasobów, które przygotowaliśmy do zarządzania załącznikami i tagami.

FAQ

1. Gdy pobieram ofertę, otrzymuję błąd 404 Not Found. Co on oznacza?

Oferta, którą próbujesz pobrać została:

  • zarchiwizowana - oferty przenosimy do archiwum po 60 dniach od zakończenia,
  • usunięta - jeśli szkic oferty nie był edytowany lub oferta nie była aktywowana w ciągu 60 dni,
  • nigdy nie istniała. W takim przypadku musisz utworzyć nową ofertę.

2. Gdy pobieram ofertę, otrzymuję błąd 403 Forbidden. Co on oznacza?

Upewnij się, że jesteś zautoryzowany jako sprzedawca, do którego należy dana oferta. Możesz pobierać tylko swoje oferty. Rozkoduj swój token za pomocą jednego z darmowych narzędzi i zweryfikuj wartość w polu user_name.

3. Poprawnie pobieram ofertę za pomocą GET /sale/offers/{offerID}, jednak nie otrzymuję jej podczas żądania GET /sale/offers. Dlaczego tak się dzieje?

Jest to prawidłowe zachowanie - taka sytuacja wystąpi, gdy sprzedawca ukryje ofertę przez stronę WWW Allegro.

4. Gdy próbuję zmienić dane w ofetach, np. cenę za pomocą PUT /sale/offer-price-change-commands/{commandId}, w odpowiedzi otrzymuję same zera. Czy to prawidłowe zachowanie?

Tak, wszystkie zasoby do edycji wielu ofert jednocześnie działają asynchronicznie, dlatego aby sprawdzić szczegóły status operacji, użyj GET /sale/offer-price-change-commands/{commandId}/tasks.

5. Podczas edycji oferty za pomocą PUT /sale/offers/{offerID} otrzymuję błąd 422. Co on oznacza?

Upewnij się, że struktura twojego żądania jest prawidłowa i poprawnie przekazujesz wszystkie wartości. Przykładowy request znajdziesz w naszym poradniku.

Lista zasobów

Pełną dokumentację zasobów w postaci pliku swagger.yaml znajdziesz tu.

Lista zasobów podstawowych opisanych w poradniku:

Lista zasobów wspierających opisanych w poradniku:

Limity

Obowiązują pewne limity przy modyfikacji ofert, obecnie możesz zmienić 1 milion ofert w ciągu godziny.

Zasób Limit
PUT /sale/offers/{offerId} 10 zapytań na sekundę
PUT /sale/offer-price-change-commands/{commandId} 1mln ofert na godzinę
PUT /sale/offer-quantity-change-commands/{commandId} 1mln ofert na godzinę
PUT /sale/offer-modification-commands/{commandId} 1mln ofert na godzinę
PUT /sale/offer-publication-commands/{commandId} 1mln ofert na godzinę