Allegro REST API

gdzie?

Polska | polski | PLN
  • Pierwsze kroki
  • Informacje podstawowe
  • Główne procesy
  • Uwierzytelnianie i autoryzacja
  • Wzorzec Command
  • Glosariusz
  • Lista metod
  • Wystawianie oferty produktu
  • 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
  • API Status
  1. Allegro REST API
  2. Wystawianie ogłoszeń
W skrócie
Publikacja ogłoszenia
Lista zasobów

Jak wystawić ogłoszenie

jak wystawic ogoszenie

W skrócie

Przygotuj szkic

Szkic przygotujesz za pomocą POST /sale/product-offers. W polu sellingMode.format przekaż wartość “ADVERTISEMENT” - dzięki temu od razu utworzymy szkic o statusie “INACTIVE”. Możesz także od razu uzupełnić wszystkie niezbędne dane lub zrobić to później za pomocą PATCH /sale/product-offers/{offerId}.

Ustaw pakiet i opcje dodatkowe

Do draftu ogłoszenia, który zawiera komplet danych, przypiszesz pakiet i opcje dodatkowe. Najpierw pobierz przez GET /sale/classifieds-packages?category.id={categoryId} dostępne pakiety i opcje dodatkowe dla ogłoszenia, następnie do uzupełnionego szkicu ogłoszenia przypisz za pomocą PUT /sale/offer-classifieds-packages/{offerId} wybrane opcje.

Opublikuj ogłoszenie

Aby to zrobić, skorzystaj z PATCH /sale/product-offers/{offerId} i przekaż w polu publication.status wartość “ACTIVE”. Publikacja jest komendą asynchroniczną. Aby sprawdzić status publikacji, skorzystaj z adresu otrzymanego w nagłówku Location - jest to odnośnik do zasobu, dzięki któremu otrzymasz aktualny stan wykonania żądania. Gdy wystawisz ogłoszenie w serwisie, wówczas jego status zmienimy na ACTIVE. Więcej o asynchronicznym API przeczytasz w poradniku "Zarządzanie ofertami".

Jak przygotować szkic

Za pomocą POST /sale/product-offers, przy użyciu jednego żądania utworzysz szkic oferty. W odpowiedzi otrzymasz numer oferty, który możesz użyć do dalszej edycji szkicu za pomocą PATCH /sale/product-offers/{offerId}.

Utwórz szkic ogłoszenia z istniejącym produktem

Katalog Produktów przeszukasz za pomocą GET /sale/products. Więcej o zasobie przeczytasz w poradniku.

Możesz utworzyć szkic ogłoszenia, powiązanego z produktem, który istnieje w naszym Katalogu Produktów. W strukturze żądania przekaż identyfikator produktu, cenę, odpowiedni format sprzedaży (ADVERTISEMENT) oraz dane kontaktowe (piszemy o nich w dalszej części poradnika).

Kliknij, aby zobaczyć request
toggle visibility
  curl -X POST
  'https://api.allegro.pl/sale/product-offers'
  -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": "07e476f2-5e12-4e2c-ba42-ff295c91f8ee"
            }
        }
    ],
    "sellingMode": {
        "format": "ADVERTISEMENT",
        "price": {
            "amount": "350000",
            "currency": "PLN"
        }
    },
    "contact": {
        "name": "kontakt"
    }
}'

Jeżeli w odpowiedzi otrzymasz informację, aby uzupełnić brakujące parametry obowiązkowe, przekaż je w obiekcie productSet.product. ID parametru wraz z wartościami sprawdzisz za pomocą GET /sale/categories/{categoryID}/parameters. Konieczne może być dodanie co najmniej jednego zdjęcia oraz opcjonalnie - opisu.

Kliknij, aby zobaczyć request
toggle visibility
  curl -X POST
  'https://api.allegro.pl/sale/product-offers'
  -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": "07e476f2-5e12-4e2c-ba42-ff295c91f8ee",
                "parameters": [
                    {
                        "id": "1",
                        "values": [
                            "2020"
                        ]
                    },
                    {
                        "id": "4",
                        "values": [
                            "0"
                        ]
                    },
                    {
                        "id": "199",
                        "valuesIds": [
                            "199_1"
                        ]
                    },
                    {
                        "id": "211066",
                        "valuesIds": [
                            "211066_246574"
                        ]
                    },
                    {
                        "id": "3",
                        "valuesIds": [
                            "3_15"
                        ]
                    }
                ]
            }
        }
    ],
    "sellingMode": {
        "format": "ADVERTISEMENT",
        "price": {
            "amount": "350000",
            "currency": "PLN"
        }
    },
    "images": [
        "https://...adres-pierwszego-obrazka.jpeg"
    ],
    "contact": {
        "name": "kontakt"
    }
}'

Utwórz szkic ogłoszenia bez wskazywania istniejącego produktu

Możesz także utworzyć szkic ogłoszenia bez wskazywania istniejącego produktu. W strukturze żądania w obiekcie productSet.product przekaż komplet danych, które opisują sprzedawaną rzecz. Request uzupełnij o nazwę, wybraną kategorię (więcej o kategoriach), cenę, odpowiedni format sprzedaży (ADVERTISEMENT) oraz dane kontaktowe (piszemy o nich w dalszej części poradnika). Konieczne będzie również dodanie co najmniej jednego zdjęcia oraz opcjonalnie - opisu.

Kliknij, aby zobaczyć request
toggle visibility
  curl -X POST
  'https://api.allegro.pl/sale/product-offers'
  -H 'Authorization: Bearer {token}'
  -H 'Accept: application/vnd.allegro.public.v1+json'
  -H 'Content-Type: application/vnd.allegro.public.v1+json'
  -d '{
    "productSet": [
        {
            "product": {
                "name": "BMX X5",
                "category": {
                    "id": "260574"
                },
                "parameters": [
                    {
                        "id": "14",
                        "name": "Moc",
                        "values": [
                            "530"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "1",
                        "name": "Rok produkcji",
                        "values": [
                            "2020"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "4",
                        "name": "Przebieg",
                        "values": [
                            "0"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "199",
                        "name": "Skrzynia biegów",
                        "values": [
                            "Automatyczna"
                        ],
                        "valuesIds": [
                            "199_1"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "211066",
                        "name": "Klimatyzacja",
                        "values": [
                            "automatyczna czterostrefowa"
                        ],
                        "valuesIds": [
                            "211066_246574"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "3",
                        "name": "Kolor",
                        "values": [
                            "Biały"
                        ],
                        "valuesIds": [
                            "3_15"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "5",
                        "name": "Pojemność silnika",
                        "values": [
                            "4395"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "16",
                        "name": "Rodzaj paliwa",
                        "values": [
                            "Benzyna"
                        ],
                        "valuesIds": [
                            "16_1"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "13",
                        "name": "Nadwozie",
                        "values": [
                            "SUV"
                        ],
                        "valuesIds": [
                            "13_10"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "128791",
                        "name": "Napęd",
                        "values": [
                            "4x4"
                        ],
                        "valuesIds": [
                            "128791_246722"
                        ],
                        "rangeValue": null
                    }
                ]
            },
            "quantity": {
                "value": 1
            }
        }
    ],
    "sellingMode": {
        "format": "ADVERTISEMENT",
        "price": {
            "amount": "350000",
            "currency": "PLN"
        }
    },
    "images": [
        "https://...adres-pierwszego-obrazka.jpeg"
    ],
    "contact": {
        "name": "kontakt"
    }
}'

Domyśle wartości w żądaniu

Cześci z pól modelu oferty nie musisz przesyłać jawnie - uzupełnimy je wtedy wartościami domyślnymi. Wartości domyślne oraz ich ewentualne źródła przedstawia poniższa tabela. Dalsza część poradnika przedstawia, jak konstruować żądanie, gdy chcemy przesłać inne dane niż wartości domyślne.

Domyślne wartości, którymi uzupełnimy dane w ofercie

Atrybut Wartość
Język oferty (language)
Wartość
Ustawimy na podstawie domyślnego języka serwisu bazowego użytkownika
Opcje faktury (payment.invoice)
Wartość
Faktura VAT
Wysyłka z (location)
Wartość
Dane z ustawień konta Allegro (Twój adres)
Parametr “stan”
Wartość
Nowy

Jak uzupełnić dane oraz zmienić wartości

Struktura ciała żądania dzieli się na dwie części:

  • produktową - w której przekazujesz:
    • id produktu, jeżeli chcesz powiązać ofertę z produktem, który znajduje się w naszym Katalogu.
    • komplet informacji o produkcie, jeżeli nie chcesz wiązać ogłoszenia z produktem. Są to dane, które identyfikują określony produkt
  • ofertową - dane, które określają warunki w konkretnej ofercie, np. cena, liczba sztuk, lokalizacja, informacje o fakturze, etc. Wartości związane z ofertą możesz nadpisać, a także dodać nowe.

Możesz uzupełnić wszystkie niezbędne do wystawienia ogłoszenia dane już na etapie utworzenia szkicu za pomocą POST /sale/product-offers, ale możesz to także zrobić później przy użyciu PATCH /sale/product-offers/{offerId}.

Kategoria

Za pomocą GET /sale/categories pobierzesz listę kategorii, które należą do podanej kategorii nadrzędnej (lub listę kategorii głównych). Pamiętaj, że ogłoszenie wystawisz tylko w kategorii najniższego rzędu, która jest oznaczona "leaf": true.

Przykładowy request:

  curl -X GET \
  'https://api.allegro.pl/sale/categories?parent.id=260574 \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Authorization: Bearer {token}' 
Kliknij, aby zobaczyć response
toggle visibility
{
    "categories": [
        {
            "id": "57968",
            "name": "E53 (1999-2006)",
            "parent": {
                "id": "18089"
            },
            "leaf": true,                             -- informacja, czy jest to kategoria
                                                      najniższego rzędu w której możesz
                                                      wystawić ogłoszenie

            "options": {
                "variantsByColorPatternAllowed": true,
                "advertisement": true,               -- informacja, czy w danej kategorii
                                                        można wystawić ogłoszenie

                "advertisementPriceOptional": false, -- informacja, czy w danej kategorii
                                                        opcjonalnie można wystawić
   ogłoszenie bez ceny

                "offersWithProductPublicationEnabled": true,
                "productCreationEnabled": false,
                "customParametersEnabled": true,
                "sellerCanRequirePurchaseComments": false
            }
        }
    ]

Parametry

Za pomocą GET /sale/categories/{categoryId}/parameters pobierzesz parametry dostępne w danej kategorii. W odpowiedzi zwrócimy parametry, które możesz ustawić dla kategorii wskazanej jako categoryId.

Przykładowy request:

  curl -X GET \
  'https://api.allegro.pl/sale/categories?parent.id=260574 \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Authorization: Bearer {token}' 
Kliknij, aby zobaczyć response
toggle visibility
 {
    "parameters": [                         -- lista dostępnych parametrów dla
                                            wskazanej kategorii
    {
        "id": "11323",                      -- unikalny identyfikator danego parametru
        "name": "Stan",                     -- nazwa parametru
        "type": “dictionary”,               -- typ parametru, obecnie mamy dostępne
    wartości:
                                            dictionary (słownik wyboru, może być
                                            jednokrotnego,bądź wielokrotnego wyboru, w
                                            zależności od wartości w polu 
                                            multipleChoices), integer 
                                            (liczba całkowita),float (liczby 
                                            zmiennoprzecinkowe), string (możesz dodać
                                            jedną lub wiele wartości)
        "required":true,                    -- informacja, czy dany parametr jest
    obowiązkowy,
        "unit": null,
        "requiredForProduct": true          -- czy musisz przekazać wartość dla tego
                                            parametru , gdy tworzysz nowy produkt,
        "requiredIf": null,                 -- informacje o zależnej wymagalności
                                            parametru
        "displayedIf": null,                -- informacje o zależnym wyświetlaniu
                                            parametru
        "options": {
            "variantsAllowed": false,
            "variantsEqual": false
            "ambiguousValueId": "216917_41" -- id wartości niejednoznacznej, np.
                                            "inna", "pozostałe", etc.
            "dependsOnParameterId": null    -- id parametru, od którego zależne są
                                            dostępne wartości tego parametru
            "describesProduct": true,       -- czy parametr opisuje produkt
            "customValuesEnabled": false    -- czy w danym parametrze możesz dodać własną
                                            wartość dla parametru z wartością
                                            niejednoznaczną
        },
        "dictionary": [
            {
                "id": "11323_1",
                "value": "Nowy",
                "dependsOnValueIds": []
            },
            {
                "id": "11323_2",
                "value": "Używany",
                "dependsOnValueIds": []
            }
        ],
        "restrictions": {
        "multipleChoices": false            -- parametr z możliwym wyborem jednej lub
                                            wielu wartości, dostępne są dwie wartości:
                                            true (tak) i false (nie)
        }
    },
    {
        "id": "211966",
        "name": "Zakres regulacji wysokości koszenia (cm)",
        "type": "float",
        "required": false,
        "unit": null,
        "requiredForProduct": true,
        "restrictions": {
            "min": 0,
            "max": 1000,
            "range": true,                  -- parametr zakresowy, należy podać
                                            minimalną i maksymalną wartość.
            "precision": 2
        }
    },
    {
        "id": "17448",
        "name": "waga (z opakowaniem)",
        "type": "float",
        "required":false,
        "restrictions": {
            "min": 5,
            "max": 10,
            "range": true,                  -- parametr zakresowy. Sekcje range
                                            min i max oznaczają minalną i maksymalna
                                            wartość danego parametru.
            "precision": 3                  -- określa z jaką dokładnością możemy podać
                                            wartość danego parametru. W tym przypadku
                                            możemy podać wartość z dokładnością do
                                            3 miejsc po przecinku
        }
    },
    {
        "id": "216917",
        "name": "Załączone wyposażenie",
        "type": "string",
        "required": false,
        "unit": null,
        "requiredForProduct": false,
        "options": {
            "variantsAllowed": false,
            "variantsEqual": false
            "ambiguousValueId": "216917_41" -- id wartości niejednoznacznej, np.
                                            "inna", "pozostałe", etc.
            "dependsOnParameterId": null,
            "describesProduct": true,
            "customValuesEnabled": false
        },
        "restrictions": {
            "minLength": 1,
            "maxLength": 40,
            "allowedNumberOfValues": 10     -- informacja o tym, ile wartości możesz
                                            podać w danym parametrze
        }
    }
    ]
  }

Parametry pobieraj, sprawdzaj i aktualizuj, w szczególności te słownikowe, bo mogą zmieniać się ich wartości.

Rozróżniamy dwa rodzaje parametrów:

  • produktowe - takie, które identyfikują przedmiot,
  • ofertowe - związane z indywidualną ofertą, np. stan, data ważności, etc., a nie z cechą konkretnego produktu.

Informację o tym, które parametry są ofertowe, a które produktowe, znajdziesz w polu options.describesProduct:

  • true - parametr produktowy, użyj go w tablicy productSet[].product.parameters[],
  • false - parametr ofertowy, użyj go w tablicy parameters[].
Kliknij, aby zobaczyć request
toggle visibility
curl -X POST
'https://api.allegro.pl/sale/product-offers'
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.public.v1+json'
-H 'Content-Type: application/vnd.allegro.public.v1+json'
-d '{
    "productSet": [
        {
            "product": {
                "name": "BMX X5",
                "category": {
                    "id": "260574"
                },
                "parameters": [
                    {
                        "id": "14",
                        "name": "Moc",
                        "values": [
                            "530"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "1",
                        "name": "Rok produkcji",
                        "values": [
                            "2020"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "4",
                        "name": "Przebieg",
                        "values": [
                            "0"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "199",
                        "name": "Skrzynia biegów",
                        "values": [
                            "Automatyczna"
                        ],
                        "valuesIds": [
                            "199_1"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "211066",
                        "name": "Klimatyzacja",
                        "values": [
                            "automatyczna czterostrefowa"
                        ],
                        "valuesIds": [
                            "211066_246574"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "3",
                        "name": "Kolor",
                        "values": [
                            "Biały"
                        ],
                        "valuesIds": [
                            "3_15"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "5",
                        "name": "Pojemność silnika",
                        "values": [
                            "4395"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "16",
                        "name": "Rodzaj paliwa",
                        "values": [
                            "Benzyna"
                        ],
                        "valuesIds": [
                            "16_1"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "13",
                        "name": "Nadwozie",
                        "values": [
                            "SUV"
                        ],
                        "valuesIds": [
                            "13_10"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "128791",
                        "name": "Napęd",
                        "values": [
                            "4x4"
                        ],
                        "valuesIds": [
                            "128791_246722"
                        ],
                        "rangeValue": null
                    }
                ]
            },
            "quantity": {
                "value": 1
            }
        }
    ],
      "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "sellingMode": {
        "format": "ADVERTISEMENT",
        "price": {
            "amount": "350000",
            "currency": "PLN"
        }
    },
    "images": [
        "https://...adres-pierwszego-obrazka.jpeg"
    ],
    "contact": {
        "name": "kontakt"
    }
}'

Poniżej znajdziesz przykłady prawidłowo uzupełnionych struktur przykładowych parametrów, w zależności od ich typu:

  • dla parametrów słownikowych (wybór jednego lub wielu wartości z wielu):
  {
      "id": "209878",
      "valuesIds": [
      "209878_2",
      "209878_1"
      ],
      "values": [],
      "rangeValue": null
  }
  • dla parametrów zakresowych:
  {
      "id": "212570",
      "valuesIds": [],
      "values": [],
      "rangeValue": {
          "from": "80",
          "to": "100"
       }
  }
  • dla parametrów, w których samodzielnie uzupełniasz ich wartość:
  {
      "id": "216325",
      "valuesIds": [],
      "values": [
          "zielony",
          "żółty",
          "czerwony"
      ],
      "rangeValue": null
  }

 

Jeżeli chcesz zdefiniować np. stan produktu w ofercie jako używany, rozszerz swój request o poniższą strukturę:

  ...
    "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ]
  ...    

 

Zamiast identyfikatorów możesz skorzystać z nazw parametrów i ich wartości:

  ...
    "parameters": [
            "name": "Stan",
         {
           "values": [
                "Używany"
            ]
        }
    ]
  ...    

 

Nazwa oferty

Do oferty automatycznie przypiszemy nazwę powiązaną z nazwą produktu. Jeśli chcesz nadać swoją własną, rozszerz request o pole name:

  ...
  "name": "Moja nazwa oferty"
  ...  

 

Dla nazwy dopuszczamy maksymalnie 50 znaków. Listę liter, cyfr i znaków specjalnych jakie pozwalamy wprowadzić w nazwie oferty znajdziecie poniżej.

Litery: 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','w','v','x','y','z',
'ä','ö','ü','ø','ò','ß','0','á','č','ě','í','ř','š','ů','ú','ý','ž','œ','æ','à','â','ç','é','è','ê','ë','î',
'ï','ô','û','ù','ü','ÿ','€','×','ą','ć','ę','ł','ń','ó','ś','ź','ż','µ','⌀',

Cyfry: '0','1','2','3','4','5','6','7','8','9',

Znaki specjalne:'!','@','[',']','#','$','%','^','&','*','{','}','(',')','.',',','/','\\','|','?',' ',';','~','²','³',
'`','\'','’','´','\"','”','"','„','“','″','<','>','_','\t',':','-','=','+','0','…','–','°','°'

 

Niektóre litery jak i znaki specjalne są zamieniane na encje, dlatego zajmują więcej niż jeden znak. Przykładowo znak & jest encjonowany jako & dlatego zajmuje 5 miejsc w nazwie.

Kliknij, aby zobaczyć request
toggle visibility
curl -X POST
'https://api.allegro.pl/sale/product-offers'
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.public.v1+json'
-H 'Content-Type: application/vnd.allegro.public.v1+json'
-d '{
    "productSet": [
        {
            "product": {
                "name": "Mój własny tytuł",
                "id": "07e476f2-5e12-4e2c-ba42-ff295c91f8ee"
            }
        }
    ],
      "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "sellingMode": {
        "format": "ADVERTISEMENT",
        "price": {
            "amount": "350000",
            "currency": "PLN"
        }
    },
    "contact": {
        "name": "kontakt"
    }
}'

Własne zdjęcia i opis oferty

Jak dodać własne zdjęcia do oferty

Do oferty automatycznie dołączymy zdjęcia produktu. Możesz także dodać swoje własne, które przedstawiają konkretny egzemplarz produktu. Aby załączyć do oferty własne zdjęcia, rozszerz swój request o sekcję images:

  ...
  "images": [
    "https://...zewnetrzny-adres-pierwszego-obrazka.jpeg",
    "https://...zewnetrzny-adres-drugiego-obrazka.jpeg"
  ]
  ...    

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

  {
    "productSet": [
         {
                        "product": {
                            "id": "990de42f-8a68-4f0c-aedb-060141ffd8e3",
                            "images": []
                        }
        }],
    ...
    "images": [
            "https://...zewnetrzny-adres-pierwszego-obrazka.jpeg",
            "https://...zewnetrzny-adres-drugiego-obrazka.jpeg"
    ]
    ...
  }   

Jeśli nie przekażesz swojego własnego opisu dla oferty, a produkt:

  • wskazany przez product.id lub
  • rozpoznany przez nas na podstawie przekazanych danych (gdy nie podasz product.id)

w naszym Katalogu go posiada i zawarte są w nim zdjęcia, to wraz z opisem do oferty przypiszemy zdjęcia produktu - nawet jeśli w sekcji product.images przekażesz pustą tablicę. Jeśli zatem chcesz, aby w ofercie były wyłącznie twoje zdjęcia, dodaj swój własny opis.

Zdjęcia mogą pochodzić z zewnętrznych serwerów, nie musisz ich wcześniej wysyłać na serwer Allegro. Każda oferta musi mieć minimum 1 zdjęcie. Liczba zdjęć jest ograniczona w zależności od typu konta:

  • 16 dla kont firmowych,
  • 10 dla kont zwykłych.
Kliknij, aby zobaczyć request
toggle visibility
curl -X POST
'https://api.allegro.pl/sale/product-offers'
-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": "07e476f2-5e12-4e2c-ba42-ff295c91f8ee"
    }}],
    "name": "Mój własny tytuł",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "sellingMode": {
        "format": "ADVERTISEMENT",
        "price": {
            "amount": "350000",
            "currency": "PLN"
        }
    },
    "location": {
        "countryCode": "PL",
        "province": "LUBUSKIE",
        "city": "Gorzów Wielkopolski",
        "postCode": "66-400"
    },
    "payments": {
        "invoice": "NO_INVOICE"
    },
    "publication": {
        "status": "INACTIVE"
  },
  "images": [
    "https://...zewnetrzny-adres-pierwszego-obrazka.jpeg",
    "https://...zewnetrzny-adres-drugiego-obrazka.jpeg"
  ]
}'

Ważne!

  • Zdjęcia są cache’owane przez 7 dni - gdy wyślesz kolejne żądanie z tym samym, zewnętrznym adresem URL, zdjęcia możemy pobrać z wewnętrznego cache Allegro, zamiast bezpośrednio z zewnętrznego serwera.

  • Jeżeli chcesz, aby czas cache’owania był krótszy, serwer powinien wysłać nagłówek Cache-Control z odpowiednią wartością parametru max-age.

  • Jeżeli nie chcesz, abyśmy cache’owali zdjęcia, serwer powinien wysłać nagłówek Cache-Control z parametrem Private, No-Cache lub No-Store.

Jak dodać opis oferty

Do oferty możesz dodać swój własny opis. Przy jego braku do oferty automatycznie przypiszemy opis z produktu, który wskazałeś w żądaniu.

Aby dodać opis dodatkowy, rozszerz request o sekcję description:

  ...
  "description": {
        "sections": [
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p>Przykładowy opis oferty</p>"
                    }
                ]
            }
        ]
    }
  ...    

Szczegółowe informacje o zasadach dla ofert znajdziesz na stronie dla sprzedających.

Najważniejsze informacje

  • maksymalna wielkość całego opisu jaki możesz przesłać to 40000 bajtów
  • możesz korzystać tylko z określonych znaczników HTML:
    • h1 - tytuł
    • h2 - podtytuł
    • p - akapit
    • ul - wypunktowanie
    • ol - wylistowanie
    • li - element listy
    • b - pogrubienie.
  • w opisie możesz wykorzystać tylko zdjęcia, które przesyłasz w tablicy images.

Sugerujemy, by pierwszy opis przygotować przez formularz wystawiania. Skorzystaj z wszystkich rodzajów sekcji i opcji formatowania i pobierz ofertę za pomocą GET /sale/offers/{offerId}. W ten sposób najłatwiej dowiesz się jak poprawnie przygotować opis.

Jak wygląda struktura opisu

Sekcje (sections)

Opis oferty składa się z przynajmniej jednej sekcji, które umieszczasz w tablicy sections. Opis może mieć max. 100 sekcji.

    {
        "sections": [
            { section1 },
            { section2 },
             ...
            ]
    }

Elementy opisu (item)

Sekcje grupują elementy opisu (item) w widok kolumnowy:

  • jedna kolumna, która zajmuje całą szerokość ekranu

      {
           "items" : [
           { item1 }
           ]
      }
  • dwie kolumny, z których każda zajmuje połowę ekranu

      {
           "items" : [
           { item1 }
           { item2 }
           ]
      }
  • nie możesz utworzyć sekcji z większą liczbą kolumn. struktura

Typy treści w opisie

Tekst

    {
      "type": "TEXT",
      "content": "<p>opis tekstowy</p>"
    }

Możesz tu użyć określonych znaczników HTML:

  • h1 - tytuł
  • h2 - podtytuł
  • p - akapit
  • ul - wypunktowanie
  • ol - wylistowanie
  • li - element listy
  • b - pogrubienie.

Najważniejsze zasady

  1. Treści musisz umieścić w znacznikach HTML. W znacznikach HTML używaj tylko małych liter.

    Poprawnie

    {
      "type": "TEXT",
      "content": "<p>opis tekstowy</p>"
    }

    Niepoprawnie

    {
      "type": "TEXT",
      "content": "opis tekstowy"
    }
  2. Nie możesz dodatkowo formatować tagów h1 i h2.

    Poprawnie

    {
       "type": "TEXT",
       "content": "<h1>Tytuł sekcji</h1>"
    }

    Niepoprawnie

    {
      "type": "TEXT",
      "content": "<h1><b>Tytuł sekcji<b></h1>"
    }
  3. Możesz użyć pogrubienia < b > < /b > w znacznikach:

    • < p > < /p > - akapit
    • < ul > < /ul > - lista wypunktowana
    • < ol > < /ol > - lista numerowana
  4. Możesz użyć znacznika akapitu < p > < /p > w znacznikach:

    • < ul > < /ul > - lista wypunktowana
    • < ol > < /ol > - lista numerowana

Przykład, jak poprawnie łączyć znaczniki HTML:

    <h1>Lorem ipsum dolor sit amet, consectetur adipiscing elit</h1>
    <p><b>Aliquam vitae nisi ac lectus gravida rhoncus</b>. Vivamus egestas, orci quis
    fermentum sollicitudin, leo urna pellentesque quam, ut mattis risus nisl sed dolor.</p>
    <ul>
        <li><b>Nulla eu justo ut velit pellentesque porta.</b></li>
        <li>Pellentesque eget arcu id ligula consequat fermentum at nec velit. Maecenas vitae nunc
        non ante aliquet facilisis nec id leo.</li>
        <li>Sed vitae metus vel lorem iaculis rhoncus.</li> <li>Nullam nec felis felis.</li>
    </ul>
    <ol>
        <li><p><b>In eget vulputate purus</b></p></li>
        <li><p>Integer a pharetra odio.</p></li>
        <li><p>Vestibulum ut vestibulum diam.</p></li>
        <li><p>Phasellus quis tempor ipsum, at tincidunt nibh.</p></li>
        <li><p>Nulla sollicitudin, libero sit amet fermentum iaculis.</p></li>
    </ol>

Przykładowa struktura opisu

        {
            "sections": [{
            "items": [{
                "type": "TEXT",
                "content": "<p>tekstowy opis przedmiotu</p>"
            }]
        }, {
            "items": [{
                "type": "IMAGE",
                "url": "https://d.allegroimg.com/original/0313bd/338d11a74b059fea784beee0084d"
            }]
        }, {
            "items": [{
                "type": "TEXT",
                "content": "<p>tekstowy opis przedmiotu</p>"
            }, {
                "type": "IMAGE",
                "url": "https://f.allegroimg.com/original/037738/bc72c2f24784b50774d7d078c7ef"
            }]
        }, {
            "items": [{
                "type": "IMAGE",
                "url": "https://0.allegroimg.com/original/032ac4/9c10035846bb970cf208f6982fc0"
            }, {
                "type": "IMAGE",
                "url": "https://d.allegroimg.com/original/0313bd/338d11a74b059fea784beee0084d"
            }]
        }]
    }
Kliknij, aby zobaczyć request
toggle visibility
curl -X POST
'https://api.allegro.pl/sale/product-offers'
-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": "07e476f2-5e12-4e2c-ba42-ff295c91f8ee"
    }}],
    "name": "Mój własny tytuł",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "sellingMode": {
        "format": "ADVERTISEMENT",
        "price": {
            "amount": "350000",
            "currency": "PLN"
        }
    },
    "location": {
        "countryCode": "PL",
        "province": "LUBUSKIE",
        "city": "Gorzów Wielkopolski",
        "postCode": "66-400"
    },
    "payments": {
        "invoice": "NO_INVOICE"
    },
    "publication": {
        "status": "INACTIVE"
    },
    "images": [
        "https://...zewnetrzny-adres-pierwszego-obrazka.jpeg",
        "https://...zewnetrzny-adres-drugiego-obrazka.jpeg"
    ],
    "description": {
        "sections": [{
            "items": [{
                "type": "TEXT",
                "content": "<p>Przykładowy opis oferty</p>"
            }]
        }]
}'

Dane kontaktowe

Utwórz kontakt

Aby utworzyć nowy kontakt, skorzystaj z POST /sale/offer-contacts.

Nie możesz mieć więcej niż 50 kontaktów, w jednym kontakcie możesz podać maksymalnie:

  • 1 adres e-mail,
  • 2 numery telefonu.

Przykładowy request:

  curl -X POST \
  'https://api.allegro.pl/sale/offer-contacts' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -H 'Accept: application/vnd.allegro.public.v1+json’ \
  -H 'Authorization: Bearer {token}' \
  -d '{
  "name": "kontakt",      -- nazwa kontaktu; wymagane, maksymalna liczba znaków - 250
  "emails": [                   -- adresy e-mail; możesz podać 1
    {
      "address": "test@test.pl"
    }
  ],
  "phones": [                   -- nr telefonów; możesz podać maksymalnie 2
    {
      "number": "555-555-666"
    },
    {
      "number": "555555667"
    }
  ]
 }’

 

Przykładowy response:

  {
    "id": "0c046252-9559-4ecb-8ea3-879f60e46947",   
    "name": "contact",                        
    "emails": [
        {
            "address": "test@test.pl"
        }
    ],
  "phones": [                   
    {
      "number": "+48 55 555 56 66"
    },    
    {
      "number": "+48 55 555 57 77"
    }
  ]
 }

 

Pobierz istniejące kontakty

Aby pobrać listę wszystkich kontaktów utworzonych na danym koncie, skorzystaj z GET /sale/offer-contact.

Przykładowy request:

  curl -X GET \
  'https://api.allegro.pl/sale/offer-contacts' \
  -H 'Accept: application/vnd.allegro.public.v1+json’ \
  -H 'Authorization: Bearer {token}’
Kliknij, aby zobaczyć response
toggle visibility
{
    "contacts": [
        {
            "id": "0c046252-9559-4ecb-8ea3-879f60e46947",  
            "name": "kontakt",
            "emails": [
                {
                    "address": "test@test.pl"
                }
            ],
            "phones": [
                {
                    "number": "+48 788 788 788"
                },
                {
                    "number": "+48 75 575 57 55"
                }
            ]
        },
        {
            "id": "af1ccfd7-2753-4ed3-bdda-c78eb14442ab",
            "name": "kontakt 2",
            "emails": [
                {
                    "address": "test@test.pl"
                }
            ],
            "phones": [
                {
                    "number": "+48 55 555 57 77"
                }
            ]
        },
        {
            "id": "27869b31-048e-43a0-bdc0-52b922f278a5",
            "name": "Ciężarówki",
            "emails": [
                {
                    "address": "test@test.pl"
                }
            ],
            "phones": []
        }
    ]
   }

Dzięki GET /sale/offer-contacts/{contactId} pobierzesz szczegóły podanego w URL kontaktu.

Przykładowy request:

  curl -X GET \
  'https://api.allegro.pl/sale/offer-contacts/0c046252-9559-4ecb-8ea3-879f60e46947' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Authorization: Bearer {token}'

 

Przykładowy response:

  {
    "id": "0c046252-9559-4ecb-8ea3-879f60e46947",       
    "name": "contact 2",                            
    "emails": [
        {
            "address": "test@test.pl"
        }
    ],
    "phones": [
        {
            "number": "+48 55 555 57 77"
        }
    ]
  }

 

Edytuj kontakt

Aby zaktualizować dane kontaktowe skorzystaj z PUT /sale/offer-contacts/{contactId}.

Przykładowy request:

  curl -X PUT
  'https://api.allegro.pl//sale/offer-contacts/12f43efd-2369-480d-9f945178eeb9c663' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Authorization: Bearer {token}' \
  -d '{
   "name": "kontakt",
   "emails": [
     {
       "address": "test@test.pl"
     }
   ],
   "phones": [
     {
       "number": "555-555-777"
     }
   ]
 }'

 

Przykładowy response:

  {
    "id": "0c046252-9559-4ecb-8ea3-879f60e46947",
    "name": "kontakt",
    "emails": [
        {
            "address": "test@test.pl"
        }
    ],
    "phones": [
        {
            "number": "+48 55 555 57 77"
        }
    ]
  }

 

Podłącz kontakt do ogłoszenia

Uwzględnij kontakt w ogłoszeniu - rozszerz swój request o pole contact, w którym podasz wcześniej otrzymany identyfikator.

    …
    "contact": [
            {
                "id": "07ee5e36-afc7-41eb-af49-3df5354ef858"
            }
        ]
   …

 

Załączniki

Do ofert możesz dodawać załączniki w formacie PDF, JPEG i PNG. Wyświetlimy je pod opisem oferty w sekcji Dodatkowe informacje. Załączników może być maksymalnie 9 - po jednym załączniku z listy:

  • Poradnik (MANUAL)
  • Regulamin promocji (SPECIAL_OFFER_RULES)
  • Regulamin konkursu (COMPETITION_RULES)
  • Fragment książki (BOOK_EXCERPT)
  • Instrukcję obsługi (USER_MANUAL)
  • Instrukcję montażu (INSTALLATION_INSTRUCTIONS)
  • Instrukcję gry (GAME_INSTRUCTIONS)
  • Etykietę energetyczną (ENERGY_LABEL)
  • Kartę produktu (PRODUCT_INFORMATION_SHEET)

Jeśli chcesz dodać załącznik do oferty:

  1. Stwórz obiekt załącznika, dzięki czemu otrzymasz identyfikator załącznika oraz adres URL, na który wyślesz załącznik,
  2. Na ten URL prześlij plik, który chcesz dodać do oferty,
  3. Przesłany załącznik podłącz do oferty.
Stwórz obiekt załącznika

Aby dodać załącznik, najpierw musisz stworzyć na swoim koncie obiekt załącznika. Zrobisz to za pomocą POST /sale/offer-attachments. Gdy utworzysz obiekt, będziesz miał:

  • identyfikator załącznika,
  • adres URL, za pomocą którego prześlesz plik na nasz serwer.

Przykładowy request:

  curl -X POST \
  'https://api.allegro.pl/sale/offer-attachments' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -H 'Authorization: Bearer {token}'
  -d '{
      "type": "SPECIAL_OFFER_RULES",                      -- wymagany, rodzaj załącznika,
                                                          dostępne wartości MANUAL,
                                                          SPECIAL_OFFER_RULES,
                                                          COMPETITION_RULES,
                                                          BOOK_EXCERPT, USER_MANUAL,
                                                          INSTALLATION_INSTRUCTIONS,
                                                          GAME_INSTRUCTIONS,
                                                          ENERGY_LABEL,
                                                          PRODUCT_INFORMATION_SHEET
      "file": {
        "name": "abcde.pdf"                               -- wymagany, nazwa pliku, który dodasz,
    }
}'

Adres URL, za pomocą którego prześlesz plik na nasz serwer, znajdziesz w nagłówku response. Adres ten jest jednorazowy i unikalny. Jego format może zmieniać się w czasie, dlatego za każdym razem korzystaj z adresu z nagłówka. Nie składaj samodzielnie adresu z dostępnych elementów.

Przykładowy response

201 - created - obiekt załącznika utworzony prawidłowo

Nagłówek response'a:

    Location: http://upload.allegro.pl/sale/offer-attachments/e9d1bf7c-804e-4faf-9e24-b2d3aa3eda05

Body response'a:

  {
    "id": "e9d1bf7c-804e-4faf-9e24-b2d3aa3eda05",              -- identyfikator draftu załącznika,
    "type": "SPECIAL_OFFER_RULES",                             -- rodzaj załącznika,
    "file": {
        "name": "abcde.pdf"                                    -- nazwa pliku, który dodasz,
    }
  }
Prześlij plik

Teraz możesz przesłać załącznik na nasz serwer. Do tego celu użyj adresu, który otrzymałeś w nagłówku odpowiedzi (w polu Location) na poprzednie wywołanie.

Przykładowy request:

  curl -X PUT \
  'http://upload.allegro.pl/sale/offer-attachments/{attachmentId}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/pdf' \
  -H 'Authorization: Bearer {token}'
  --data-binary "@abcde.pdf"                               -- wymagany, zawartość pliku z
                                                           załącznikiem w postaci binarnej

Przykładowy response:

  {
    "id": "07ee5e36-afc7-41eb-af49-3df5354ef858",          -- identyfikator draftu załącznika,
    "type": "SPECIAL_OFFER_RULES",                         -- rodzaj załącznika,
    "file":
        "name": "abcde.pdf",                               -- nazwa pliku, który dodasz,
        "url": {adres_pliku}                               -- adres, pod którym jest dostępny
                                                           załącznik.
    }
  }
Podłącz załącznik do oferty

Uwzględnij załącznik w ofercie, rozszerz swój request o pole attachments, w którym podaj wcześniej otrzymany identyfikator.

    …
    "attachments": [
            {
                "id": "07ee5e36-afc7-41eb-af49-3df5354ef858"
            }
        ]
   …

 

Pakiet i opcje dodatkowe

Aby wystawić ogłoszenie, musisz jeszcze wybrać z jakiego pakietu ogłoszeniowego chcesz skorzystać i czy chcesz dokupić dodatkowe opcje promowania.

Sprawdź dostępne pakiety

Za pomocą GET /sale/classifieds-packages?category.id={categoryId} pobierz identyfikatory dostępnych pakietów i opcji dodatkowych w danej kategorii.

Przykładowy request:

  curl -X GET \
  'https://api.allegro.pl/sale/classifieds-packages?category.id=260574' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json'

 

Przykładowy response:

  {
    "packages": [{
            "id": "6174be19-56f9-484b-b72c-43b0b00785e8",   -- identyfikator pakietu
            "type": "BASE"                                  -- typ pakietu
            "name": "Podstawowy",                           -- nazwa pakietu
            "publication": {
                "duration": "PT960H"                        -- czas trwania ogłoszenia
            },
            promotions: [{                                  -- rodzaje wyróżnień dostępnych
                                                            w danym pakiecie
                    "name": "bold"
                    "duration": "PT240H"
                },
                {
                    "name": "emphasized"
                    "duration": "PT120H"
                },
                ...
            ],
            "extensions": [{                                -- dostępne rozszerzenia w ramach
                                                            danego pakietu
                "name": "autocentrumExport",
                "description": "Eksport ogłoszenia do autocentrum"
            }]
        },
        {
            "id": "3174be19-56f9-484b-b72c-43b0b00785e8",
            "type": "EXTRA"                                 -- typ opcji dodatkowej, którą możesz
                                                            dokupić do pakietu
            "name": "Dodatkowe wyróżnienie na 10 dni",
                                                            -- nazwa dostępnej opcji dodatkowej
            promotions: [{                                  -- rodzaje wyróżnień dostępnych
                                                            w danej opcji dodatkowej do pakietu
                    "name": "bold"
                    "duration": "PT240H"
                },
                {
                    "name": "emphasized"
                    "duration": "PT120H"
                },
                ...
            ]
        }
    ]
  }

 

Możesz także skorzystać z GET /sale/classifieds-packages/{packageId}, aby pobrać szczegółowe informacja na temat danego pakietu i dostępnych do niego opcji dodatkowych.

Przykładowy request:

  curl -X GET \
  'https://api.allegro.pl/sale/classifieds-packages/6174be19-56f9-484b-b72c-43b0b00785e8' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json'

 

Przykładowy response:

 {
    "id": "6174be19-56f9-484b-b72c-43b0b00785e8",   -- identyfikator pakietu
    "type": "BASE"                                  -- typ pakietu
    "name": "Podstawowy",                           -- nazwa pakietu
    "publication": {
        "duration": "PT960H"                        -- czas trwania ogłoszenia
    },
    promotions: [{                                  -- rodzaje promowań dostępnych
                                                    w danym pakiecie
            "name": "bold"
            "duration": "PT240H"
        },
        {
            "name": "emphasized"
            "duration": "PT120H"
        },
        ...
    ],
    "extensions": [{                                -- dostępne rozszerzenia w
                                                    danym pakiecie
            "name": "autocentrumExport",
            "description": "Eksport ogłoszenia do autocentrum"
        }
    }]
    }

 

Przypisz wybrany pakiet do oferty

Wybrany pakiet i opcje dodatkowe przypisz do danego szkicu za pomocą PUT /sale/offer-classifieds-packages/{offerId}.

Pakiety możesz zmieniać tylko do momentu opublikowania ogłoszenia. Do aktywnego ogłoszenia możesz dodawać tylko dodatkowe opcje promowania.

Przykładowy request:

  curl -X PUT \
  'https://api.allegro.pl/sale/offer-classifieds-packages/7715094304' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json' \
  -d '{
    "basePackage": {
        "id": "3174be19-56f9-484b-b72c-43b0b00785e8"        -- identyfikator pakietu
    },
    "extraPackages": [{
            "id": "3174be19-56f9-484b-b72c-43b0b00785e8"    -- identyfikator opcji dodatkowych,
                                                            które chcesz dokupić do danego pakietu
        },
        {
            "id": "3174be19-56f9-484b-b72c-43b0b00785e6"
        }
    ]
 }'

 

Przykładowy response:

 Status 200 OK

 

Publikacja ogłoszenia

Gdy już uzupełnisz wszystkie niezbędne dane oraz przypiszesz pakiet, możesz przejść do publikacji ogłoszenia. Zrobisz to za pomocą PATCH /sale/product-offers/{offerId}. Wystarczy, że w polu publication.status przekażesz wartość ACTIVE.

Przykładowy request:

curl -X PATCH
‘https://api.allegro.pl/sale/product-offers/7715094304’
-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"
    }
}’

 

Zmianę wprowadzimy asynchronicznie. W odpowiedzi zwrócimy status 202 Accepted oraz dane oferty z aktualnym jej stanem - nie uwzględniającym jeszcze danych, które są procesowane.

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.

Kliknij, aby zobaczyć response
toggle visibility
  HTTP/1.1 202 Accepted
  Location: ‘https://api.allegro.pl/sale/product-offers/7715094304/sale/operations/ef5dd966-d370-44f7-bb30-3631e3511536’
  retry-after: 5
{
    "name": "BMW X5 (G05, F95) M50 i xDrive 2019-08",
    "productSet": [
        {
            "product": {
                "id": null,
                "publication": {
                    "status": "NOT_LISTED"
                },
                "parameters": [
                    {
                        "id": "14",
                        "name": "Moc",
                        "values": [
                            "530"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "1",
                        "name": "Rok produkcji",
                        "values": [
                            "2020"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "4",
                        "name": "Przebieg",
                        "values": [
                            "0"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "199",
                        "name": "Skrzynia biegów",
                        "values": [
                            "Automatyczna"
                        ],
                        "valuesIds": [
                            "199_1"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "211066",
                        "name": "Klimatyzacja",
                        "values": [
                            "automatyczna czterostrefowa"
                        ],
                        "valuesIds": [
                            "211066_246574"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "3",
                        "name": "Kolor",
                        "values": [
                            "Biały"
                        ],
                        "valuesIds": [
                            "3_15"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "128791",
                        "name": "Napęd",
                        "values": [
                            "4x4"
                        ],
                        "valuesIds": [
                            "128791_246722"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "5",
                        "name": "Pojemność silnika",
                        "values": [
                            "4395"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "16",
                        "name": "Rodzaj paliwa",
                        "values": [
                            "Benzyna"
                        ],
                        "valuesIds": [
                            "16_1"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "13",
                        "name": "Nadwozie",
                        "values": [
                            "SUV"
                        ],
                        "valuesIds": [
                            "13_10"
                        ],
                        "rangeValue": null
                    }
                ]
            },
            "quantity": {
                "value": 1
            }
        }
    ],
    "parameters": [
        {
            "id": "11323",
            "name": "Stan",
            "values": [
                "Używany"
            ],
            "valuesIds": [
                "11323_2"
            ],
            "rangeValue": null
        }
    ],
    "images": [
        "https://a.allegroimg.pl/original/11575c/3c0b3cdd4141b3d01d6a55930be6"
    ],
    "afterSalesServices": null,
    "payments": {
        "invoice": "VAT"
    },
    "sellingMode": {
        "format": "ADVERTISEMENT",
        "price": {
            "amount": "350000.00",
            "currency": "PLN"
        },
        "startingPrice": null,
        "minimalPrice": null
    },
    "stock": null,
    "location": {
        "countryCode": "PL",
        "province": "WIELKOPOLSKIE",
        "city": "Poznań",
        "postCode": "60-166"
    },
    "delivery": {
        "shippingRates": null,
        "handlingTime": "PT24H",
        "additionalInfo": null,
        "shipmentDate": null
    },
    "description": {
        "sections": [
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p></p>"
                    }
                ]
            }
        ]
    },
    "external": null,
    "category": {
        "id": "260574"
    },
    "tax": null,
    "taxSettings": null,
    "sizeTable": null,
    "discounts": {
        "wholesalePriceList": null
    },
    "contact": {
        "id": "d82a71f0-1e44-410c-8a2f-618834ad0a7b"
    },
    "fundraisingCampaign": null,
    "messageToSellerSettings": null,
    "attachments": [],
    "b2b": null,
    "additionalServices": null,
    "compatibilityList": null,
    "additionalMarketplaces": {
        "allegro-cz": {
            "sellingMode": null,
            "publication": {
                "state": "NOT_REQUESTED"
            }
        }
    },
    "id": "7715094304",
    "language": "pl-PL",
    "publication": {
        "status": "INACTIVE",
        "duration": "PT240H",
        "endedBy": null,
        "endingAt": null,
        "startingAt": null,
        "republish": false,
        "marketplaces": {
            "base": {
                "id": "allegro-pl"
            },
            "additional": []
        }
    },
    "validation": {
        "errors": [],
        "warnings": [],
        "validatedAt": "2023-07-27T12:01:46.246Z"
    },
    "createdAt": "2023-07-27T11:36:08.000Z",
    "updatedAt": "2023-07-27T12:01:46.247Z"
}

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/7715094304/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/7715094304/operations/ef5dd966-d370-44f7-bb30-3631e3511536
retry-after: 5
 {
  "offer": {
    "id": "7715094304"
  },
  "operation": {
    "id": "ef5dd966-d370-44f7-bb30-3631e3511536",
    "status": "IN_PROGRESS",
    "startedAt": "2023-07-27T12:01:46.247Z"
  }
}

 

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/7715094304/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/7715094304

 

Skorzystaj z metody GET oraz adresu 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/7715094304’
  -H 'Authorization: Bearer {token}'
  -H 'Accept: application/vnd.allegro.public.v1+json'
Kliknij, aby zobaczyć response
toggle visibility
{
    "name": "BMW X5 (G05, F95) M50 i xDrive 2019-08",
    "productSet": [
        {
            "product": {
                "id": null,
                "publication": {
                    "status": "NOT_LISTED"
                },
                "parameters": [
                    {
                        "id": "14",
                        "name": "Moc",
                        "values": [
                            "530"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "1",
                        "name": "Rok produkcji",
                        "values": [
                            "2020"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "4",
                        "name": "Przebieg",
                        "values": [
                            "0"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "199",
                        "name": "Skrzynia biegów",
                        "values": [
                            "Automatyczna"
                        ],
                        "valuesIds": [
                            "199_1"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "211066",
                        "name": "Klimatyzacja",
                        "values": [
                            "automatyczna czterostrefowa"
                        ],
                        "valuesIds": [
                            "211066_246574"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "3",
                        "name": "Kolor",
                        "values": [
                            "Biały"
                        ],
                        "valuesIds": [
                            "3_15"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "128791",
                        "name": "Napęd",
                        "values": [
                            "4x4"
                        ],
                        "valuesIds": [
                            "128791_246722"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "5",
                        "name": "Pojemność silnika",
                        "values": [
                            "4395"
                        ],
                        "valuesIds": null,
                        "rangeValue": null
                    },
                    {
                        "id": "16",
                        "name": "Rodzaj paliwa",
                        "values": [
                            "Benzyna"
                        ],
                        "valuesIds": [
                            "16_1"
                        ],
                        "rangeValue": null
                    },
                    {
                        "id": "13",
                        "name": "Nadwozie",
                        "values": [
                            "SUV"
                        ],
                        "valuesIds": [
                            "13_10"
                        ],
                        "rangeValue": null
                    }
                ]
            },
            "quantity": {
                "value": 1
            }
        }
    ],
    "parameters": [
        {
            "id": "11323",
            "name": "Stan",
            "values": [
                "Używany"
            ],
            "valuesIds": [
                "11323_2"
            ],
            "rangeValue": null
        }
    ],
    "images": [
        "https://a.allegroimg.pl/original/11575c/3c0b3cdd4141b3d01d6a55930be6"
    ],
    "afterSalesServices": {
        "impliedWarranty": null,
        "returnPolicy": null,
        "warranty": null
    },
    "payments": {
        "invoice": "VAT"
    },
    "sellingMode": {
        "format": "ADVERTISEMENT",
        "price": {
            "amount": "350000.00",
            "currency": "PLN"
        },
        "startingPrice": null,
        "minimalPrice": null
    },
    "stock": null,
    "location": {
        "countryCode": "PL",
        "province": "WIELKOPOLSKIE",
        "city": "Poznań",
        "postCode": "60-166"
    },
    "delivery": {
        "shippingRates": null,
        "handlingTime": "PT24H",
        "additionalInfo": null,
        "shipmentDate": null
    },
    "description": {
        "sections": [
            {
                "items": [
                    {
                        "type": "TEXT",
                        "content": "<p></p>"
                    }
                ]
            }
        ]
    },
    "external": null,
    "category": {
        "id": "260574"
    },
    "tax": null,
    "taxSettings": null,
    "sizeTable": null,
    "discounts": {
        "wholesalePriceList": null
    },
    "contact": {
        "id": "d82a71f0-1e44-410c-8a2f-618834ad0a7b"
    },
    "fundraisingCampaign": null,
    "messageToSellerSettings": null,
    "attachments": [],
    "b2b": null,
    "additionalServices": null,
    "compatibilityList": null,
    "additionalMarketplaces": {
        "allegro-cz": {
            "sellingMode": null,
            "publication": {
                "state": "NOT_REQUESTED"
            }
        }
    },
    "id": "7715094304",
    "language": "pl-PL",
    "publication": {
        "status": "ACTIVE",
        "duration": "PT240H",
        "endedBy": null,
        "endingAt": "2023-08-06T12:01:47.000Z",
        "startingAt": null,
        "republish": false,
        "marketplaces": {
            "base": {
                "id": "allegro-pl"
            },
            "additional": []
        }
    },
    "validation": {
        "errors": [],
        "warnings": [],
        "validatedAt": "2023-07-27T12:01:46.246Z"
    },
    "createdAt": "2023-07-27T11:36:08.000Z",
    "updatedAt": "2023-07-27T12:01:47.356Z"
}

Możesz także aktywować wiele ogłoszeń równocześnie za pomocą zbiorowej komendy publikacji: PUT /sale/offer-publication-commands/{commandId}.

Jak zarządzać ogłoszeniem

Przypisane pakiety

Aby pobrać informacje o przypisanych do ogłoszenia pakietach i opcjach dodatkowych, skorzystaj z GET /sale/offer-classifieds-packages/{offerId}.

Przykładowy request:

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

 

Przykładowy response:

  {
    "basePackage": {
        "id": "3174be19-56f9-484b-b72c-43b0b00785e8"
    },
    "extraPackages": [{
            "id": "3174be19-56f9-484b-b72c-43b0b00785e8", -- identyfikator opcji dodatkowych, 
                                                             które chcesz dodać do danego pakietu
            "republish": true                             -- opcja automatycznego wznowienia 
                                                             (true - włączona, false - wyłączona)
        },
        {
            "id": "3174be19-56f9-484b-b72c-43b0b00785e6",
            "republish": false
        }
    ]
  }

 

Pakiety możesz zmieniać tylko do momentu opublikowania ogłoszenia. Natomiast do aktywnego ogłoszenia dodasz tylko dodatkowe opcje promowania.

Za pomocą PUT /sale/offer-classifieds-packages/{offerId} możesz dodać dodatkowe opcje promowania do ogłoszenia. Oprócz opcji dodatkowych, które chcesz dodać, przekaż strukturę jaką pobrałeś za pomocą GET /sale/offer-classifieds-packages/{offerId}.

Przykładowy request:

  curl -X PUT \
  'https://api.allegro.pl/sale/offer-classifieds-packages/7715094304' \
  -H 'Authorization: Bearer {token}' \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Content-Type: application/vnd.allegro.public.v1+json'
  -d '{
    "basePackage": {
        "id": "3174be19-56f9-484b-b72c-43b0b00785e8"
    },
    "extraPackages": [{
            "id": "3174be19-56f9-484b-b72c-43b0b00785e8",
            "republish": true
        },
        {
            "id": "3174be19-56f9-484b-b72c-43b0b00785e7",
            "republish": true
        },
        {
            "id": "3174be19-56f9-484b-b72c-43b0b00785e6",
            "republish": false
        }
    ]
  }'

 

Przykładowy response:

  Status 201 No Content

 

Edycja aktywnego ogłoszenia

Aby edytować aktywne ogłoszenie, tak samo jak przy tworzeniu szkicu, skorzystaj z PATCH /sale/product-offers/{offerId}. 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"
}
}’

 

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.

Statystyki ogłoszeń

Sprzedający mogą sprawdzić statystyki ogłoszeń takie jak:

  • liczba odsłon numeru telefonu,
  • wiadomości wysłane przez Kupujących za pośrednictwem opcji “Zadaj pytanie”.

Dzięki temu mogą łatwiej przeanalizować ogłoszenia pod kątem zainteresowania ze strony potencjalnych kontrahentów.

Statystyki wszystkich ogłoszeń sprzedawcy

Za pomocą GET /sale/classified-seller-stats sprawdzisz ogólne statystyki wszystkich ogłoszeń sprzedawcy.

Przykładowy request:

 curl -X GET \
  'https://api.allegro.pl/sale/classified-seller-stats’ \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Authorization: Bearer {token}'
Kliknij, aby zobaczyć response
toggle visibility
{
   "eventStatsTotal": [                         - łączne statystyki ogłoszeń 
                                                sprzedawcy
       {
           "eventType": "SHOWED_PHONE_NUMBER",  - typ zdarzenia; zwracane wartości: 
                                                SHOWED_PHONE_NUMBER 
                                                (odsłonięta opcja “Pokaż numer 
                                                telefonu”), ASKED_QUESTION 
                                                (Klient skorzystał z opcji “Zadaj 
                                                pytanie“),
                                                CLICKED_ASK_QUESTION
                                                (użytkownik kliknął w “Zadaj pytanie“),
                                                ADDED_TO_FAVOURITES 
                                                (użytkownik dodał ogłoszenie do ulubionych),
                                                REMOVED_FROM_FAVOURITES 
                                                (użytkownik usunął ogłoszenie z ulubionych)
           "count": 1                           - liczba zdarzeń
       },
       {
           "eventType": "ASKED_QUESTION",
           "count": 12
       }
   ],
   "eventsPerDay": [                            - łączne statystyki ogłoszeń 
                                                sprzedawcy na dany dzień
       {
           "date": "2022-08-24",                - data zdarzenia
           "eventStats": [                      - statystyki zdarzenia
               {
                   "eventType": "ASKED_QUESTION",
                   "count": 12
               }
           ]
       },
       {
           "date": "2022-08-25",
           "eventStats": [
               {
                   "eventType": "SHOWED_PHONE_NUMBER",
                   "count": 1
               }
           ]
       }
   ]
}

Aby zawęzić listę wyszukiwania, skorzystaj z parametrów, dzięki którym wyfiltrujesz statystyki ogłoszeń:

  • date.gte - od najwcześniejszej daty (w formacie ISO 8601),
  • date.lte - od najpóźniejszej daty (w formacie ISO 8601), np. GET /sale/classified-seller-stats?date.gte=2022-08-10T11:06:50.935Z&date.lte=2022-08-20T11:06:50.935Z.

Statystyki wybranych ogłoszeń

Za pomocą GET /sale/classified-offers-stats sprawdzisz statystyki wybranych ogłoszeń. W żądaniu możesz przekazać maksymalnie do 50 numerów ofert w parametrze offer.id.

Przykładowy request:

 curl -X GET \
  'https://api.allegro.pl/sale/classified-offers-stats?offer.id=7693291322, 7693291524’ \
  -H 'Accept: application/vnd.allegro.public.v1+json' \
  -H 'Authorization: Bearer {token}'
Kliknij, aby zobaczyć response
toggle visibility
{
   "offerStats": [                                 - statystyki ogłoszeń
       {
           "offer": {                              - oferta
               "id": "7693291322"                  - numer oferty
           },
           "eventStatsTotal": [                    - łączne statystyki ogłoszeń dla 
danego zdarzenia
               {
           "eventType": "SHOWED_PHONE_NUMBER",  - typ zdarzenia; zwracane wartości: 
                                                SHOWED_PHONE_NUMBER 
                                                (odsłonięta opcja “Pokaż numer 
                                                telefonu”), ASKED_QUESTION 
                                                (Klient skorzystał z opcji “Zadaj 
                                                pytanie“),
                                                CLICKED_ASK_QUESTION
                                                (użytkownik kliknął w “Zadaj pytanie“),
                                                ADDED_TO_FAVOURITES 
                                                (użytkownik dodał ogłoszenie do ulubionych),
                                                REMOVED_FROM_FAVOURITES 
                                                (użytkownik usunął ogłoszenie z ulubionych)
                   "count": 9                      - liczba zdarzeń
               }
           ],
           "eventsPerDay": [                       - statystyki ogłoszeń na dany dzień
               {
                   "date": "2022-08-24",           - data zdarzenia
                   "eventStats": [                 - statystyki zdarzenia
                       {
                           "eventType": "ASKED_QUESTION",
                           "count": 9
                       }
                   ]
               }
           ]
       },
       {
           "offer": {
               "id": "7693291524"
           },
           "eventStatsTotal": [
               {
                   "eventType": "SHOWED_PHONE_NUMBER",
                   "count": 1
               },
               {
                   "eventType": "ASKED_QUESTION",
                   "count": 3
               }
           ],
           "eventsPerDay": [
               {
                   "date": "2022-08-24",
                   "eventStats": [
                       {
                           "eventType": "ASKED_QUESTION",
                           "count": 3
                       }
                   ]
               },
               {
                   "date": "2022-08-25",
                   "eventStats": [
                       {
                           "eventType": "SHOWED_PHONE_NUMBER",
                           "count": 1
                       }
                   ]
               }
           ]
       }
   ]
}

Aby zawęzić listę wyszukiwania, możesz skorzystać z parametrów, dzięki którym wyfiltrujesz statystyki ogłoszeń:

  • date.gte - od najwcześniejszej daty (w formacie ISO 8601),
  • date.lte - od najpóźniejszej daty (w formacie ISO 8601), np. GET /sale/classified-offers-stats?offer.id=7693291322, 7693291524&date.gte=2022-08-10T11:06:50.935Z&date.lte=2022-08-20T11:06:50.935Z.

Lista zasobów

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

Lista zasobów podstawowych opisanych w poradniku:

  • POST /sale/product-offers - utwórz draft ogłoszenia
  • GET /sale/product-offers/{offerId} - pobierz ogłoszenie
  • PATCH /sale/product-offers/{offerId} - edytuj draft / ogłoszenie
  • GET /sale/classifieds-packages - pobierz dostępne pakiety i opcje dla ogłoszenia
  • PUT /sale/offer-classifieds-packages/{offerId} - przypisz pakiet i opcje do ogłoszenia
  • POST /sale/offer-contacts - utwórz kontakt
  • GET /sale/categories - pobierz listę kategorii
  • GET /sale/categories/{categoryId}/parameters - pobierz listę parametrów dla kategorii

Lista zasobów wspierających opisanych w poradniku:

  • GET /sale/product-offers/{offerId}/operations/{operationId} - sprawdź status operacji edycji
  • GET /sale/offer-contacts/{id} - pobierz szczegóły kontaktu
  • GET /sale/offer-contacts - pobierz listę kontaktów
  • PUT /sale/offer-contacts/{id} - edytuj dane kontaktu
  • GET /sale/classifieds-packages/{packageId} - pobierz szczegóły pakietu / opcji
  • GET /sale/offer-classifieds-packages/{offerId} - pobierz informacje o pakiecie i opcjach dodatkowych przypisanych do oferty
  • GET /sale/classified-seller-stats - sprawdź ogólne statystyki wszystkich ogłoszeń sprzedawcy
  • GET /sale/classified-offers-stats - sprawdź statystyki wybranych ogłoszeń

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

Czy ten artykuł był dla Ciebie przydatny?

Allegro

Serwisy Grupy Allegro

  • Allegro.cz
  • Allegro.sk
  • Allegro.hu
  • Mall.hr
  • Mimovrste.com
  • Onedelivery.cz
zamknij

Dostosuj ustawienia wyświetlania

ustawienia dotyczą tylko tej przeglądarki