Allegro REST API

gdzie?

Polska | polski | PLN
  • Informacje podstawowe
  • Główne procesy
  • Uwierzytelnianie i autoryzacja
  • Wzorzec Command
  • Glosariusz
  • Lista metod
  • Pierwsze kroki
  • Wystawianie oferty z produktem
  • Serwisy zagraniczne Allegro
  • Zarządzanie ofertami
  • Oferty wielowariantowe
  • Pasuje do
  • Zarządzanie zgłoszeniami ofert do kampanii
  • Rabaty i promocje
  • Zamówienia
  • Wysyłam z Allegro
  • One Fulfillment by Allegro
  • Dyskusje
  • Konto i dane użytkownika
  • Centrum wiadomości
  • Sprawdzanie opłat
  • Wystawianie ogłoszeń
  • Publiczne oferty
FAQ
  • Aktualności
  • Changelog
Dokumentacja
Regulamin
Kontakt
  • Moje aplikacje
  • Moje aplikacje (sandbox)
  • Newsletter
  1. Allegro REST API
  2. Zarządzanie ofertami
Dziennik zdarzeń w ofertach sprzedawcy
Jak pobrać moje oferty w REST API
Edycja pojedynczej oferty
Edycja wielu ofert jednocześnie
Kategorie i parametry
Jak zarządzać warunkami zwrotów
Jak zarządzać warunkami reklamacji
Jak zarządzać informacjami o gwarancjach
Jak zarządzać usługami dodatkowymi
Jak zarządzać promowaniem
Jak zarządzać tłumaczeniami
Jak zakończyć ofertę
Jak wznowić ofertę
Dodatkowe informacje
FAQ
Lista zasobów
Limity

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");

  • aktualizacji tłumaczenia oferty ("type": "OFFER_TRANSLATION_UPDATED")

  • zmianie statusu widoczności oferty w serwisie dodatkowym ( "type": "OFFER_VISIBILITY_CHANGED")

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 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.

  • szukanie ofert dla biznesu - wywołaj GET /sale/offers?b2b.buyableOnlyByBusiness=true

  • szukanie ofert wybranej zbiórki charytatywnej - wywołaj GET /sale/offers?fundraisingCampaign.id={id}

  • szukanie ofert danego typu - wywołaj GET /sale/offers?fundraisingCampaign.id.empty={wartość} - pole przyjmuje dwie wartości:

    • true - jeżeli chcesz pobrać tylko listę ofert komercyjnych,
    • false - jeżeli chcesz pobrać tylko listę ofert charytatywnych.

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 aby zobaczyć response
toggle visibility
 {
    "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
            },
            "delivery": {
                "shippingRates": {
                    "id": "2991e29e-5fbc-46f5-963a-65c326ba65c2"    -- identyfikator cennika dostaw
                }
            },
            "b2b": {
                "buyableOnlyByBusiness": false    -- informacja, czy oferta jest dostępna do zakupu
            },                                    tylko dla kupujących z kontem firmowym
            "fundraisingCampaign": {
                "id": "e2307b4f-6903-4be6-85e6-19e8ea303760"  -- identyfikator zbiórki charytatywnej
            }
        },
        {
            "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
            },
            "delivery": {
                "shippingRates": {
                    "id": "2991e29e-5fbc-46f5-963a-65c326ba65c2"
                }
            },
            "b2b": {
                "buyableOnlyByBusiness": false
            },
            "fundraisingCampaign": {
                "id": "e2307b4f-6903-4be6-85e6-19e8ea303760"
            }
    ],
    "count": 2,                        -- liczba ofert w tej odpowiedzi
    "totalCount": 2                    -- liczba ofert dostępnych dla tego zapytania
 }

Edycja pojedynczej oferty

Za pomocą PATCH /sale/product-offers/{offerId} zmienisz dane w ofercie w prosty sposób - edytujesz dowolne pole oferty, a jednocześnie nie musisz przekazywać całego jej modelu.

W ten sposób edytujesz niezależnie m.in:

  • zdjęcia,
  • parametry,
  • lokalizację,
  • cenę,
  • opis oferty,
  • status oferty,
  • identyfikator produktu.

Ważne! Jeżeli chcesz zachować aktualny opis, zdjęcia i parametry produktowe, oprócz product.id powinieneś przekazać również takie pola jak: description, images i product.parameters. Możesz je pobrać z edytowanej przez Ciebie oferty, korzystając z GET /sale/offers/{offerId}.

Przy edycji zapewniliśmy te same udogodnienia, które przy tworzeniu ofert daje POST /sale/product-offers, dlatego dzięki PATCH /sale/product-offers/{offerId} możesz:

  • zmienić status oferty bez konieczności wywołania osobnej komendy publikacji,
  • dodać do oferty zdjęcia bezpośrednio z zewnętrznych serwerów,
  • posługiwać się nazwami warunków ofert zamiast ich identyfikatorami (cenniki dostawy, warunki zwrotów oraz reklamacji).

Ważne! Gdy skorzystasz z PATCH /sale/product-offers/{offerId}, a w ofercie powiązanej z danym produktem wartości pola tecdocSpecification i compatibilityList nie będą aktualne, tzn. niezgodnie z danymi w produkcie - automatycznie je zaktualizujemy.

Edycja oferty w asynchronicznym API

async api edit

W odpowiedzi na prawidłowe żądanie metodą PATCH /sale/product-offers/{offerId} otrzymasz jeden z statusów:

  • 200 OK - gdy żądanie odnosi się do modyfikacji atrybutów oferty, które nie wiążą się z długo wykonywanymi operacjami. Zmiany wdrożymy od razu.

  • 202 Accepted - gdy żądanie wiąże się z długo wykonywanymi operacjami. np. zmiana statusu publikacji oferty. Zmianę wprowadzimy asynchronicznie.

W przypadku, gdy zwrócimy status 200 OK - w odpowiedzi przekażemy dane oferty z wprowadzonymi już zmianami:

Przykładowy request:

  curl -X PATCH
  ‘https://api.allegro.pl/sale/product-offers/9531382307’
  -H 'Authorization: Bearer {token}'
  -H 'Accept: application/vnd.allegro.public.v1+json'
  -H 'Content-Type: application/vnd.allegro.public.v1+json'
  -d ’{
  "sellingMode": {
     "price": {
       "amount": "50",
       "currency": "PLN"
    }
  }    
  }’
  HTTP/1.1 200 OK
  {
    "id": "9531382307’",
    "name": "Przykładowa nazwa",
    "productSet": [{
        "product": {
            "id": null,
            "publication": {
                "status": "NOT_LISTED"
            },
            "parameters": [
                {
                        "id": "234925",
                        "name": "Testowy tytuł",
                        "values": [
                            "Test LP9"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    }, ...
            ]
            },
            "quantity": {
                "value": 1
            }
    }],
    "parameters": [
        {
            "id": "11323",
            "name": "State",
            "values": [
                "New"
            ],
            "valuesIds": [
                "11323_1"
            ],
            "rangeValue": null
        }
    ],
    "afterSalesServices": {
        "impliedWarranty": {
            "id": "f86078a6-9f42-4b76-9696-1e5c0646a60a"
        },
        "returnPolicy": {
            "id": "47101223-7236-4201-9779-316e6d10af2a"
        },
        "warranty": null
    },
    "payments": {
        "invoice": "NO_INVOICE"
    },
    "sellingMode": {
        "format": "BUY_NOW",
        "price": {
            "amount": 50,
            "currency": "PLN"
        },
        "startingPrice": null,
        "minimalPrice": null
    },
    "stock": {
        "available": 1,
        "unit": "UNIT"
    },
    "location": {
        "countryCode": "PL",
        "province": "WIELKOPOLSKIE",
        "city": "Poznań",
        "postCode": "66-166"
    },
    "delivery": {
        "shippingRates": {
            "id": "17221a3c-f4cf-4e47-953a-8e125013b014"
        },
        "handlingTime": "PT336H",
        "additionalInfo": ""
    },
    "publication": {
        "duration": null,
        "status": "ACTIVE",
        "endedBy": null,
        "endingAt": null,
        "startingAt": null,
        "republish": false
    },
    "description": {
        "sections": [
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p>test</p>"
                    }
                ]
            }
        ]
    },
    "validation": {
        "errors": [],
        "warnings": [],
        "validatedAt": "2020-11-06T15:39:53.898Z"
    },
    "createdAt": "2020-10-01T05:44:23Z",
    "updatedAt": "2020-11-06T15:39:55.574Z",
    "images": [
        "https://a.allegroimg..pl/original/116421/ece7111d4b8fbbc4662ab92f84ce"
    ],
    "external": null,
    "category": {
        "id": "79419"
    },
    "tax": null,
    "sizeTable": null,
    "b2b": {
        "buyableOnlyByBusiness": false
    }
 }

Jeżeli w odpowiedzi zwrócimy status 202 Accepted, zwrócimy dane oferty z aktualnym jej stanem - nie uwzględniającym jeszcze danych, które są procesowane. Zmiany w ofercie wprowadzimy asynchronicznie.

Aby sprawdzić status ukończenia zadania, skorzystaj z adresu otrzymanego w nagłówku Location - jest to odnośnik do zasobu, który powinieneś odpytywać, aby sprawdzić status wykonania żądania. Z kolei w nagłówku retry-after przekazujemy informację, po jakim czasie (w sekundach) możesz ponownie odpytać zasób.

Przykładowy request:

  curl -X PATCH
  ‘https://api.allegro.pl/sale/product-offers/9531382307’
  -H 'Authorization: Bearer {token}'
  -H 'Accept: application/vnd.allegro.public.v1+json'
  -H 'Content-Type: application/vnd.allegro.public.v1+json'
  -d ’{
    "publication": {
         "status": "ACTIVE"
     }
  }’
  HTTP/1.1 202 Accepted
  location: ‘https://api.allegro.pl/sale/product-offers/9531382307/sale/operations/ef5dd966-d370-44f7-bb30-3631e3511536’
  retry-after: 5
  {
    "id": "9531382307’",
    "name": "Przykładowa nazwa",
    "productSet": [{
        "product": {
            "id": null,
            "publication": {
                "status": "NOT_LISTED"
            },
            "parameters": null
        },
        "quantity": {
                "value": 1
            }
    }],
    "parameters": [
        {
            "id": "11323",
            "name": "State",
            "values": [
                "New"
            ],
            "valuesIds": [
                "11323_1"
            ],
            "rangeValue": null
        }
    ],
    "afterSalesServices": {
        "impliedWarranty": {
            "id": "f86078a6-9f42-4b76-9696-1e5c0646a60a"
        },
        "returnPolicy": {
            "id": "47101223-7236-4201-9779-316e6d10af2a"
        },
        "warranty": null
    },
    "payments": {
        "invoice": "NO_INVOICE"
    },
    "sellingMode": {
        "format": "BUY_NOW",
        "price": {
            "amount": 50,
            "currency": "PLN"
        },
        "startingPrice": null,
        "minimalPrice": null
    },
    "stock": {
        "available": 1,
        "unit": "UNIT"
    },
    "location": {
        "countryCode": "PL",
        "province": "WIELKOPOLSKIE",
        "city": "Poznań",
        "postCode": "66-166"
    },
    "delivery": {
        "shippingRates": {
            "id": "17221a3c-f4cf-4e47-953a-8e125013b014"
        },
        "handlingTime": "PT336H",
        "additionalInfo": ""
    },
    "publication": {
        "duration": null,
        "status": "ENDED",
        "endedBy": "USER",
        "endingAt": null,
        "startingAt": null,
        "republish": false
    },
    "description": {
        "sections": [
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p>test</p>"
                    }
                ]
            }
        ]
    },
    "validation": {
        "errors": [],
        "warnings": [],
        "validatedAt": "2020-11-06T15:39:53.898Z"
    },
    "createdAt": "2020-10-01T05:44:23Z",
    "updatedAt": "2020-11-06T15:42:06.315Z",
    "images": [
        "https://a.allegroimg.pl/original/116421/ece7111d4b8fbbc4662ab92f84ce"
    ],
    "external": null,
    "category": {
        "id": "79419"
    },
    "tax": null,
    "sizeTable": null,
    "b2b": {
        "buyableOnlyByBusiness": false
    }
 }

Skorzystaj z metody GET oraz otrzymanego adresu w Location, aby sprawdzić status wykonania zadania. Do czasu zakończenia operacji w odpowiedzi na to żądanie wyślemy odpowiedź status 202 Accepted.

Przykładowy request:

  curl -X GET
  ‘https://api.allegro.pl/sale/product-offers/9531382307/operations/ef5dd966-d370-44f7-bb30-3631e3511536’
  -H 'Authorization: Bearer {token}'
  -H 'Accept: application/vnd.allegro.public.v1+json'
  -H 'Content-Type: application/vnd.allegro.public.v1+json'

Przykładowy response:

HTTP/1.1 202 Accepted
location: https://api.allegro.pl/sale/product-offers/9531382307/operations/ef5dd966-d370-44f7-bb30-3631e3511536
retry-after: 5
 {
  "offer": {
    "id": "9531382307"
  },
  "operation": {
    "id": "ef5dd966-d370-44f7-bb30-3631e3511536",
    "status": "IN_PROGRESS",
    "startedAt": "2019-05-29T12:00:00Z"
  }
}

Gdy zakończymy przetwarzać operację, w odpowiedzi na żądanie GET /sale/product-offers/{offerId}/operations/{operationId} wyślemy status HTTP 303 See Other, a w nagłówku Location przekażemy odnośnik kierujący do zasobu z danymi oferty.

Przykładowy request:

  curl -X GET
  ‘https://api.allegro.pl/sale/product-offers/9531382307/operations/ef5dd966-d370-44f7-bb30-3631e3511536’
  -H 'Authorization: Bearer {token}'
  -H 'Accept: application/vnd.allegro.public.v1+json'
  -H 'Content-Type: application/vnd.allegro.public.v1+json'

Przykładowy response:

  HTTP/1.1 303 See Other
  location: https://api.allegro.pl/sale/product-offers/9531382307

Skorzystaj z metody GET oraz przesłanego otrzymanego w nagłówku location, aby uzyskać aktualne dane oferty. Utworzysz dzięki temu żądanie w następującej formie: GET /sale/product-offers/{offerId}.

Przykładowy request:

  curl -X GET
  ‘https://api.allegro.pl/sale/product-offers/9531382307’
  -H 'Authorization: Bearer {token}'
  -H 'Accept: application/vnd.allegro.public.v1+json'
  -H 'Content-Type: application/vnd.allegro.public.v1+json
'{
    "id": "9531382307",
    "name": "Przykładowa nazwa",
    "productSet": [{
        "product": {
            "id": "21a0e252-aa3f-4666-9278-b0417743790f",
            "publication": {
                "status": "LISTED"
            },
            "parameters": [
                {
                        "id": "234925",
                        "name": "Testowy tytuł",
                        "values": [
                            "Test LP9"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    }, ...
            ]
        },
        "quantity": {
                "value": 1
            }
    }],
    "parameters": [
        {
            "id": "11323",
            "name": "State",
            "values": [
                "New"
            ],
            "valuesIds": [
                "11323_1"
            ],
            "rangeValue": null
        }
    ],
    "afterSalesServices": {
        "impliedWarranty": {
            "id": "ad2a9867-71b1-499b-8211-0048536992c5"
        },
        "returnPolicy": {
            "id": "b20a9525-f431-495f-96a8-45af3255374f"
        },
        "warranty": {
            "id": "74cf0d61-590d-4235-8229-8f0d7e7c54e3"
        }
    },
    "payments": {
        "invoice": "VAT"
    },
    "sellingMode": {
        "format": "BUY_NOW",
        "price": {
            "amount": 50,
            "currency": "PLN"
        },
        "startingPrice": null,
        "minimalPrice": null
    },
    "stock": {
        "available": 2,
        "unit": "UNIT"
    },
    "location": {
        "countryCode": "PL",
        "province": "WIELKOPOLSKIE",
        "city": "Poznań",
        "postCode": "60-130"
    },
    "delivery": {
        "shippingRates": {
            "id": "04624cf1-558f-4356-bf2b-1fa34a091ca3"
        },
        "handlingTime": "PT168H",
        "additionalInfo": ""
    },
    "publication": {
        "duration": "PT240H",
        "status": "ACTIVE",
        "endedBy": null,
        "endingAt": "2020-10-04T12:13:20Z",
        "startingAt": null,
        "republish": false
    },
    "description": {
        "sections": [
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p>testowy opis</p>"
                    }
                ]
            },
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p>testowy opis</p>"
                    }
                ]
            }
        ]
    },
    "validation": {
        "errors": [],
        "warnings": [],
        "validatedAt": "2020-09-28T08:22:34.223Z"
    },
    "createdAt": "2020-07-24T13:50:33Z",
    "updatedAt": "2020-09-28T08:22:35.851Z",
    "images": [
        "https://c.allegroimg.com/original/0587c4/1a7a1b46438da3de2cf8a328791a",
        "https://c.allegroimg.com/original/0587c4/1a7a1b46438da3de2cf8a328791b"
    ],
    "external": null,
    "category": {
        "id": "260395"
    },
    "sizeTable": {
      "id": “5727b598-6608-4bd3-b198-f165b011bb69”
    },
    "tax": null,
    "b2b": {
        "buyableOnlyByBusiness": false
    }
}'

Edycja pól oferty

Skorzystaj z PATCH /sale/product-offers/{offerId oraz przekaż w strukturze żądania tylko te pola, które rzeczywiście chcesz zmienić. W pozostałych polach pozostawimy dotychczasową wartość. Działanie zasobu jest zgodnie z dokumentem RFC7396.

Oto kilka przykładowych wywołań:

  • zmiana ceny:

    Przykładowy request:

    curl -X PATCH
    ‘https://api.allegro.pl/sale/product-offers/9531382307’
    -H 'Authorization: Bearer {token}'
    -H 'Accept: application/vnd.allegro.public.v1+json'
    -H 'Content-Type: application/vnd.allegro.public.v1+json'
    -d ’{
    "sellingMode": {
    "price": {
      "amount": "50",
      “currency”: “PLN”
    }
    }    
    }’
  • zmiana lokalizacji:

    Przykładowy request:

    curl -X PATCH
    ‘https://api.allegro.pl/sale/product-offers/9531382307’
    -H 'Authorization: Bearer {token}'
    -H 'Accept: application/vnd.allegro.public.v1+json'
    -H 'Content-Type: application/vnd.allegro.public.v1+json'
    -d ‘{
       "location": {
         "countryCode": "PL",
          "province": "WIELKOPOLSKIE",
          "city": "Poznań",
          "postCode": "60-166"
    }
    }’
  • zmiana liczby sztuk:

    Przykładowy request:

    curl -X PATCH
    ‘https://api.allegro.pl/sale/product-offers/9531382307’
    -H 'Authorization: Bearer {token}'
    -H 'Accept: application/vnd.allegro.public.v1+json'
    -H 'Content-Type: application/vnd.allegro.public.v1+json'
    -d ‘{
    "stock": {
        "available": 2,
        "unit": "UNIT"
    }
    }’

Ważne! Pamiętaj, że w przypadku tablic, takich jak zdjęcia (images) oraz opis oferty (description) przyjmujemy zasadę wszystko albo nic (zgodnie z RFC7396). Oznacza to, że np. jeżeli chcesz dodać do oferty nowe zdjęcia, ale równocześnie chcesz pozostawić te, które były już wcześniej w tej ofercie - musisz przekazać zarówno nowe zdjęcia, jak i te, które były już w tablicy images.

Przykładowy request:

curl -X PATCH
‘https://api.allegro.pl/sale/product-offers/9531382307’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.public.v1+json'
-H 'Content-Type: application/vnd.allegro.public.v1+json'
-d ‘{
   "images": [
       "https://c.allegroimg.com/original/0587c4/1a7a1b46438da3de2cf8a328791a",
       "https://c.allegroimg.com/original/0587c4/1a7a1b46438da3de2cf8a328791b"
   ]
}’
'{
    "id": "9531382307",
    "name": "Książka",
    "productSet": [{
        "product": {
            "id": "21a0e252-aa3f-4666-9278-b0417743790f",
            "publication": {
                "status": "LISTED"
            },
            "parameters": [
                {
                    "id": "234925",
                    "name": "Testowy tytuł",
                    "values": [
                        "Test LP9"
                    ],
                    "valuesIds": null,
                    "rangeValue": null
                    }, ...
            ]
        },
        "quantity": {
                "value": 1
            }
    }],
    "parameters": [
        {
            "id": "11323",
            "name": "State",
            "values": [
                "New"
            ],
            "valuesIds": [
                "11323_1"
            ],
            "rangeValue": null
        }
    ],
    "afterSalesServices": {
        "impliedWarranty": {
            "id": "ad2a9867-71b1-499b-8211-0048536992c5"
        },
        "returnPolicy": {
            "id": "b20a9525-f431-495f-96a8-45af3255374f"
        },
        "warranty": {
            "id": "74cf0d61-590d-4235-8229-8f0d7e7c54e3"
        }
    },
    "payments": {
        "invoice": "VAT"
    },
    "sellingMode": {
        "format": "BUY_NOW",
        "price": {
            "amount": 50,
            "currency": "PLN"
        },
        "startingPrice": null,
        "minimalPrice": null
    },
    "stock": {
        "available": 2,
        "unit": "UNIT"
    },
    "location": {
        "countryCode": "PL",
        "province": "WIELKOPOLSKIE",
        "city": "Poznań",
        "postCode": "60-130"
    },
    "delivery": {
        "shippingRates": {
            "id": "04624cf1-558f-4356-bf2b-1fa34a091ca3"
        },
        "handlingTime": "PT168H",
        "additionalInfo": ""
    },
    "publication": {
        "duration": "PT240H",
        "status": "ACTIVE",
        "endedBy": null,
        "endingAt": "2020-10-04T12:13:20Z",
        "startingAt": null,
        "republish": false
    },
    "description": {
        "sections": [
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p>testowy opis</p>"
                    }
                ]
            },
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p>testowy opis</p>"
                    }
                ]
            }
        ]
    },
    "validation": {
        "errors": [],
        "warnings": [],
        "validatedAt": "2020-09-28T08:22:34.223Z"
    },
    "createdAt": "2020-07-24T13:50:33Z",
    "updatedAt": "2020-09-28T08:22:35.851Z",
    "images": [
        "https://c.allegroimg.com/original/0587c4/1a7a1b46438da3de2cf8a328791a",
        "https://c.allegroimg.com/original/0587c4/1a7a1b46438da3de2cf8a328791b"
    ],
    "external": null,
    "category": {
        "id": "260395"
    },
    "sizeTable": {
      "id": “5727b598-6608-4bd3-b198-f165b011bb69”
    },
    "tax": null,
    "b2b": {
        "buyableOnlyByBusiness": false
    }
}'

Jak przypisać produkt do oferty

Za pomocą PATCH /sale/product-offers/{offerId} możesz dodać produkt do oferty, która nie jest połączona z produktem lub zmienić go w ofercie, która produkt już posiada.

W polu product.id wskaż identyfikator danego produktu lub parametr GTIN (EAN, ISBN, ISSN). W odpowiedzi automatycznie zaktualizujemy w ofercie:

  • kategorię i parametry,
  • opis,
  • zdjęcia,
  • sekcję pasuje do,
  • specyfikację techniczną TecDoc

zgodnie z danymi w powiązanym produkcie.

Ważne! Jeżeli chcesz zachować aktualny opis, zdjęcia i parametry produktowe, oprócz product.id powinieneś przekazać również takie pola jak: description, images i product.parameters. Możesz je pobrać z edytowanej przez Ciebie oferty, korzystając z GET /sale/offers/{offerId}

Nie możesz usunąć produktu z oferty. W przypadku, gdy w polu product.id przekażesz wartość null - zwrócimy błąd 422.

Pamiętaj również, że kategorię możesz zmienić do 12 godzin po pierwszym wystawieniu oferty. Oznacza to, że po 12 godzinach nie przypiszesz do oferty produktu z innej kategorii, niż ta, w której wystawiłeś ofertę.

Zapoznaj się z poniższym przykładem procesu powiązania oferty z produktem metodą PATCH.

Aktualne dane oferty, którą chcesz połączyć z produktem, pobierzesz za pomocą GET /sale/offers/{offerId}.

Przykładowy response:

{
    "id": "7680042192",
    "name": "Żarówka samochodowa LED",
    "category": {
        "id": "257359"
    },
    "product": null,
    "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_1"
            ],
            "values": [],
            "rangeValue": null
        },
        {
            "id": "127634",
            "valuesIds": [
                "127634_3"
            ],
            "values": [],
            "rangeValue": null
        },
        {
            "id": "23910",
            "valuesIds": [
                "23910_13"
            ],
            "values": [],
            "rangeValue": null
        },
        {
            "id": "208602",
            "valuesIds": [
                "208602_794154"
            ],
            "values": [],
            "rangeValue": null
        },
        {
            "id": "202269",
            "valuesIds": [
                "202269_210981"
            ],
            "values": [],
            "rangeValue": null
        },
        {
            "id": "215858",
            "valuesIds": [],
            "values": [
                "BA15SSMD-Rx5"
            ],
            "rangeValue": null
        }
    ],
    "customParameters": null,
    "description": {
        "sections": [
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<h2>Żarówka LED Nieprzezroczysta matowa soczewka</h2>"
                    }
                ]
            },
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p>Mój opis żarówki</p>"
                    }
                ]
            }
        ]
    },
    "compatibilityList": null,
    "tecdocSpecification": null,
    "images": [
        {
            "url": "https://a.allegroimg.com/original/11ea99/7efbfdb341d78d380f459672a95f"
        }
    ],

Dane konkretnego produktu uzyskasz za pomocą GET /sale/products/{productId}.

Przykładowy response:

{
    "id": "0475a562-fbbb-4260-b772-59a82aa96554",
    "name": "5 x 12v 24v 382 BA15S R5W 245207 Żarówka LED",
    "category": {
        "id": "257359",
        "similar": [
            {
                "id": "19028"
            }
        ]
    },
    "parameters": [
        {
            "id": "127634",
            "name": "Rodzaj",
            "valuesLabels": [
                "Brak informacji"
            ],
            "valuesIds": [
                "127634_384881"
            ],
            "values": null,
            "unit": null,
            "options": {
                "identifiesProduct": true
            }
        },
        {
            "id": "23910",
            "name": "Typ żarówki",
            "valuesLabels": [
                "P21"
            ],
            "valuesIds": [
                "23910_527293"
            ],
            "values": null,
            "unit": null,
            "options": {
                "identifiesProduct": true
            }
        },
        {
            "id": "208602",
            "name": "Producent",
            "valuesLabels": [
                "inny"
            ],
            "valuesIds": [
                "208602_236402"
            ],
            "values": null,
            "unit": null,
            "options": {
                "identifiesProduct": true
            }
        },
        {
            "id": "225693",
            "name": "EAN",
            "valuesLabels": [
                "5060620944660"
            ],
            "values": [
                "5060620944660"
            ],
            "unit": null,
            "options": {
                "identifiesProduct": true,
                "isGTIN": true
            }
        },
        {
            "id": "202269",
            "name": "Liczba sztuk",
            "valuesLabels": [
                "inna"
            ],
            "valuesIds": [
                "202269_210981"
            ],
            "values": null,
            "unit": null,
            "options": {
                "identifiesProduct": false
            }
        },
        {
            "id": "215858",
            "name": "Numer katalogowy części",
            "valuesLabels": [
                "BA15SSMD-Rx5"
            ],
            "values": [
                "BA15SSMD-Rx5"
            ],
            "unit": null,
            "options": {
                "identifiesProduct": false
            }
        }
    ],
    "images": [
        {
            "url": "https://a.allegroimg.com/original/119247/d50959f64c568b3cd1421c70f31e"
        },
        {
            "url": "https://a.allegroimg.com/original/1112b4/d03b421247169a2835880cc39d88"
        }
    ],
    "offerRequirements": {
        "id": null,
        "parameters": []
    },
    "compatibilityList": null,
    "tecdocSpecification": null,
    "description": {
        "sections": [
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<h2>5 x CZERWONA 12v 24v 382 BA15S R5W 245207 Żarówka LED Nieprzezroczysta matowa soczewka</h2>"
                    }
                ]
            },
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<ul><li>Wrażliwe na brak polaryzacji 300</li>\n<li>lm na żarówkę 12-30V działają zarówno w samochodach 12 V, jak i ciężarówkach 24 V</li></ul>"
                    },
                    {
                        "type": "IMAGE",
                        "url": "https://a.allegroimg.com/original/119247/d50959f64c568b3cd1421c70f31e"
                    }
                ]
            },
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p>Nazwa koloru:\nczerwony\n\n\n\n\n\n\n | \n\nNazwa rozmiaru:\nPakiet 5\n\n\n\n\n\n\n10-30 V napięcia roboczego, będzie działać zarówno na 12 v, jak i 24 v.\nNiezwykle jasne, niepolarne, super jasne, 6 x 2865 chipów SMD na żarówkę\nNieprzezroczysta konstrukcja zapewnia równomierny strumień światła!\nDostępne w kolorze czerwonym, chłodnym białym, bursztynowym \nNie są przyjazne dla Canbus i mogą pokazywać błąd zerwania żarówki na desce rozdzielczej\nPojedyncze włókno z przeciwległymi pinami 300 lm na żarówkę\nZgodne z numerami części:\nBA15S\n382\nP21\n207\n245\n1156\nR5W\nZwykle używane jako:\nŚwiatło stop lub tylne\nTylne światło przeciwmgielne\nPrzednie\nkierunkowskazy DRL\nZnaczniki boczne\nPrzednie światła postojowe</p>"
                    }
                ]
            }
        ]
    }
}

Następnie za pomocą: PATCH /sale/product-offers/{offerId} możesz edytować ofertę, przekazując wartość product.id.

Poniżej przykładowy request:

curl -X PATCH
‘https://api.allegro.pl/sale/product-offers/7680042192’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.public.v1+json'
-H 'Content-Type: application/vnd.allegro.public.v1+json'
-d ’{
  "productSet": [{
        "product": {
             "id": "0475a562-fbbb-4260-b772-59a82aa96554"
        }
  }]
 }'

Przykładowy response:

{
    "id": "7680042192",
    "name": "Żarówka samochodowa LED",
    "productSet": [{
        "product": {
            "id": "0475a562-fbbb-4260-b772-59a82aa96554",
            "publication": {
                "status": "NOT_LISTED"
        },
        "parameters": [
                {
                        "id": "234925",
                        "name": "Testowy tytuł",
                        "values": [
                            "Test LP9"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    }, ...
            ]
        },
        "quantity": {
                "value": 1
            }
    }],
    "parameters": [
        {
            "id": "11323",
            "name": "State",
            "values": [
                "New"
            ],
            "valuesIds": [
                "11323_1"
            ],
            "rangeValue": null
        }
    ],
    "afterSalesServices": {
        "impliedWarranty": {
            "id": "f4f3541e-41c2-481f-938a-2a1b8c0ce65a"
        },
        "returnPolicy": {
            "id": "7068910b-29b9-449b-8ad0-99625a6312db"
        },
        "warranty": null
    },
    "payments": {
        "invoice": "NO_INVOICE"
    },
    "sellingMode": {
        "format": "BUY_NOW",
        "price": {
            "amount": 100,
            "currency": "PLN"
        },
        "startingPrice": null,
        "minimalPrice": null
    },
    "stock": {
        "available": 3,
        "unit": "UNIT"
    },
    "location": {
        "countryCode": "PL",
        "province": "WIELKOPOLSKIE",
        "city": "Poznań",
        "postCode": "60-166"
    },
    "delivery": {
        "shippingRates": {
            "id": "7dd8049c-1753-4842-8870-e29a2efc3d62"
        },
        "handlingTime": "PT48H",
        "additionalInfo": ""
    },
    "publication": {
        "duration": null,
        "status": "ACTIVE",
        "endedBy": null,
        "endingAt": null,
        "startingAt": null,
        "republish": false
    },
    "description": {
        "sections": [
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<h2>5 x CZERWONA 12v 24v 382 BA15S R5W 245207 Żarówka LED Nieprzezroczysta matowa soczewka</h2>"
                    }
                ]
            },
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<ul><li>Wrażliwe na brak polaryzacji 300</li>\n<li>lm na żarówkę 12-30V działają zarówno w samochodach 12 V, jak i ciężarówkach 24 V</li></ul>"
                    },
                    {
                        "type": "IMAGE",
                        "url": "https://a.allegroimg.allegrosandbox.pl/original/119247/d50959f64c568b3cd1421c70f31e"
                    }
                ]
            },
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p>Nazwa koloru:\nczerwony\n\n\n\n\n\n\n | \n\nNazwa rozmiaru:\nPakiet 5\n\n\n\n\n\n\n10-30 V napięcia roboczego, będzie działać zarówno na 12 v, jak i 24 v.\nNiezwykle jasne, niepolarne, super jasne, 6 x 2865 chipów SMD na żarówkę\nNieprzezroczysta konstrukcja zapewnia równomierny strumień światła!\nDostępne w kolorze czerwonym, chłodnym białym, bursztynowym \nNie są przyjazne dla Canbus i mogą pokazywać błąd zerwania żarówki na desce rozdzielczej\nPojedyncze włókno z przeciwległymi pinami 300 lm na żarówkę\nZgodne z numerami części:\nBA15S\n382\nP21\n207\n245\n1156\nR5W\nZwykle używane jako:\nŚwiatło stop lub tylne\nTylne światło przeciwmgielne\nPrzednie\nkierunkowskazy DRL\nZnaczniki boczne\nPrzednie światła postojowe</p>"
                    }
                ]
            }
        ]
    },
    "validation": {
        "errors": [],
        "warnings": [],
        "validatedAt": "2021-03-16T14:01:53.434Z"
    },
    "createdAt": "2021-02-24T07:01:55Z",
    "updatedAt": "2021-03-16T14:01:53.793Z",
    "images": [
        "https://a.allegroimg.allegrosandbox.pl/original/119247/d50959f64c568b3cd1421c70f31e",
        "https://a.allegroimg.allegrosandbox.pl/original/1112b4/d03b421247169a2835880cc39d88"
    ],
    "external": null,
    "category": {
        "id": "257359"
    },
    "tax": null,
    "sizeTable": null,
    "discounts": {
        "wholesalePriceList": null
    },
    "b2b": {
        "buyableOnlyByBusiness": false
    }
}

Zwróć uwagę na pola, które uległy zmianie. Po połączeniu oferty z produktem, w response otrzymujesz product.id oraz nowe wartości pól: description i images, które pobraliśmy bezpośrednio z danych zawartych w produkcie.

Obsługa zdjęć

Do oferty automatycznie dołączymy zdjęcia z produktu, jeśli w strukturze przekażesz tylko product.id:

  {
    "productSet": [{
       "product": {
          "id": "0475a562-fbbb-4260-b772-59a82aa96554"
    }
  }]}

Jeśli chcesz w ofercie zaprezentować wyłącznie własne zdjęcia, bez obrazków, które pochodzą z naszej bazy produktowej, przekaż dodatkowo w polu product.images pustą tablicę:

  {
    "productSet": [{
       "product": {
          "id": "0475a562-fbbb-4260-b772-59a82aa96554",
          "images": []
    }}],
    …
    "images": [
        "https://...zewnetrzny-adres-pierwszego-obrazka.jpeg",  -- zdjęcia, które są 
                                                                aktualnie przypisane
                                                                do oferty           
        "https://...zewnetrzny-adres-drugiego-obrazka.jpeg"
    ]
   }

W ten sposób w ofercie pozostaną tylko zdjęcia ofertowe, zawarte w sekcji images. Jeśli nie przekazałbyś zdjęć, które są aktualnie przypisane do oferty w polu images, to zdjęcia zostałyby usunięte z oferty. Jeśli oferta nie posiada żadnych zdjęć, a chcesz je dodać wraz z przypisaniem produktu, przekaż także powyższą strukturę.

Zmiana statusu oferty

Dzięki PATCH /sale/product-offers/{offerId} możesz także zmienić status oferty - jako osobna operacja lub w jednej operacji wraz z edycją oferty. Nie musisz dodatkowo korzystać z zasobu do publikacji oferty. Wystarczy, że w polu publication.status przekażesz odpowiednią wartość:

  • ACTIVE - aktywuj ofertę,
  • ENDED - zakończ ofertę.

Przykładowy request:

curl -X PATCH
‘https://api.allegro.pl/sale/product-offers/9531382307’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.public.v1+json'
-H 'Content-Type: application/vnd.allegro.public.v1+json'
-d ’{
  "sellingMode": {
     "price": {
      "amount": "101",
      "currency": "PLN"
    }
  },
  "publication": {
        "status": "ENDED"
    }
}’

Ważne! Jeśli w strukturze żądania zawrzesz w polu status wartość ENDED, to zakończymy ofertę, nawet jeśli edycja innych pól się nie powiedzie.

Jeżeli oferta jest w statusie INACTIVE, to aby ją aktywować przekaż wartość ACTIVE w polu publication.status.

Przykładowy request:

curl -X PATCH
‘https://api.allegro.pl/sale/product-offers/9531382307’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.public.v1+json'
-H 'Content-Type: application/vnd.allegro.public.v1+json'
-d ‘{
  "publication": {
        "status": "ACTIVE"
    }
}’

Jak usunąć dane

Jeżeli chcesz usunąć wartość w wybranym polu, o ile nie jest ona wymagana - przekaż w nim wartość null.

Przykładowy request - jak usunąć informacje o gwarancji:

curl -X PATCH
‘https://api.allegro.pl/sale/product-offers/9531382307’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.public.v1+json'
-H 'Content-Type: application/vnd.allegro.public.v1+json'
-d ‘{
      "warranty": {
            "id": null
     }
}’

Przykładowy respone:

{
    …
     "warranty": {
            "id": null
     }
    …
}

Przykładowy request - jak usunąć informację o liczbie sztuk:

curl -X PATCH
‘https://api.allegro.pl/sale/product-offers/9531382307’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.public.v1+json'
-H 'Content-Type: application/vnd.allegro.public.v1+json'
-d ‘{
      "stock": null
}’

Przykładowy respone:

{
    …
    "stock": null
    …
}

Przykładowy request - jak usunąć zdjęcia:

curl -X PATCH
‘https://api.allegro.pl/sale/product-offers/9531382307’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.public.v1+json'
-H 'Content-Type: application/vnd.allegro.public.v1+json'
-d ‘{
      “images”: null   // analogicznie możesz użyć []
}’

Przykładowy respone:

{
    …
     "images": []
    …
}

Edycja wielu ofert jednocześnie

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.

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:

Cennik hurtowy

  {
    "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

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

  2. 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”.

  3. 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"
        }
    ]
 }

Lokalizacja

 {
          "modification": {
              "location": {
                  "countryCode": "PL",            - kod kraju
                  "province": "wielkopolskie",    - województwo (wymagane dla kraju PL)
                  "city": "Poznań",               - miejscowość
                  "postCode": "60-166"            - kod pocztowy (wymagane dla kraju PL)
                  }
          },
          "offerCriteria": [
              {
                  "offers": [
                      {
                             "id": "11223344556"
                      },
                      {
                             "id": "11335577991"
                      }
                  ],
                  "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
                }
          }
    ...
    }

Zmiana kategorii w ofercie

Kategorię w ofercie możesz zmienić do 12 godzin od momentu, kiedy została opublikowana. Wprowadziliśmy jednak ułatwienie, które umożliwia zmianę kategorii w aktywnej ofercie, jeśli:

  • oferta ma podpięty produkt, ale kategoria jest błędna - pozwalamy na zmianę kategorii oferty na zgodną z kategorią produktu,
  • oferta nie ma podpiętego produktu, bo nigdy go nie miała, albo została odpięta od Katalogu produktów - pozwalamy podpiąć produkt i jednocześnie zmienić kategorię oferty na zgodną z kategorią produktu.

Wyjątek stanowi kategoria “Pozostałe” - nie pozwalamy na przeniesienie oferty do takiej kategorii, nawet, jeżeli produkt tam się znajduje.

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.

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ć warunkami zwrotów

Jak dodać informacje o warunkach zwrotów

Skorzystaj z POST /after-sales-service-conditions/return-policies, aby dodać nowe warunki zwrotów. W strukturze żądania przekaż pola:

  • name - wymagane, nazwa warunków zwrotu,
  • availability.range - wymagane, możliwość odstąpienia od umowy przez kupującego:
    • FULL - jest taka możliwość,
    • RESTRICTED - brak lub ograniczona możliwość,
  • availability.restrictionCause.name - wymagane, jeśli w polu availability.range wybrałeś wartość RESTRICTED. Poniżej znajdziesz listę dostępnych wartości wraz z opisem. Możesz wybrać tylko jedną wartość:
Wartość
Prawo odstąpienia od umowy bez podania przyczyny nie przysługuje konsumentowi w przypadku gdy:
SEALED_MEDIA
Prawo odstąpienia od umowy bez podania przyczyny nie przysługuje konsumentowi w przypadku gdy: 
Nagranie dźwiękowe, wizualne, program komputerowy w zapieczętowanym opakowaniu. Np.: kiedy kupujący zdejmie folię ochronną z fabrycznie nowej gry, lub płyty z muzyką czy filmem.
SEALED_ITEM_NO_RETURN_DUE_HEALTH_OR_HYGIENE
Prawo odstąpienia od umowy bez podania przyczyny nie przysługuje konsumentowi w przypadku gdy: 
Rzecz, która dostarczona jest w zapieczętowanym opakowaniu, a której po jego otwarciu nie możesz zwrócić ze względu na ochronę zdrowia lub higienę. Np.: bielizna osobista, test ciążowy, końcówki do szczoteczki elektrycznej, soczewki kontaktowe, maseczki.
CUSTOM_ITEM
Prawo odstąpienia od umowy bez podania przyczyny nie przysługuje konsumentowi w przypadku gdy: 
Rzecz wyprodukowaną na indywidualne zamówienie kupującego, według jego wytycznych.Np.: koszulka z zaprojektowanym przez kupującego nadrukiem.
SHORT_SHELF_LIFE
Prawo odstąpienia od umowy bez podania przyczyny nie przysługuje konsumentowi w przypadku gdy: 
Produkt z krótkim terminem przydatności do użycia lub taki, który szybko się psuje. Np.: twaróg, świeże warzywa.
INSEPARABLY_LINKED
Prawo odstąpienia od umowy bez podania przyczyny nie przysługuje konsumentowi w przypadku gdy: 
Rzecz, którą po dostarczeniu trwale połączysz z innymi rzeczami. Np.: olej samochodowy, który wlejesz do auta.
PRESS
Prawo odstąpienia od umowy bez podania przyczyny nie przysługuje konsumentowi w przypadku gdy: 
Dziennik, periodyk lub czasopismo – z wyjątkiem umów o prenumeratę.
MEDICINAL_PRODUCT
Prawo odstąpienia od umowy bez podania przyczyny nie przysługuje konsumentowi w przypadku gdy: 
Produkt leczniczy w rozumieniu prawa farmaceutycznego, środki spożywcze specjalnego przeznaczenia żywieniowego i wyroby medyczne wydane z apteki. Np.: leki OTC (bez recepty).
NOT_RECORDED_DIGITAL_CONTENT
Prawo odstąpienia od umowy bez podania przyczyny nie przysługuje konsumentowi w przypadku gdy: 
Treść cyfrową, nie zapisaną na nośniku materialnym, z której kupujący zgodził się skorzystać. Np.: pobranie ebooka, kodu do gry.
VALUE_DEPENDENT_ON_FINANCIAL_MARKET
Prawo odstąpienia od umowy bez podania przyczyny nie przysługuje konsumentowi w przypadku gdy: 
Usługę lub przedmiot, których ceny zależą od wahań na rynku finansowym, nad którymi sprzedający nie ma kontroli, a które mogą wystąpić przed upływem terminu na odstąpienie od umowy. Np. produkty inwestycyjne: sztabki złota, monety kolekcjonerskie, srebro, platyna.
  • withdrawalPeriod - wymagane, jeśli w polu availability.range wybrałeś wartość FULL. Czas na odstąpienie umowy w formacie ISO 8601. Jako wartość możesz przekazać tylko dni, np. “P14D”,
  • returnCost.coveredBy - wymagane, jeśli w polu availability.range wybrałeś wartość FULL. Informacja o tym, kto pokrywa koszt przesyłki zwrotnej. Dostępne wartości to SELLER lub BUYER,
  • address - wymagane, adres do zwrotów,
  • contact - niewymagane, informacje kontaktowe - numer telefonu i adres email,
  • options - wymagana pełna struktura, dodatkowe informacje. Poniżej znajdziesz listę dostępnych wartości wraz z opisem:
Wartość
Zaznaczone informacje zobaczy kupujący na Twojej ofercie
cashOnDeliveryNotAllowed
Zaznaczone informacje zobaczy kupujący na Twojej ofercie 
Nie przyjmuję zwrotów nadanych za pobraniem.
freeAccessoriesReturnRequired
Zaznaczone informacje zobaczy kupujący na Twojej ofercie 
Otrzymałeś gratis? - w przypadku zwrotu towaru odeślij go również do nas.
refundLoweredByReceivedDiscount
Zaznaczone informacje zobaczy kupujący na Twojej ofercie 
Otrzymałeś rabat na kolejną sztukę? - w przypadku zwrotu towaru pomniejszymy zwrot wpłaty o wartość udzielonego rabatu.
abroadReturnTermsMayDiffer
Zaznaczone informacje zobaczy kupujący na Twojej ofercie 
Jeśli zamawiasz przesyłkę poza granice Polski, mogą obowiązywać Cię inne zasady zwrotu, reklamacji, gwarancji.
businessReturnAllowed
Zaznaczone informacje zobaczy kupujący na Twojej ofercie 
Przyjmuję zwroty od firm (nie dotyczy jednoosobowych działalności gospodarczych).
collectBySellerOnly
Zaznaczone informacje zobaczy kupujący na Twojej ofercie 
Osobiście odbieram zwrot od kupującego.
Kliknij, aby zobaczyć request
toggle visibility
  curl -X POST \
  'https://api.allegro.pl/after-sales-service-conditions/return-policies' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -d '{
    "name": "warunki zwrotu z ograniczeniami",   - wymagane, nazwa warunków zwrotu
    "availability": {                            - wymagane, informacje o
                                                 możliwości odstąpienia od
                                                 umowy przez kupującego
        "range": "RESTRICTED",
        "restrictionCause": {                    - wymagane, jeśli wybrałeś RESTRICTED
            "name": "PRESS"
        }
    },
    "withdrawalPeriod": "P30D",                  - wymagane, czas na
                                                 odstąpienie umowy
    "returnCost": {
        "coveredBy": "BUYER"                     - wymagane, informacja o tym,
                                                 kto pokrywa koszty przesyłki zwrotnej
    },
    "address": {                                - wymagane, adres do zwrotów
        "name": "Allegro.pl Sp. z o.o.",
        "street": "Grunwaldzka 182",
        "postCode": "60-166",
        "city": "Poznań",
        "countryCode": "PL"
    },
    "contact": {                                - niewymagane, dane kontaktowe
        "phoneNumber": "123123123",
        "email": "email@domain.com"
    },
    "options": { 
        "cashOnDeliveryNotAllowed": true,
        "freeAccessoriesReturnRequired": false,
        "refundLoweredByReceivedDiscount": false,
        "abroadReturnTermsMayDiffer": false,
        "businessReturnAllowed": false,
        "collectBySellerOnly": false
    }
}'
Kliknij, aby zobaczyć response
toggle visibility
 {
    "id": "bc99b3fe-6953-46c6-80b7-40e6ad82d588",
    "seller": {
        "id": "44173117"
    },
    "name": "warunki zwrotu z ograniczeniami",
    "availability": {
        "range": "RESTRICTED",
        "restrictionCause": {
            "name": "PRESS",
            "description": "Dziennik, periodyk lub czasopismo – z wyjątkiem umów o prenumeratę."
        }
    },
    "withdrawalPeriod": "P30D",
    "returnCost": {
        "coveredBy": "BUYER"
    },
    "attachment": {                                - ustawowy wzór odstąpienia od umowy,
                                                   dodajemy automatycznie do każdego requestu
        "id": "eba2908b-2403-44b1-bd1f-9893ecbacbe5",
        "name": "Przykładowy formularz odstąpienia od umów.pdf",
        "url": "https://after-sales.allegrosandbox.pl/after-sales-service-33/eba2908b-2403-44b1-bd1f-9893ecbacbe5"
    },
    "address": {
        "name": "Allegro.pl Sp. z o.o.",
        "street": "Grunwaldzka 182",
        "postCode": "60-166",
        "city": "Poznań",
        "countryCode": "PL"
    },
    "contact": {                                
        "phoneNumber": "123123123",
        "email": "email@domain.com"
    },
    "options": {                                
        "cashOnDeliveryNotAllowed": true,
        "freeAccessoriesReturnRequired": false,
        "refundLoweredByReceivedDiscount": false,
        "abroadReturnTermsMayDiffer": false,
        "businessReturnAllowed": false,
        "collectBySellerOnly": false
    }
}

Jak pobrać warunki zwrotów przypisane do konta

Za pomocą GET /after-sales-service-conditions/return-policies pobierzesz warunki zwrotów przypisane do zautoryzowanego konta. W odpowiedzi otrzymasz listę 60 warunków, która zawiera informacje o identyfikatorze oraz nazwie warunku. Możesz ją dostosować do własnych potrzeb za pomocą filtrów:

  • limit - liczba wyników w odpowiedzi. Domyślna i maksymalna wartość to 60,
  • offset - miejsce, od którego chcesz pobrać następną porcję danych.

Jeżeli chcesz pobrać szczegóły warunków zwrotu, przekaż ich identyfikator za pomocą GET /after-sales-service-conditions/return-policies/{returnPolicyId}.

Przykladowy request:

  curl -X GET \
  'https://api.allegro.pl/after-sales-service-conditions/return-policies/bc99b3fe-6953-46c6-80b7-40e6ad82d588' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json'
Kliknij, aby zobaczyć response
toggle visibility
 {
    "id": "bc99b3fe-6953-46c6-80b7-40e6ad82d588",
    "seller": {
        "id": "44173117"
    },
    "name": "ograniczone",
    "availability": {
        "range": "RESTRICTED",
        "restrictionCause": {
            "name": "PRESS",
            "description": "Dziennik, periodyk lub czasopismo – z wyjątkiem umów o prenumeratę."
        }
    },
    "withdrawalPeriod": "P14D",
    "returnCost": {
        "coveredBy": "BUYER"
    },
    "attachment": {
        "id": "eba2908b-2403-44b1-bd1f-9893ecbacbe5",
        "name": "Przykładowy formularz odstąpienia od umów.pdf",
        "url": "https://after-sales.allegro.pl/after-sales-service-33/eba2908b-2403-44b1-bd1f-9893ecbacbe5"
    },
    "address": {
        "name": "Allegro.pl Sp. z o.o.",
        "street": "Grunwaldzka 182",
        "postCode": "60-166",
        "city": "Poznań",
        "countryCode": "PL"
    },
    "contact": {
        "phoneNumber": "123123123",
        "email": "email@domain.com"
    },
    "options": {
        "cashOnDeliveryNotAllowed": true,
        "freeAccessoriesReturnRequired": false,
        "refundLoweredByReceivedDiscount": false,
        "abroadReturnTermsMayDiffer": false,
        "businessReturnAllowed": false,
        "collectBySellerOnly": false
    }
}

Jak edytować informacje o warunkach zwrotu

Aby edytować informacje o warunkach zwrotu:

  • za pomoca GET /after-sales-service-conditions/return-policies pobierz warunki zwrotów przypisane do zautoryzowanego konta. W odpowiedzi otrzymasz identyfikatory oraz nazwy warunków zwrotu,
  • przekaż wybrany identyfikator warunków zwrotu za pomocą GET /after-sales-service-conditions/return-policies/{returnPolicyId}, by otrzymać szczegółowe dane,
  • dane, które otrzymałeś w poprzednim kroku, odpowiednio wyedytuj według własnych potrzeb i przekaż za pomocą PUT /after-sales-service-conditions/return-policies/{returnPolicyId}.
Kliknij, aby zobaczyć request
toggle visibility
 curl -X PUT \
'https://api.allegro.pl/after-sales-service-conditions/return-policies/bc99b3fe-6953-46c6-80b7-40e6ad82d588' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -d '{
    "id": "bc99b3fe-6953-46c6-80b7-40e6ad82d588",
    "seller": {
        "id": "44173117"
    },
    "name": "ograniczone",
    "availability": {
        "range": "RESTRICTED",
        "restrictionCause": {
            "name": "PRESS",
            "description": "Dziennik, periodyk lub czasopismo – z wyjątkiem umów o prenumeratę."
        }
    },
    "withdrawalPeriod": "P30D",
    "returnCost": {
        "coveredBy": "BUYER"
    },
    "attachment": {                                     - ustawowy wzór odstąpienia od
                                                        umowy, dodajemy automatycznie do
                                                        każdego requestu. Nie możesz
                                                        zmienić tego pola.
        "id": "eba2908b-2403-44b1-bd1f-9893ecbacbe5",
        "name": "Przykładowy formularz odstąpienia od umów.pdf",
        "url": "https://after-sales.allegro.pl/after-sales-service-33/eba2908b-2403-44b1-bd1f-9893ecbacbe5"
    },
    "address": {
        "name": "Allegro.pl Sp. z o.o.",
        "street": "Grunwaldzka 182",
        "postCode": "60-166",
        "city": "Poznań",
        "countryCode": "PL"
    },
    "contact": {
        "phoneNumber": "123123123",
        "email": "email@domain.com"
    },
    "options": {
        "cashOnDeliveryNotAllowed": true,
        "freeAccessoriesReturnRequired": false,
        "refundLoweredByReceivedDiscount": false,
        "abroadReturnTermsMayDiffer": false,
        "businessReturnAllowed": false,
        "collectBySellerOnly": false
    }
}'

Jak zarządzać warunkami reklamacji

Jak dodać informacje o warunkach reklamacji

Skorzystaj z POST /after-sales-service-conditions/implied-warranties, aby dodać nowe warunki zwrotów. W strukturze żądania przekaż pola:

  • name - wymagane, nazwa dla warunków reklamacji,
  • individual.period - wymagane, czas na reklamację z tytułu rękojmi w formacie ISO 8601. Jako wartość możesz wskazać tylko lata, np. “P3Y” oznacza 3 lata.
  • corporate.period - niewymagane, czas na reklamację z tytułu rękojmi dla przedsiębiorców w formacie ISO 8601. Jeżeli chcesz ją wyłączyć, nie przekazuj tego pola lub przekaż wartość null.
  • address - wymagane, adres do reklamacji,
  • description - niewymagane, opis reklamacji. Możesz także skorzystać z tagów HTML: <p>, <b>, <ul>, <ol>, <li>. Inne znaczniki zostaną zignorowane.
Kliknij, aby zobaczyć request
toggle visibility
  curl -X POST \
  'https://api.allegro.pl/after-sales-service-conditions/implied-warranties' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -d '{
    "name": "Główne warunki reklamacji",    - wymagane, nazwa warunków
                                            reklamacji
    "individual": {
        "period": "P1Y"                     - wymagane, czas na reklamację z
                                            tytułu rękojmi
    },
    "corporate": {                          - niewymagane, czas na reklamację
                                            z tytułu rękojmi dla przedsiębiorców.
                                            Jeżeli chcesz ją wyłączyć, przekaż
                                            wartość null.
        "period": "P1Y"
    },
    "address": {                            - wymagane, adres do reklamacji
        "name": "test",
        "street": "ul. Testowa 7",
        "postCode": "61-135",
        "city": "Poznań",
        "countryCode": "PL"
    },
    "description":                          - niewymagane, opis procedury reklamacji
    “<p>Co musi zawierać reklamacja? Reklamacja powinna zawierać:</p>
     <ul><li>Twoje imię i nazwisko oraz adres</li>
     <li>numer oferty na Allegro</li><li>numer zamówienia</li>
     <li>przedmiot reklamacji</li>
     <li>Twoje oczekiwania: wymiana towaru na nowy, naprawa,
     obniżenie ceny lub odstąpienie od umowy (zwrot pieniędzy)</li></ul>”
  }'
Kliknij, aby zobaczyć response
toggle visibility
 {
    "id": "1556c6f7-c6a9-469e-9b3f-8f01eafaedc4",
    "seller": {
        "id": "62799754"
    },
    "name": "Główne warunki reklamacji",
    "individual": {
        "period": "P1Y"
    },
    "corporate": {
        "period": "P1Y"
    },
    "address": {
        "name": "test",
        "street": "ul. Testowa 7",
        "postCode": "61-135",
        "city": "Poznań",
        "countryCode": "PL"
    },
    "description": “<p>Co musi zawierać reklamacja? Reklamacja powinna zawierać:</p>
    <ul><li>Twoje imię i nazwisko oraz adres</li>
 <li>numer oferty na Allegro</li><li>numer zamówienia SO</li>
 <li>przedmiot reklamacji</li><li>Twoje oczekiwania: wymiana towaru na nowy,
 naprawa, obniżenie ceny lub odstąpienie od umowy (zwrot pieniędzy)</li></ul>”
 }

Jak pobrać warunki reklamacji przypisane do konta

Za pomocą GET /after-sales-service-conditions/implied-warranties pobierzesz warunki reklamacji przypisane do zautoryzowanego konta. W odpowiedzi otrzymasz listę 60 warunków, która zawiera informacje o identyfikatorze oraz nazwie warunku. Możesz ją dostosować do własnych potrzeb za pomocą filtrów:

  • limit - liczba wyników w odpowiedzi. Domyślna i maksymalna wartość to 60,
  • offset - miejsce, od którego chcesz pobrać następną porcję danych.

Jeżeli chcesz pobrać szczegóły warunków reklamacji, przekaż ich identyfikator za pomocą GET /after-sales-service-conditions/implied-warranties/{impliedWarrantyId}.

Przykladowy request:

  curl -X GET \
  'https://api.allegro.pl/after-sales-service-conditions/implied-warranties/bbb2458-54f1-4dff-a9d4-c9067554390d' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
Kliknij, aby zobaczyć response
toggle visibility
 {
    "id": bbb2458-54f1-4dff-a9d4-c9067554390d",
    "seller": {
        "id": "627909754"
    },
    "name": "Główne warunki reklamacji",
    "individual": {
        "period": "P6Y"
    },
    "corporate": {
        "period": "P6Y"
    },
    "address": {
        "name": "test",
        "street": "ul. Testowa 7",
        "postCode": "61-135",
        "city": "Poznań",
        "countryCode": "PL"
    },
    "description": “<p>Co musi zawierać reklamacja? Reklamacja powinna zawierać:</p>
  <ul><li>Twoje imię i nazwisko oraz adres</li>
  <li>numer oferty na Allegro</li>
  <li>numer zamówienia SO</li><li>przedmiot reklamacji</li>
  <li>Twoje oczekiwania: wymiana towaru na nowy, naprawa,
  obniżenie ceny lub odstąpienie od umowy (zwrot pieniędzy)</li></ul>””
 }

Jak edytować informacje o warunkach reklamacji

Aby edytować informacje o warunkach zwrotu:

  • za pomoca GET /after-sales-service-conditions/implied-warranties pobierz warunki reklamacji przypisane do zautoryzowanego konta. W odpowiedzi otrzymasz identyfikatory oraz nazwy warunków reklamacji,
  • przekaż wybrany identyfikator warunków reklamacji za pomocą GET /after-sales-service-conditions/implied-warranties/{impliedWarrantyId}, by otrzymać szczegółowe dane,
  • dane, które otrzymałeś w poprzednim kroku, odpowiednio wyedytuj według własnych potrzeb i przekaż za pomocą PUT /after-sales-service-conditions/implied-warranties/{impliedWarrantyId}.
Kliknij, aby zobaczyć request
toggle visibility
 curl -X PUT \
 'https://api.allegro.pl/after-sales-service-conditions/implied-warranties/bbbc9778-54f1-4dff-a9d4-c9067554390d' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -d '{
    "id": "1556c6f7-c6a9-469e-9b3f-8f01eafaedc4",
    "seller": {
        "id": "279934754"
    },
    "name": "Główne warunki reklamacji",
    "individual": {
        "period": "P1Y"
    },
    "corporate": null,
    "address": {
        "name": "test",
        "street": "ul. Testowa 7",
        "postCode": "61-135",
        "city": "Poznań",
        "countryCode": "PL"
    },
    "description": “<p>Co musi zawierać reklamacja? Reklamacja powinna zawierać:</p>
    <ul><li>Twoje imię i nazwisko oraz adres</li>
    <li>numer oferty na Allegro</li><li>numer zamówienia SO</li>
    <li>przedmiot reklamacji</li><li>Twoje oczekiwania: wymiana towaru na nowy,
    naprawa, obniżenie ceny lub odstąpienie od umowy (zwrot pieniędzy)</li></ul>””
 }'

Jak zarządzać informacjami o gwarancjach

Jak dodać załącznik do informacji o gwarancjach

Utwórz obiekt załącznika za pomocą POST /after-sales-service-conditions/attachments. W strukturze przekaż nazwę pliku w formacie .pdf.

Przykładowy request:

  curl -X POST \
  'https://api.allegro.pl/after-sales-service-conditions/attachments' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -d '
  {
    “name”: “warranty.pdf”             - nazwa pliku, który chcesz załączyć
  }'

Przykładowy response:

  {
    "id": "7c8f40bc-3e50-408b-a66b-48122e05d84e",
    "name": "warranty.pdf",
    "url": null
  }

Teraz użyj PUT /after-sales-service-conditions/attachments/{attachmentId} - jako attachmentId przekaż wartość id, którą otrzymałeś krok wcześniej. Pamiętaj, aby użyć adresu, który zwróciliśmy w nagłówku location.

Przykładowy request:

  curl -X PUT \
  'https://upload.allegro.pl/after-sales-service-conditions/attachments/7c8f40bc-3e50-408b-a66b-48122e05d84e' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json'
  -H 'Content-Type: application/pdf'
  --data-binary "@warranty.pdf"                                - wymagany, zawartość pliku z
                                                               załącznikiem w postaci binarnej

Przykładowy response:

  {
    "id": "7c8f40bc-3e50-408b-a66b-48122e05d84e",
    "name": "warranty.pdf",
    "url": "https://after-sales.allegrostatic.com/after-sales-service-5c/7c8f40bc-3e50-408b-a66b-48122e05d84e"
  }

Obiekt, który otrzymałeś, możesz dodać do informacji o gwarancjach w polu attachment. W dalszej części poradnika opisujemy ten proces.

Jak dodać informacje o gwarancjach

Skorzystaj z POST /after-sales-service-conditions/warranties, aby dodać nowe informacje o gwarancjach. W strukturze żądania przekaż pola:

  • name - wymagane, nazwa dla informacji o gwarancji,
  • type - wymagane, rodzaj gwarancji, dostępne wartości to MANUFACTURER (od producenta/dystrybutora) lub SELLER (od sprzedawcy),
  • individual.period - wymagane, okres gwarancji w formacie ISO 8601. Jako wartość możesz wskazać tylko miesiące, np. “P12M”, co oznacza 12 miesięcy. Jeżeli chcesz wskazać dożywotnią gwarancję, pozostaw to miejsce puste, a w polu individual.lifetime przekaż wartość true,
  • corporate.period - niewymagane, okres gwarancji w formacie ISO 8601 dla przedsiębiorców. Jako wartość możesz wskazać tylko miesiące, np. “P12M” oznacza 12 miesięcy. Jeżeli chcesz wskazać dożywotnią gwarancję, pozostaw to miejsce puste, a w polu individual.lifetime przekaż wartość true,
  • attachment - niewymagane, załącznik do gwarancji,
  • description - niewymagane, informacje dodatkowe np. gdzie szukać informacji, z kim i jak ma się kontaktować, jakie dokumenty będą potrzebne itp.
Kliknij, aby zobaczyć request
toggle visibility
  curl -X POST \
  'https://api.allegro.pl/after-sales-service-conditions/warranties' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -d '{
  "name": "12 miesięcy",                    - wymagane, nazwa informacji o
                                            gwarancjach
  "type": "MANUFACTURER",                   - wymagane, rodzaj gwarancji
  "individual": {
    "period": "P12M",                       - wymagane, okres gwarancji
    "lifetime": false                       - niewymagane, czy gwarancja jest
                                            dożywotnia,
  },
  "corporate": {                            - niewymagane, okres gwarancji dla
                                            przedsiębiorców
    "period": "P12M",
    "lifetime": false
  },
  "attachment": {                           - niewymagane, informacje o
                                            załączniku
    "id": "54702c96-4ccd-4c0e-b4c7-382a71e810b5",
    "name": "warranty.pdf",
    "url": "https://after-sales.allegrostatic.com/after-sales-service-5c/7c8f40bc-3e50-408x-a66b-48122e05d84e"
}
  },
  "description":                            - niewymagane, informacje
                                            dodatkowe
  "<p>Gwarancja producenta na 12 miesięcy</p>"
}'
Kliknij, aby zobaczyć response
toggle visibility
  {
    "id": "bce9e4ad-4e06-4478-8038-04f3cbed73f4",
    "seller": {
        "id": "6279923754"
    },
    "name": "12 miesięcy",
    "type": "MANUFACTURER",
    "individual": {
        "period": "P12M",
        "lifetime": false
    },
    "corporate": {
        "period": "P12M",
        "lifetime": false
    },
    "attachment": {
        "id": "54702c96-4ccd-4c0e-b4c7-382a71e810b5",
        "name": "warranty.pdf",
        "url": "https://after-sales.allegrostatic.com/after-sales-service-00/54702c96-4ccd-4c0e-b4c7-382a71e810b5"
    },
    "description": "<p>Gwarancja producenta na 12 miesięcy</p>"
  }

Jak pobrać informacje o gwarancjach przypisanych do konta

Za pomocą GET /after-sales-service-conditions/warranties pobierzesz informacje o gwarancjach przypisanych do zautoryzowanego konta. W odpowiedzi otrzymasz listę 60 gwarancji, która zawiera informacje o identyfikatorze oraz nazwie warunków. Możesz ją dostosować do własnych potrzeb za pomocą filtrów:

  • limit - liczba wyników w odpowiedzi. Domyślna i maksymalna wartość to 60,
  • offset - miejsce, od którego chcesz pobrać następną porcję danych.

Jeżeli chcesz pobrać szczegóły informacji o gwarancji, przekaż ich identyfikator za pomocą GET /after-sales-service-conditions/warranties/{warrantyId}.

Przykładowy request:

  curl -X GET \
  'https://api.allegro.pl/after-sales-service-conditions/warranties/bbb2458-54f1-4dff-a9d4-c9067554390d' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json'
Kliknij, aby zobaczyć response
toggle visibility
  {
    "id": "bbb2458-54f1-4dff-a9d4-c9067554390d",
    "seller": {
        "id": "627120754"
    },
    "name": "default",
    "type": "MANUFACTURER",
    "individual": {
        "period": null,
        "lifetime": true
    },
    "corporate": {
        "period": null,
        "lifetime": true
    },
    "attachment": {
        "id": "564c8680-505c-4d34-a6d3-bd8e4d20b49d",
        "name": "uploaded_file.pdf",
        "url": "https://after-sales.allegrostatic.com/after-sales-service-b5/564c8680-505c-4d34-a6d3-bd8e4d20b49d"
    },
    "description": null,
  }

Jak edytować informacje o gwarancjach

Aby edytować informacje o gwarancjach:

  • za pomoca GET /after-sales-service-conditions/warranties pobierz informacje o gwarancjach przypisane do zautoryzowanego konta. W odpowiedzi otrzymasz identyfikatory oraz nazwy gwarancji,
  • przekaż wybrany identyfikator gwarancji za pomocą GET /after-sales-service-conditions/warranties/{warrantyId}, by otrzymać szczegółowe dane,
  • dane, które otrzymałeś w poprzednim kroku, odpowiednio wyedytuj według własnych potrzeb i przekaż za pomocą PUT /after-sales-service-conditions/warranties/{warrantyId}.
Kliknij, aby zobaczyć request
toggle visibility
  curl -X PUT \
  'https://api.allegro.pl/after-sales-service-conditions/warranties/bbbc9712-54f1-4dff-a9d4-c9067554390d' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -d '{
    "id": "62c9bede-82be-4d17-831d-af66270d1ade",
    "seller": {
        "id": "62799754"
    },
    "name": "default",
    "type": "MANUFACTURER",
    "individual": {
        "period": null,
        "lifetime": true
    },
    "corporate": {
        "period": null,
        "lifetime": true
    },
    "attachment": {
        "id": "564c8680-505c-4d34-a6d3-bd8e4d20b49d",
        "name": "uploaded_file.pdf",
        "url": "https://after-sales.allegrostatic.com/after-sales-service-b5/564c8680-505c-4d34-a6d3-bd8e4d20b49d"
    },
    "description": null,
  }'

Jak zarządzać usługami dodatkowymi

Aby uatrakcyjnić Twoje oferty, możesz skorzystać z usług dodatkowych, np. zapakowanie na prezent, wniesienie, montaż, itd. Więcej informacji znajdziesz w Pomocy Allegro.

Jak pobrać listę dostępnych usług dodatkowych

Skorzystaj z GET /sale/offer-additional-services/definitions, aby pobrać listę dostępnych usług dodatkowych.

Przykładowy request:

curl -X GET \
'https://api.allegro.pl/sale/offer-additional-services/definitions' \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
Kliknij aby zobaczyć response
toggle visibility
{
   "definitions": [
      {
         "id": "GIFT_WRAP",                               -- identyfikator usługi dodatkowej
         "name": "Zapakuj na prezent",                    -- nazwa usługi dodatkowej
         "description": "Usługa polegająca na zapakowaniu -- opis usługi dodatkowej
         kupionego towaru w ozdobne pudełko lub papier",    
         "availableConstraints": [                        -- ograniczenia usługi dodatkowej
            {
               "type": "COUNTRY_SAME_QUANTITY"            -- ograniczenie ilości usług
                                                          dodatkowych, tzn. liczba usług
                                                          dodatkowych musi być równa 
                                                          liczbie kupionych przedmiotów. 
                                                          Ograniczenie dotyczy usługi - 
                                                          Zapakuj na prezent (GIFT_WRAP).

            }
         ],
         "updatedAt": "2019-07-04T14:50:34.985Z"
      },
      {
         "id": "CARRY_IN",
         "name": "Wniesienie",
         "description": "Opisz, na co powinien przygotować się kupujący i czy są 
         jakieś ograniczenia, np. piętro, do którego dostarczasz przesyłkę.",
         "availableConstraints": [
            {
               "type": "COUNTRY_DELIVERY_SAME_QUANTITY", -- ograniczenie ilości usług 
                                                        dodatkowych i metod dostawy. 
                                                        Liczba usług dodatkowych musi 
                                                        być równa liczbie kupionych 
                                                        przedmiotów. Ponadto usługi są 
                                                        dostępne tylko przy określonych 
                                                        metodach dostawy.
               "availableDeliveryMethods": [             -- metody dostawy dostępne 
                                                         dla danej usługi dodatkowej 
                                                         (metody dostawy sprawdzisz za
                                                         pomocą GET /sale/delivery-methods).
                  "7203cb90-864c-4cda-bf08-dc883f0c78ad",
                  "45309171-0415-49cd-b2cf-89e9143d20f0",
                  "2b6ca59d-1e4c-426c-82a9-efcbd730846b",
      …               ]
            }
         ],
         "updatedAt": "2021-04-29T14:55:04.025Z"
      },
      {
         "id": "CARRY_IN_AND_PREPARATION",
         "name": "Wniesienie i przygotowanie do pracy",
         "description": "Opisz, co realizujesz w ramach Przygotowania do pracy 
         i czy są jakieś ograniczenia, np. piętro, do którego dostarczasz przesyłkę.",
         "availableConstraints": [
            {
               "type": "COUNTRY_DELIVERY_SAME_QUANTITY",
               "availableDeliveryMethods": [
                  "7203cb90-864c-4cda-bf08-dc883f0c78ad",
                  "45309171-0415-49cd-b2cf-89e9143d20f0",
                  "2b6ca59d-1e4c-426c-82a9-efcbd730846b",
                  …
               ]
            }
         ],
         "updatedAt": "2021-04-29T15:05:58.499Z"
      },
      {
         "id": "CARRY_IN_AND_SETUP",
         "name": "Wniesienie i ustawienie",
         "description": "Opisz, co realizujesz w ramach Ustawienia 
         i czy są jakieś ograniczenia, np. piętro, do którego dostarczasz przesyłkę.",
         "availableConstraints": [
            {
               "type": "COUNTRY_DELIVERY_SAME_QUANTITY",
               "availableDeliveryMethods": [
                  "7203cb90-864c-4cda-bf08-dc883f0c78ad",
                  "45309171-0415-49cd-b2cf-89e9143d20f0",
                  "2b6ca59d-1e4c-426c-82a9-efcbd730846b",
                  …               ]
            }
         ],
         "updatedAt": "2021-04-29T15:13:26.141Z"
      },
      {
         "id": "INSTALLATION",
         "name": "Montaż",
         "description": "Opisz, co realizujesz w ramach Montażu 
         i czy są jakieś ograniczenia.",
         "availableConstraints": [
            {
               "type": "COUNTRY_DELIVERY_SAME_QUANTITY",
               "availableDeliveryMethods": [
                  "7203cb90-864c-4cda-bf08-dc883f0c78ad",
                  "45309171-0415-49cd-b2cf-89e9143d20f0",
                  …
               ]
            }
         ],
         "updatedAt": "2021-04-29T15:10:59.230Z"
      },
      {
         "id": "CARRY_IN_AND_INSTALLATION",
         "name": "Wniesienie i montaż",
         "description": "Opisz, co realizujesz w ramach Montażu 
         i czy są jakieś ograniczenia, np. piętro, do którego dostarczasz przesyłkę.",
         "availableConstraints": [
            {
               "type": "COUNTRY_DELIVERY_SAME_QUANTITY",
               "availableDeliveryMethods": [
                  "7203cb90-864c-4cda-bf08-dc883f0c78ad",
                  "45309171-0415-49cd-b2cf-89e9143d20f0",
                  "2b6ca59d-1e4c-426c-82a9-efcbd730846b",
                  …
               ]
            }
         ],
         "updatedAt": "2021-04-29T15:01:36.080Z"
      },
      {
         "id": "CARRY_IN_AND_INSTALLATION_AND_PREPARATION",
         "name": "Wniesienie, montaż i przygotowanie do pracy",
         "description": "Opisz, co realizujesz w ramach Montażu 
         i Przygotowania do pracy, i czy są jakieś ograniczenia, 
         np. piętro, do którego dostarczasz przesyłkę.",
         "availableConstraints": [
            {
               "type": "COUNTRY_DELIVERY_SAME_QUANTITY",
               "availableDeliveryMethods": [
                  "7203cb90-864c-4cda-bf08-dc883f0c78ad",
                  "45309171-0415-49cd-b2cf-89e9143d20f0",
                  "2b6ca59d-1e4c-426c-82a9-efcbd730846b",
                  …
               ]
            }
         ],
         "updatedAt": "2021-04-29T15:08:56.827Z"
      },
      {
         "id": "DOOR_OPENING_DIRECTION_CHANGE",
         "name": "Zmiana kierunku otwierania drzwi",
         "description": "Zmiana kierunku otwierania drzwi",
         "availableConstraints": [
            {
               "type": "COUNTRY_SAME_QUANTITY"
            }
         ],
         "updatedAt": "2017-11-08T15:16:45.266Z"
      }
   ]
}

Jak dodać nową grupę usług dodatkowych

Skorzystaj z POST /sale/offer-additional-services/groups, aby utworzyć nową grupę usług dodatkowych.

Przykładowy request:

curl -X POST \
  'https://api.allegro.pl/sale/offer-additional-services/groups' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json’ \
  -H 'Content-type: application/vnd.allegro.public.v1+json' \
  -d '{
  "name": "nazwa grupy",                      - wymagane, nazwa nowej grupy usług
                                              dodatkowych
  "additionalServices": [                     - wymagane, typy usług dodatkowych 
                                              dostępnych w ramach danej grupy
    {
      "definition": {
        "id": "CARRY_IN"                      - wymagane, dostępną listę wartości 
                                              pobierzesz za pomocą
                                              GET /sale/offer-additional-services/definitions
      },
      "description": "opis usługi dodatkowej",- wymagane, opis usługi dodatkowej
      "configurations": [                     - wymagane, cena danej usługi dodatkowej
        {
          "price": {
            "amount": "49.99",
            "currency": "PLN"
          },
          "constraintCriteria": {             - wymagane, ograniczenia danej usługi 
                                              dodatkowej
            "type": "COUNTRY_DELIVERY_SAME_QUANTITY",
            "country": "PL",
            "deliveryMethods": [              - wymagane dla typu 
                                              COUNTRY_DELIVERY_SAME_QUANTITY,
                                              niewymagane dla 
                                              COUNTRY_SAME_QUANTITY; 
                                              przypisane metody dostawy danej 
                                              usługi dodatkowej
              {"id": "7203cb90-864c-4cda-bf08-dc883f0c78ad"} 
                                              - wymagane, identyfikator danej metody 
                                              dostawy (metody dostawy sprawdzisz  
                                              za pomocą GET /sale/delivery-methods)).
            ]
          }
        }
      ]
    }
  ]
"language": "pl-PL"                           - opcjonalne, określ język bazowy 
                                              grupy usług dodatkowych. Jeśli nie 
                                              przekażesz tego pola, to domyślnie 
                                              przypiszemy wartość “pl-PL”.
}'
Kliknij aby zobaczyć response
toggle visibility
{
    "id": "0aba7cf9-8896-44a4-8919-266bf6516a82",           - identyfikator utworzonej 
                                                            grupy usług dodatkowych
    "name": "nazwa grupy",                                  - nazwa utworzonej grupy 
                                                            usług dodatkowych
    "seller": {
        "id": "53703086"                                    - identyfikator sprzedawcy
    },
    "additionalServices": [                                 - kryteria, które opisują 
                                                            warunki wybranej grupy 
                                                            usług dodatkowych. np. cena
        {
            "definition": {
                "id": "CARRY_IN"
            },
            "description": "opis usługi dodatkowej",
            "configurations": [
                {
                    "price": {
                        "amount": "49.99",
                        "currency": "PLN"
                    },
                    "constraintCriteria": {
                        "type": "COUNTRY_DELIVERY_SAME_QUANTITY",
                        "country": "PL",
                        "deliveryMethods": [
                            {"id": "7203cb90-864c-4cda-bf08-dc883f0c78ad"}
                        ]
                    }
                }
            ]
        }
    ],
    "language": "pl-PL",
    "createdAt": "2017-10-04T11:41:30.904Z",
    "updatedAt": "2017-10-04T11:41:30.905Z"
}

Jak zaktualizować grupę usług dodatkowych

Skorzystaj z PUT /sale/offer-additional-services/groups/{groupId}, aby zaktualizować dane wybranej grupy usług dodatkowych.

Przykładowy request:

curl -X PUT \
  'https://api.allegro.pl/sale/offer-additional-services/groups/{groupId}' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json’ \
  -H 'Content-type: application/vnd.allegro.public.v1+json' \
  -d '{
  "name": "nowa nazwa grupy",
  "additionalServices": [
    {
      "definition": {
        "id": "CARRY_IN"
      },
      "description": "nowy opis usługi dodatkowej",
      "configurations": [
        {
          "price": {
            "amount": "49.99",
            "currency": "PLN"
          },
          "constraintCriteria": {
            "type": "COUNTRY_DELIVERY_SAME_QUANTITY",
            "country": "PL",
            "deliveryMethods": [
              {"id": "7203cb90-864c-4cda-bf08-dc883f0c78ad"}
            ]
          }
        }
      ]
    }
  ]
}'
Kliknij aby zobaczyć response
toggle visibility
{
    "id": "0aba7cf9-8896-44a4-8919-266bf6516a82",
    "name": "nowa nazwa grupy",
    "seller": {
        "id": "53703086"
    },
    "additionalServices": [
        {
            "definition": {
                "id": "CARRY_IN"
            },
            "description": "nowy opis usługi dodatkowej",
            "configurations": [
                {
                    "price": {
                        "amount": "49.99",
                        "currency": "PLN"
                    },
                    "constraintCriteria": {
                        "type": "COUNTRY_DELIVERY_SAME_QUANTITY",
                        "country": "PL",
                        "deliveryMethods": [
                            {"id": "7203cb90-864c-4cda-bf08-dc883f0c78ad"}
                        ]
                    }
                }
            ]
        }
    ],
    "language": "pl-PL",
    "createdAt": "2017-10-04T11:41:30.904Z",
    "updatedAt": "2017-10-04T12:00:51.929Z"
}

Jak pobrać listę grup usług dodatkowych na koncie

Skorzystaj z GET /sale/offer-additional-services/groups, aby pobrać listę grup z dostępnymi usługami dodatkowymi na koncie.

Przykładowy request:

curl -X GET \
'https://api.allegro.pl/sale/offer-additional-services/groups \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
Kliknij aby zobaczyć response
toggle visibility
{
  "additionalServicesGroups": [                             - konfiguracja tablica z 
                                                            grupami usług dodatkowych
    {
      "id": "8603fbbb-0f0e-4999-945e-258c4c96c7d6",         - identyfikator danej grupy 
                                                            usług dodatkowych
      "name": "Mój pakiet usług",                           - nazwa danej grupy 
                                                            usług dodatkowych
      "seller": {                                           - identyfikator sprzedawcy
        "id": "53703086"
      },
      "additionalServices": [                               - tablica usług dodatkowych 
                                                            w danej grupie
        {
          "definition": {
            "id": "GIFT_WRAP"
          },
          "description": "Zapakuj na prezent",
          "configurations": [                               - konfiguracja danej 
                                                            usługi dodatkowej
            {
              "price": {
                "amount": "20",
                "currency": "PLN"
              },
              "constraintCriteria": {
                "type": "COUNTRY_SAME_QUANTITY",
                "country": "PL"
              }
            }
          ]
        },
        {
          "definition": {
            "id": "CARRY_IN"
          },
          "description": "Wniesienie na dowolne piętro",
          "configurations": [
            {
              "price": {
                "amount": "22",
                "currency": "PLN"
              },
              "constraintCriteria": {
                "type": "COUNTRY_DELIVERY_SAME_QUANTITY",
                "country": "PL",
                "deliveryMethods": [
                  {"id": "7203cb90-864c-4cda-bf08-dc883f0c78ad"},
                  {"id": "4dd9c904-e892-4649-bdec-5454d6b53d28"},
                  {"id": "f7e952b5-9ae8-40a9-90dd-e71ab9da29dd"},
                  {"id": "5d9c7838-e05f-4dec-afdd-58e884170ba7"}
                ]
              }
            }
          ]
        },
        {
          "definition": {
            "id": "INSTALLATION"
          },
          "description": "Montaż",
          "configurations": [
            {
              "price": {
                "amount": "25",
                "currency": "PLN"
              },
              "constraintCriteria": {
                "type": "COUNTRY_DELIVERY_SAME_QUANTITY",
                "country": "PL",
                "deliveryMethods": [
                  {"id": "7203cb90-864c-4cda-bf08-dc883f0c78ad"},
                  {"id": "4dd9c904-e892-4649-bdec-5454d6b53d28"},
                  {"id": "f7e952b5-9ae8-40a9-90dd-e71ab9da29dd"},
                  {"id": "ffb2643b-4b90-4925-9d29-0d93ad9488a6"},
                  {"id": "74bc07eb-552f-4581-b68c-da46716d4a9a"}
                ]
              }
            }
          ]
        }
      ],
      "language": "pl-PL",
      "createdAt": "2017-08-07T12:08:36.151Z",
      "updatedAt": "2017-08-07T12:08:36.151Z"
    }
  ]
}

Jak pobrać wybraną grupę usług dodatkowych

Skorzystaj z GET /sale/offer-additional-services/groups/{groupId}, aby pobrać wybraną grupę usług dodatkowych, którą możesz przypisać do oferty. Identyfikator grupy usług dodatkowych - {groupId} - uzyskasz za pomocą GET /sale/offer-additional-services/groups.

Przykładowy request:

curl -X GET \
'https://api.allegro.pl/sale/offer-additional-services/groups/{groupId}' \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
Kliknij aby zobaczyć response
toggle visibility
{
    "id": "0a3e6ca4-b8fb-4cce-9d47-4ca47ef49903",
    "name": "Pakiet prezent i wniesienie",
    "seller": {
        "id": "53703086"
    },
    "additionalServices": [
        {
            "definition": {
                "id": "GIFT_WRAP"
            },
            "description": "Opis zapakuj na prezent",
            "configurations": [
                {
                    "price": {
                        "amount": "15",
                        "currency": "PLN"
                    },
                    "constraints": {
                        "type": "COUNTRY_SAME_QUANTITY",
                        "country": "PL"
                    }
                }
            ]
        },
        {
            "definition": {
                "id": "CARRY_IN"
            },
            "description": "Opis wniesienia",
            "configurations": [
                {
                    "price": {
                        "amount": "16",
                        "currency": "PLN"
                    },
                    "constraintCriteria": {
                        "type": "COUNTRY_DELIVERY_SAME_QUANTITY",
                        "country": "PL",
                        "deliveryMethods": [
                            {"id": "7203cb90-864c-4cda-bf08-dc883f0c78ad"},
                            {"id": "45309171-0415-49cd-b2cf-89e9143d20f0"},
                            {"id": "2b6ca59d-1e4c-426c-82a9-efcbd730846b"},
                            {"id": "74bc07eb-552f-4581-b68c-da46716d4a9a"},
                            {"id": "ffb2643b-4b90-4925-9d29-0d93ad9488a6"}
                        ]
                    }
                }
            ]
        }
    ],
    "language": "pl-PL",
    "createdAt": "2017-08-04T12:46:36.996Z",
    "updatedAt": "2017-08-04T12:46:36.996Z"
}

Aby skorzystać z POST /sale/offer-additional-services/groups i PUT /sale/offer-additional-services/groups/{groupId}, musisz być zautoryzowany jako sprzedawca.

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 pobrać opcje promowania dla wielu ofert

Za pomocą GET /sale/offers/promo-options pobierzesz opcje promowania dla wszystkich ofert zalogowanego sprzedawcy. Domyślnie w odpowiedzi otrzymasz 5000 opcji promowań. Aby dopasować wyniki do swoich potrzeb, użyj filtrów:

  • limit - liczba wyników, które zwrócimy w odpowiedzi. Domyślna wartość to 5000, maksymalna 5000;
  • offset - by wskazać miejsce, od którego chcesz pobrać kolejną porcję danych (domyślnie 0).

Przykładowy request:

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

Przykładowy response:

{
    "promoOptions": [
{
            "offerId": "7685430123",         - numer oferty
            "basePackage": {                 - podstawowe opcje promowania
                "id": "promoPackage",        - ID pakietu promowania
                "validFrom": "2022-03-21T09:20:50.276Z", - data, od kiedy pakiet jest aktywny
                "validTo": null,             - data, do kiedy pakiet jest aktywny

                "nextCycleDate": "2022-04-02T09:20:50.276Z" - data następnego cyklu rozliczeniowego
            },
            "extraPackages": [],             - dodatkowe opcje promowania
            "pendingChanges": null           - informacje o nowych pakietach
                                             promowania, które włączymy po zakończeniu 
                                             aktualnego okresu rozliczeniowego
        },
        {
            "offerId": "7687105138",
            "basePackage": {
                "id": "emphasized1d",
                "validFrom": "2022-03-11T09:21:57Z",
                "validTo": null,
                "nextCycleDate": "2022-04-02T09:21:57Z"
            },
            "extraPackages": [],
            "pendingChanges": null
        }
    ],
    "count": 2,                              - liczba zwróconych opcji promowań
    "totalCount": 2                          - całkowita liczba opcji promowań
}

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 zarządzać tłumaczeniami

Tłumaczenia ofert

Język bazowy, który jest podstawą do dalszych tłumaczeń, określisz w polu “language”. Na tę chwilę możesz przekazać w nim wartość “pl-PL" lub “en-US”. Jeśli nie przekażesz tego pola, to domyślnie przypiszemy mu wartość “pl-PL”. Język bazowy możesz zmienić wyłącznie, kiedy oferta jest w statusie INACTIVE (jest szkicem). Ofertę tłumaczymy automatycznie na język angielski/polski (także za każdym razem, gdy zmienisz tytuł lub opis), jeśli:

Oferty tłumaczymy automatycznie na język angielski/polski (także za każdym razem, gdy zmienisz tytuł lub opis), jeśli:

  • jest w statusie ACTIVE,
  • kraj, do którego możliwa jest wysyłka, jest różny od kraju operacyjnego serwisu (dotyczy wyłącznie tłumaczenia na angielski),
  • jest w innym języku bazowym niż angielski/polski,
  • kategoria, w której jest wystawiona wystawiona, nie znajduje się na liście kategorii, których nie tłumaczymy automatycznie (Książki i Antykwariat),
  • została wystawiona przez konto firmowe.

Możesz również przekazać nam własne tłumaczenie, w takim przypadku nie będziemy go automatycznie aktualizować.

Za każdym razem, kiedy tłumaczenie oferty zostanie zaktualizowane, otrzymasz zdarzenie "OFFER_TRANSLATION_UPDATED” w dzienniku ofertowym GET /sale/offer-events.

Jak pobrać tłumaczenie oferty

Za pomocą GET /sale/offers/{offerId}/translations pobierzesz listę dostępnych tłumaczeń dla wskazanej oferty. Za pomocą parametru language wskaż wartość w formacie BCP-47, aby pobrać tłumaczenie w wybranym języku. Listę dostępnych wartości dla tego parametru znajdziesz w naszej dokumentacji. Jeśli nie wskażesz wartości w tym polu, zwrócimy wszystkie dostępne tłumaczenia oferty, włącznie z językiem bazowym.

Przykładowy request:

 curl -X GET \
 'https://api.allegro.pl/sale/offers/10790622696/translations?language=en-US' \
 -H 'Authorization: Bearer {token}' \
 -H 'Accept: application/vnd.allegro.public.v1+json' \ 
 -H 'Content-Type: application/vnd.allegro.public.v1+json' \

Przykładowy response:

 {
  "translations": [                     – lista dostępnych tłumaczeń
    {
      "description": {                  – informacje o tłumaczeniu opisu oferty
        "translation": {                – tłumaczenie opisu oferty
          "sections": [{
            "items": [{
              "type": "TEXT",
              "content": "<p>English description</p>"
              },
              {
             "type": "IMAGE",
             "url": "https://img.allegrogroup.com/image.jpg"
             }
           ]
         }]
        },
        "type": "AUTO"                 – typ tłumaczenia, zwracamy jedną z wartości: 
                                       “AUTO” (tłumaczenie automatyczne, wykonane przez 
                                       Allegro na podstawie języka bazowego oferty), 
                                       “MANUAL” (tłumaczenie własne dostarczone przez 
                                       użytkownika), BASE (oryginalna treść oferty w 
                                       zadeklarowanym języku bazowym)
      },
      "language": "en-US",           – język tłumaczenia
      "title": {                     – informacje o tłumaczeniu tytułu
        "translation": "Blue Jeans", – tłumaczenie tytułu oferty
        "type": "AUTO"               – typ tłumaczenia
      }
    }
  ]
 }
Jak dodać lub zaktualizować tłumaczenie oferty

Za pomocą PATCH /sale/offers/{offerId}/translations/{language} dodasz lub zaktualizujesz tłumaczenie swojej oferty. Jeśli przekażesz nam własne tłumaczenie, nie będziemy już tłumaczyć oferty automatycznie.

Jako {language} wskaż jeden z dostępnych języków w formacie BCP-47, które wymieniliśmy w naszej dokumentacji. W przekazywanej strukturze wskaż przynajmniej jeden z elementów, który chcesz przetłumaczyć - “title” (tytuł) lub “description” (opis).

Ważne! Jeśli przekazujesz tłumaczenie opisu oferty, pamiętaj, aby przekazać całą strukturę tego pola - włącznie z obrazkami.

Jeżeli wykonasz próbę aktualizacji tłumaczenia opisu oferty bez faktycznych zmian w strukturze żądania, w odpowiedzi zwrócimy błąd 422 Unprocessable entity. Podobny błąd otrzymasz, jeśli w ofercie doszło już do zakupu lub któryś z użytkowników bierze udział w licytacji.

Przykładowy request:

 curl -X PATCH \
 'https://api.allegro.pl/sale/offers/10790622696/translations/en-US' \
 -H 'Authorization: Bearer {token}' \
 -H 'Accept: application/vnd.allegro.public.v1+json' \ 
 -H 'Content-Type: application/vnd.allegro.public.v1+json' \
 -d '{
 "description": {
   "translation": {
     "sections": [{
       "items": [{
         "type": "TEXT",
         "content": "<p>English description</p>"
        },
        {
        "type": "IMAGE",
        "url": "https://img.allegrogroup.com/image.jpg"
        }
      ]
   }]
 }
 "title": {
    "translation": "Blue Jeans"
  }
 }'

Przykładowy response:

 Status 200 Update successful 
Jak usunąć tłumaczenie

Za pomocą DELETE /sale/offers/{offerId}/translations/{language} usuniesz wybrane własne tłumaczenie oferty. Jako {language} wskaż dostępny język tłumaczenia w formacie BCP-47, a w parametrze element określ, czy chcesz usunąć tłumaczenie pola “title” albo “description”. Jeśli nie przekażesz tego parametru, usuniemy tłumaczenie obu sekcji.

Jeśli usuniesz własne tłumaczenie oferty, to na podstawie aktualnego tytułu i opisu ponownie wygenerujemy automatyczne tłumaczenie dla języka, dla którego usuwasz wskazane elementy (pod warunkiem, że zakwalifikowaliśmy ofertę do automatycznego tłumaczenia na ten język).

Przykładowy request:

 curl -X DELETE \
 'https://api.allegro.pl/sale/offers/10790622696/translations/en-US?element=description' \
 -H 'Authorization: Bearer {token}' \
 -H 'Accept: application/vnd.allegro.public.v1+json' \ 
 -H 'Content-Type: application/vnd.allegro.public.v1+json' \

Przykładowy response:

 Status 200 OK

Tłumaczenia usług dodatkowych

Jak pobrać tłumaczenie dla danego pakietu usług dodatkowych

Za pomocą GET /sale/offer-additional-services/groups/{groupId}/translations pobierzesz tłumaczenie dla danego pakietu usług dodatkowych.

Skorzystaj z parametru language i wskaż w nim wartość w formacie BCP-47, aby pobrać tłumaczenie w wybranym języku. Listę dostępnych wartości dla tego parametru znajdziesz w naszej dokumentacji.

Przykładowy request:

curl -X GET \
'https://api.allegro.pl/sale/offer-additional-services/groups/fd2b1ee9-3ace-4f9a-b2d8-839980f2a484/translations?language=pl-PL' \
 -H 'Authorization: Bearer {token}' \
 -H 'Accept: application/vnd.allegro.public.v1+json' \ 

Przykładowy response:

{
   "translations": [                       – lista dostępnych tłumaczeń
       {
           "language": "pl-PL",            – język tłumaczenia
           "additionalServices": {
               "translation": [
                   {
                       "definition": {
                           "id": "CARRY_IN"
                       },
                       "description": "nowy opis usługi dodatkowej"
                   }
               ],
               "type": "MANUAL"            – typ tłumaczenia
           }
       }
   ]
}
Jak utworzyć lub zmodyfikować tłumaczenie dla danego pakietu i języka

Za pomocą PATCH /sale/offer-additional-services/groups/{groupId}/translations/{language} utworzysz lub edytujesz tłumaczenie dla danego pakietu usług dodatkowych.

Przykładowy request:

curl -X PATCH \
'https://api.allegro.pl/sale/offer-additional-services/groups/fd2b1ee9-3ace-4f9a-b2d8-839980f2a484/translations/en-US' \
 -H 'Authorization: Bearer {token}' \
 -H 'Accept: application/vnd.allegro.public.v1+json' \ 
 -H 'Content-Type: application/vnd.allegro.public.v1+json' \
-d '{
 "additionalServices": {
   "translation": [
     {
       "definition": {
         "id": "CARRY_IN"
       },
       "description": "New description of the additional service"
     }
   ]
 }
}'

Przykładowy response:

{
   "language": "en-US",
   "additionalServices": {
       "translation": [
           {
               "definition": {
                   "id": "CARRY_IN"
               },
               "description": "New description of the additional service"
           }
       ],
       "type": "MANUAL"
   }
}
Jak usunąć tłumaczenie dla danego pakietu i języka

Za pomocą DELETE /sale/offer-additional-services/groups/{groupId}/translations/{language} usuniesz tłumaczenie dla danego pakietu i języka.

Przykładowy request:

curl -X DELETE \
'https://api.allegro.pl/sale/offer-additional-services/groups/fd2b1ee9-3ace-4f9a-b2d8-839980f2a484/translations/en-US' \
 -H 'Authorization: Bearer {token}' \
 -H 'Accept: application/vnd.allegro.public.v1+json' \

Przykładowy response:

Status 204 No Content

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.

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.

Klasyfikacja oferty w programie Allegro Smart!

Możesz sprawdzić klasyfikację oferty w programie Allegro Smart! za pomocą jednego z udostępnionych zasobów.

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:

  • GET /sale/offer-events - pobierz dziennik zdarzeń w ofertach
  • GET /sale/offers - pobierz listę ofert
  • GET sale/offers/{offerId} - pobierz szczegółowe dane oferty
  • PUT /sale/offers/{offerId} - edytuj ofertę
  • PUT /sale/offer-price-change-commands/{commandId} - zmień grupowo cenę w ofertach
  • PUT /sale/offer-quantity-change-commands/{commandId} - zmień grupowo liczbę przedmiotów w ofertach
  • PUT /sale/offer-modification-commands/{commandId} - zmień grupowo np. cenniki dostaw
  • PUT /sale/offer-publication-commands/{commandId} - zakończ lub wznów ofertę

Lista zasobów wspierających opisanych w poradniku:

  • GET /sale/offer-price-change-commands/{commandId} - pobierz raport z grupowej zmiany ceny
  • GET /sale/offer-price-change-commands/{commandId}/tasks - pobierz szczegółowy raport z grupowej zmiany ceny
  • GET /sale/offer-quantity-change-commands/{commandId} - pobierz raport z grupowej zmiany liczby przedmiotów
  • GET /sale/offer-quantity-change-commands/{commandId}/tasks - pobierz szczegółowy raport z grupowej zmiany liczby przedmiotów
  • GET /sale/offer-modification-commands/{commandId} - pobierz raport z grupowej edycji oferty
  • GET /sale/offer-modification-commands/{commandId}/tasks - pobierz szczegółowy raport z grupowej edycji ofert

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}
Limit 
10 zapytań na sekundę
PUT /sale/offer-price-change-commands/{commandId}
Limit 
250 tys. ofert na godzinę i 9 tys. na minutę
PUT /sale/offer-quantity-change-commands/{commandId}
Limit 
250 tys. ofert na godzinę i 9 tys. na minutę
PUT /sale/offer-modification-commands/{commandId}
Limit 
250 tys. ofert na godzinę i 9 tys. na minutę
PUT /sale/offer-publication-commands/{commandId}
Limit 
250 tys. ofert na godzinę i 9 tys. na minutę

Zgłoś błąd lub zasugeruj zmianę

Czy ten artykuł był dla Ciebie przydatny?