Jak jednym requestem wystawić ofertę powiązaną z produktem

Za pomocą POST /sale/product-offers przy użyciu jednego żądania wystawisz:

  • aktywną ofertę powiązaną z produktem, który istnieje w naszej bazie. W strukturze żądania przekaż numer EAN (lub identyfikator produktu) oraz cenę i liczbę sztuk. Za pomocą GET /sale/products?ean={ean} możesz sprawdzić dane produktu.

    Kliknij, żeby zobaczyć przykładowy request:
      curl -X POST
      ‘https://api.allegro.pl/sale/product-offers’
      -H 'Authorization: Bearer {token}'
      -H 'Accept: application/vnd.allegro.beta.v2+json'
      -H 'Content-Type: application/vnd.allegro.beta.v2+json'
      -d ‘{
      "product": {
        "id": "5902719471797"           -- kod EAN lub ID produktu
      },
      "sellingMode": {
        "price": {
          "amount": "220.85",           -- cena
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 10                 -- liczba sztuk
      }
    }’

    Jeżeli w odpowiedzi otrzymasz informację, aby uzupełnić brakujące parametry obowiązkowe, przekaż je w obiekcie product. ID parametru wraz z wartością sprawdzisz za pomocą GET /sale/{categoryID}/parameters.
    Kliknij, żeby zobaczyć przykładowy request:
      curl -X POST
      ‘https://api.allegro.pl/sale/product-offers’
      -H 'Authorization: Bearer {token}'
      -H 'Accept: application/vnd.allegro.beta.v2+json'
      -H 'Content-Type: application/vnd.allegro.beta.v2+json'
      -d ‘{
      "product": {
        "id": "d26b023c-d52c-44f9-b61a-321eb202792b",
        "parameters": [
          {
            "id": "202293",
            "valuesIds": [
              "202293_211441"
            ]
          }
        ]
      },
      "sellingMode": {
        "price": {
          "amount": "220.85",
          "currency": "PLN"
        }
      },
      "stock": {
        "available": 1
      }
    }
    ’

  • aktywną ofertę powiązaną z produktem, którego nie ma w naszej bazie. W strukturze żądania w obiekcie product przekaż komplet danych, które opisują sprzedawany produkt. Request uzupełnij o dane na temat ceny i liczby sztuk. W dalszej części poradnika szczegółowo opisujemy ten proces.

    Kliknij, żeby zobaczyć przykładowy request:
     curl -X POST
        ‘https://api.allegro.pl/sale/product-offers’
        -H 'Authorization: Bearer {token}'
        -H 'Accept: application/vnd.allegro.beta.v2+json'
        -H 'Content-Type: application/vnd.allegro.beta.v2+json'
        -d ‘{
        "product": {                            -- informacje o produkcie
                "name": "Produkt testowy",
                "category":{
                        "id":"89060"
                },
            "parameters":[
                {
                        "name": "EAN",
                        "values": [
                                    "0744861045021"
                        ]
                    },
                    {
                        "id": "237218",
                        "values": [
                                "Testowy tytuł"
                        ]
                    }
            ],
            "images":[   
                    "https://...adres-pierwszego-obrazka.jpeg"
            ]
      },
        "sellingMode": {
                "price": {
                    "amount": "220.85",         -- cena
                    "currency": "PLN"
                }
        },
         "stock": {
                "available": 10                 -- liczba sztuk
        }
    }’

Jeśli na podstawie przekazanych danych rozpoznamy, że produkt istnieje w naszej bazie, to weźmiemy jego dane i uwzględnimy je w wystawionej ofercie. Będą to:

  • kategoria i parametry,
  • zdjęcia,
  • opis produktu (jeśli nie przekażesz własnego),
  • numery EAN,
  • sekcja pasuje do,
  • specyfikacja techniczna TecDoc.

W serwisie pojawi się aktywna oferta sprzedaży wskazanego produktu, nie musisz wywoływać osobnej komendy publikacji. Pozostałych informacji wymaganych do wystawienia oferty nie musisz nam przesyłać - 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.

Pole Wartość
Status publikacji Oferta zostanie natychmiast aktywowana
Format sprzedaży Kup teraz
Typ jednostek Sztuki
Wysyłka z Dane z ustawień konta Allegro (Twój adres)
Opcje faktury Faktura VAT
Czas wysyłki 24 godziny
Czas trwania Do wyczerpania przedmiotów
Cennik dostawy Jeżeli posiadasz jeden cennik dostawy, to przypiszemy go do oferty. W przypadku większej liczby, użyjemy cennika o nazwie default. Jeżeli nie posiadasz cennika o takiej nazwie, zwrócimy błąd 422.
Warunki reklamacji i Warunki zwrotów Jeżeli posiadasz konto firma i po jednej opcji dla tych pól, to przypiszemy ją do oferty. W przypadku większej liczby, użyjemy wariantu o nazwie default. Jeżeli nie posiadasz wariantu o takiej nazwie, zwrócimy błąd 422. Dla kont zwykłych nie podstawimy żadnej wartości.


W przyszłości, gdy skorzystasz z tego zasobu, w twoich ofertach zaprezentujemy najbardziej aktualne dane z naszego katalogu produktów. Gdy zaktualizujemy dane produktu w katalogu, nie będzie konieczne kopiowanie czy akceptowanie zmian w ofercie, jeśli nie przekażesz własnych wartości, innych niż te w produkcie. Pozwoli to nam także automatycznie uzupełnić parametry, których aktualnie wymagamy przy edycji oferty.

Jak wygląda integracja z asynchronicznym API

Ze względu na czas wykonania niektórych operacji (np. zmiana statusu publikacji oferty), który może być dłuższy niż czas odpowiedzi na żądanie i nie możemy go wtedy przetworzyć w sposób synchroniczny, dla zasobów /sale/product-offers wprowadziliśmy wzorzec asynchronicznego API. Przedstawia go poniższy diagram:

async_api

W odpowiedzi na prawidłowe żądanie na zasobie /sale/product-offers/ otrzymasz jeden z trzech statusów:

  • 200 OK - zmiany wdrożymy od razu. Występuje tylko w przypadku metody PATCH.

  • 201 Created - ofertę utworzymy od razu. Występuje tylko w przypadku metody POST.

  • 202 Accepted - ze względu na dłuższy czas wykonania operacji zadanie przeprowadzimy asynchronicznie. Występuje w przypadku metody POST i PATCH.


Wraz ze statusem 202 Accepted zwrócimy w odpowiedzi nagłówek Location, w którym znajdziesz odnośnik do nowego zasobu. Zwrócony w location zasób odpytaj, aby otrzymać informację o statusie przetwarzania żądania. W odpowiedzi zwrócimy jeden z dwóch statusów:

  • 202 Accepted - operacja nie została jeszcze zakończona. Powtórz poprzednie żądanie.

  • 303 See Other - operacja została zakończona. W nagłówku Location przekażemy odnośnik do zasobu w postaci: /sale/product-offers/{offerId}. Skorzystaj z metody GET i przesłanego odnośnika w polu Location. W odpowiedzi zwrócimy aktualne dane oferty.

Publikacja oferty w asynchronicznym API

async_api_publication

W przypadku, gdy zwrócimy status 201 Created - w odpowiedzi przekażemy dane oferty. Utworzymy ją w sposób synchroniczny.


Przykładowy request:

  curl -X POST
  ‘https://api.allegro.pl/sale/product-offers’
  -H 'Authorization: Bearer {token}'
  -H 'Accept: application/vnd.allegro.beta.v2+json'
  -H 'Content-Type: application/vnd.allegro.beta.v2+json'
  -d ‘{
    "product": {
      "id": "5902719471797"          
    },
    "sellingMode": {
      "price": {
        "amount": "220.85",    
        "currency": "PLN"
      }
    },
    "stock": {
      "available": 10               
    },
     "publication": {
      "status": "INACTIVE"
    }
  }’


Kliknij, żeby zobaczyć przykładowy response:
{

 HTTP/1.1 201 Created
  {
    "id": "9531382307’",
    "name": "Przykładowa nazwa",
    "product": {
        "id": null,
        "publication": {
            "status": "NOT_LISTED"
        }
    },
    "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": "INACTIVE",
        "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": {
        "percentage": null
    },
    "sizeTable": null
  }

Jeśli na prawidłowe żądanie metodą POST /sale/product-offers zwrócimy status 202 Accepted, w odpowiedzi otrzymasz także dane oferty z aktualnym jej stanem - nieuwzględniającym zmian, które są procesowane.


Przykładowy request:

  curl -X POST
  ‘https://api.allegro.pl/sale/product-offers’
  -H 'Authorization: Bearer {token}'
  -H 'Accept: application/vnd.allegro.beta.v2+json'
  -H 'Content-Type: application/vnd.allegro.beta.v2+json'
  -d ‘{
  "product": {
    "id": "5902719471797"
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 10
  }
 }’


Kliknij, żeby zobaczyć przykładowy response:
{

 HTTP/1.1 202 Accepted
 location: https://api.allegro.pl/sale/product-offers/9531382307/operations/eadb2e97-9850-4c51-bd27-68888b6d7d5d
 retry-after: 5
 {
    "id": "9531382307’",
    "name": "Przykładowy produkt",
    "product": {
        "id": 5902719471797,
        "publication": {
            "status": "NOT_LISTED"
        }
    },
    "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": "INACTIVE",
        "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.allegroimgpl/original/116421/ece7111d4b8fbbc4662ab92f84ce"
    ],
    "external": null,
    "category": {
        "id": "79419"
    },
    "tax": {
        "percentage": null
    },
    "sizeTable": null
}


Aby sprawdzić status publikacji, 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.

Skorzystaj z metody GET oraz otrzymanego adresu w Location. 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/eadb2e97-9850-4c51-bd27-68888b6d7d5d’
  -H 'Authorization: Bearer {token}'
  -H 'Accept: application/vnd.allegro.beta.v2+json'
  -H 'Content-Type: application/vnd.allegro.beta.v2+json'


Przykładowy response

{

 HTTP/1.1 202 Accepted
 location: https://api.allegro.pl/sale/product-offers/9531382307/operations/eadb2e97-9850-4c51-bd27-68888b6d7d5d
 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/eadb2e97-9850-4c51-bd27-68888b6d7d5d’
  -H 'Authorization: Bearer {token}'
  -H 'Accept: application/vnd.allegro.beta.v2+json'
  -H 'Content-Type: application/vnd.allegro.beta.v2+json'


Przykładowy response:

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


Możesz teraz skorzystać z metody GET oraz otrzymanego odnośnika 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.beta.v2+json'
  -H 'Content-Type: application/vnd.allegro.beta.v2+json'


Kliknij, żeby zobaczyć przykładowy response:
{

 {
    "id": "9531382307’",
    "name": "Przykładowy produkt",
    "product": {
        "id": 5902719471797,
        "publication": {
            "status": "NOT_LISTED"
        }
    },
    "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/original/116421/ece7111d4b8fbbc4662ab92f84ce"
    ],
    "external": null,
    "category": {
        "id": "79419"
    },
    "tax": {
        "percentage": null
    },
    "sizeTable": null
 }

Jak przekazać własne wartości w żądaniu?

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

  • produktową - w której przekazujesz:

    • numer EAN lub id produktu, jeżeli chcesz powiązać ofertę z produktem, który znajduje się w naszej bazie,

    • komplet informacji o produkcie, jeżeli chcesz powiązać ofertę z produktem, którego nie ma w naszej bazie. 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. W dalszej części poradnika znajdziesz opis, jak to wykonać.

Jak ustawić własny tytuł

Do oferty automatycznie przypiszemy tytuł powiązany z nazwą produktu. Jeśli chcesz nadać swój własny, rozszerz request o pole name:

  ...
  "name": "Mój własny tytuł"
  ...  
Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "Mój własny tytuł",
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 1
  }
}’

Jak ustawić parametry ofertowe

Parametry ofertowe są związane z indywidualną ofertą, np. stan, data ważności, etc., a nie z cechą konkretnego produktu. Aby sprawdzić, które parametry są ofertowe, a które produktowe, na tę chwilę skorzystaj z dwóch zasobów:

Parametry ofertowe otrzymasz po odjęciu parametrów produktowych od wszystkich parametrów. W przyszłości chcemy uproscić ten proces tak, aby nie było potrzeby wywoływania dwóch osobnych zasobów.

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

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "Mój własny tytuł",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 1
  }
}’

Jak ustawić czas trwania oferty

Jeżeli chcesz ustawić czas trwania oferty inny niż do wyczerpania zapasów, rozszerz swój request o pole publication.duration i wskaż jedną z dostępnych wartości czasu trwania oferty:

  ...
  "publication": {
    "duration": “P30D”
    ...
  },
  ...  

Dostępne wartości to:

  • null (do wyczerpania zapasów),
  • P3D (3 dni),
  • P5D (5 dni),
  • P7D (7 dni),
  • P10D (10 dni),
  • P20D (20 dni),
  • P30D (30 dni).

Czas trwania możesz podać też w godzinach, np.: P72H (3 dni).

Kliknij, żeby zobaczyć przykładowy request:

 curl -X POST
 ‘https://api.allegro.pl/sale/product-offers’
 -H 'Authorization: Bearer {token}'
 -H 'Accept: application/vnd.allegro.beta.v2+json'
 -H 'Content-Type: application/vnd.allegro.beta.v2+json'
 -d ‘{
   "product": {
     "id": "5902719471797"
   },
   "name": "Mój własny tytuł",
   "parameters": [
         {
             "id": "11323",
             "valuesIds": [
                 "11323_2"
             ]
         }
     ],
   "sellingMode": {
     "price": {
       "amount": "220.85",
       "currency": "PLN"
     }
   },
   "stock": {
     "available": 1
   },
   "publication": {
     "duration": “P30D”
   }
 }’

Jak przypisać do oferty wybrany cennik dostawy

Możesz ustawić dowolny cennik dostawy. Przykładowo - jeżeli posiadasz cennik o nazwie małe gabaryty i chcesz go użyć w ofercie, wystarczy, że rozszerzysz request o dodatkowe pole z:

  • nazwą cennika:

      ...
      "delivery": {
        "shippingRates": {
            "name": "małe gabaryty"
        }
      },
      ...    

  • lub identyfikatorem cennika:

      ...
      "delivery": {
        "shippingRates": {
            "id": "c446793c-33f0-407f-b0ed-1aeec6090a7a"
        }
      }
      ...    

Nazwę i ID swoich cenników sprawdzisz za pomocą GET /sale/shipping-rates.

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "Mój własny tytuł",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
        "shippingRates": {
                "id": "c446793c-33f0-407f-b0ed-1aeec6090a7a"
    }
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 1
  }
}’

Jak ustawić inny czas wysyłki

Aby wystawić przedmiot z czasem wysyłki innym niż 24H, ustaw w polu handlingTime w sekcji delivery wartość w formacie ISO 8601. Przykładowo, jeżeli chcesz ustawić czas wysyłki na 2 dni, prześlij w polu handlingTime wartość PT48H:

  ...
  "delivery": {
    "handlingTime": "PT48H"
  }
  ...    

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "Mój własny tytuł",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
    },
        "handlingTime": "PT48H"
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 1
  }
}’

Jak dodać dodatkowe informacje o dostawie

Rozszerz swój request o sekcję delivery z polem additionalInfo, aby uwzględnić w ofercie dodatkowe informacje o dostawie:

  ...
  "delivery": {
        "additionalInfo": "Dodatkowe informacje o dostawie"
   }
  ...     

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "Mój własny tytuł",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Dodatkowe informacje o dostawie"
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
      "afterSalesServices": {
          "impliedWarranty": {
                  "name": "zabawki"
        }
    },
  "stock": {
    "available": 1
  }
}’

Jak ustawić wybrane warunki reklamacji

Jeśli chcesz ustawić inne warunki reklamacji niż domyślne, użyj ich nazwy lub ID . Przykładowo, jeżeli posiadasz warunki reklamacji o nazwie zabawki, których ID to 913174eb-35ed-48df-b3b9-b9eb66b1b7a4 i chcesz użyć ich w ofercie, wystarczy, że rozszerzysz request o dodatkowe pole, w którym przekażesz:

  • nazwę warunków reklamacji:

      ...
      "impliedWarranty": {
        "name": "zabawki"
      }
      ...    

  • lub identyfikator warunków reklamacji:

      ...
      "impliedWarranty": {
        "id": "913174eb-35ed-48df-b3b9-b9eb66b1b7a4"
      }
      ...    

Nazwę oraz ID warunków reklamacji otrzymasz za pomocą GET /after-sales-service-conditions/implied-warranties.

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "Mój własny tytuł",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Dodatkowe informacje o dostawie"
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
      "afterSalesServices": {
          "impliedWarranty": {
                  "name": "zabawki"
        }
    },
  "stock": {
    "available": 1
  }
}’

Jak ustawić wybrane warunki zwrotów

Jeśli chcesz ustawić inne warunki zwrotów niż domyślne, użyj ich nazwy lub ID. Przykładowo - jeśli posiadasz warunki zwrotów o nazwie 30 dni o ID a375a08e-86ee-48a4-baf7-fabe01fe2631, to przekaż:

  • nazwę warunków zwrotu:
      ...
      "returnPolicy": {
        "name": "30 dni"
      }
      ...    
  • lub identyfikator warunków zwrotów:
      ...
      "returnPolicy": {
        "id": "a375a08e-86ee-48a4-baf7-fabe01fe2631"
      }
      ...    

Nazwę oraz ID warunków zwrotów otrzymasz za pomocą GET /after-sales-service-conditions/return-policies.

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "Mój własny tytuł",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
       },
        "handlingTime": "PT48H",
        "additionalInfo": "Dodatkowe informacje o dostawie"
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
      "afterSalesServices": {
        "impliedWarranty": {
            "name": "zabawki"
        },
        "returnPolicy": {
            "name": "30 dni"
        }
    },
  "stock": {
    "available": 1
  }
}’

Jak przypisać do oferty tabelę rozmiarów

Rozszerz swój request o sekcję sizeTable, aby dodać do oferty tabelę rozmiarów. Wystarczy, że w żądaniu przekażesz:

  • nazwę tabeli rozmiarów:
  ...
  "sizeTable": {
    "name": “Przykładowa tabela rozmiarów”
  }
  ...
  • lub identyfikator tabeli rozmiarów:
  ...
  "sizeTable": {
    "id": “5727b598-6608-4bd3-b198-f165b011bb69”
  }
  ...

Nazwy i identyfikatory swoich tabel rozmiarów sprawdzisz za pomocą GET /sale/size-tables.

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "Mój własny tytuł",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
      "shippingRates": {
          "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
      "handlingTime": "PT48H",
    "additionalInfo": "Dodatkowe informacje o dostawie"
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
      "afterSalesServices": {
        "impliedWarranty": {
            "name": "zabawki"
        },
        "returnPolicy": {
      "name": "30 dni"
  }
    },
    "location": {
      "countryCode": "PL",
      "province": "LUBUSKIE",
      "city": "Gorzów Wielkopolski",
      "postCode": "66-400"
   },
  "stock": {
    "available": 1
  },
  "sizeTable": {
    "name": “Przykładowa tabela rozmiarów”
  }
}’

Jak ustawić własny adres, z którego wysyłany jest przedmiot

Jeżeli wysyłasz przedmioty z innego adresu, niż przypisany do twojego konta - przekaż odpowiednie wartości w poniższy sposób:

  ...
  "location": {
    "countryCode": "PL",
    "province": "LUBUSKIE",
    "city": "Gorzów Wielkopolski",
    "postCode": "66-400"
   }
  ...    

Listę dozwolonych wartości w polu location.province znajdziesz w naszej dokumentacji.

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
  "product": {
    "id": "5902719471797"
  },
  "name": "Mój własny tytuł",
  "parameters": [
        {
            "id": "11323",
            "valuesIds": [
                "11323_2"
            ]
        }
    ],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Dodatkowe informacje o dostawie"
  },
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
      "afterSalesServices": {
        "impliedWarranty": {
            "name": "zabawki"
        },
        "returnPolicy": {
            "name": "30 dni"
    }
    },
    "location": {
        "countryCode": "PL",
        "province": "LUBUSKIE",
        "city": "Gorzów Wielkopolski",
        "postCode": "66-400"
   },
  "stock": {
    "available": 1
  }
}’

Jak ustawić inne opcje faktury

Jeżeli nie wystawiasz faktury VAT, lub wystawiasz inną jej formę, możesz ustawić ją za pomocą pola payments.invoice:

  ...
  "payments": {
    "invoice": "NO_INVOICE"
  }
  ...    

Listę dozwolonych wartości pola payments.invoice znajdziesz w naszej dokumentacji.

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
    "product": {
        "id": "5902719471797"
    },
    "name": "Mój własny tytuł",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Dodatkowe informacje o dostawie"
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "afterSalesServices": {
        "impliedWarranty": {
            "name": "zabawki"
        },
        "returnPolicy": {
            "name": "30 dni"
        }
    },
    "location": {
        "countryCode": "PL",
        "province": "LUBUSKIE",
        "city": "Gorzów Wielkopolski",
        "postCode": "66-400"
    },
    "payments": {
        "invoice": "NO_INVOICE"
    },
    "stock": {
        "available": 1
    }
}’

Jak ustawić stawkę VAT na fakturze

W przypadku, gdy w ofercie ustawiona jest możliwość wystawienia faktury VAT, możesz określić także wysokość stawki podatku VAT w polu tax.percentage. Możesz wprowadzić tylko stawki podatku VAT określone polskim prawem (0%, 5%, 8%, 23%). Format wartości to 0.00:

  ...
  "tax": {
    "percentage": “23.00”
  },
  ...  

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
    "product": {
        "id": "5902719471797"
    },
    "name": "Mój własny tytuł",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Dodatkowe informacje o dostawie"
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "afterSalesServices": {
        "impliedWarranty": {
            "name": "zabawki"
        },
        "returnPolicy": {
            "name": "30 dni"
        }
    },
    "location": {
        "countryCode": "PL",
        "province": "LUBUSKIE",
        "city": "Gorzów Wielkopolski",
        "postCode": "66-400"
    },
  "tax": {
    "percentage": “23.00”
  },
    "publication": {
        "status": "ACTIVE"
  },
    "stock": {
        "available": 1
    }
}’

Jak utworzyć draft oferty

Jeżeli nie chcesz, aby oferta była aktywna po wysłanym żądaniu, rozszerz swój request o sekcję publication z polem status. Przekaż w nim wartość “INACTIVE”:

  ...
  "publication": {
    "status": "INACTIVE"
  }
  ...    

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
    "product": {
        "id": "5902719471797"
    },
    "name": "Mój własny tytuł",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Dodatkowe informacje o dostawie"
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "afterSalesServices": {
        "impliedWarranty": {
            "name": "zabawki"
        },
        "returnPolicy": {
            "name": "30 dni"
        }
    },
    "location": {
        "countryCode": "PL",
        "province": "LUBUSKIE",
        "city": "Gorzów Wielkopolski",
        "postCode": "66-400"
    },
    "payments": {
        "invoice": "NO_INVOICE"
    },
    "publication": {
        "status": "INACTIVE"
  },
    "stock": {
        "available": 1
    }
}’

Jak dodać własne zdjęcie 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"
  ]
  ...    

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

  • 16 dla kont firmowych,
  • 10 dla kont zwykłych.

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
    "product": {
        "id": "5902719471797"
    },
    "name": "Mój własny tytuł",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Dodatkowe informacje o dostawie"
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "afterSalesServices": {
        "impliedWarranty": {
            "name": "zabawki"
        },
        "returnPolicy": {
            "name": "30 dni"
        }
    },
    "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"
  ],
    "stock": {
        "available": 1
    }
}’

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

W naszym poradniku znajdziesz informacje, jak poprawnie przygotować opis.

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
    "product": {
        "id": "5902719471797"
    },
    "name": "Mój własny tytuł",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Dodatkowe informacje o dostawie"
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "afterSalesServices": {
        "impliedWarranty": {
            "name": "zabawki"
        },
        "returnPolicy": {
            "name": "30 dni"
        }
    },
    "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>"
            }]
        }]
    },
    "stock": {
        "available": 1
    }
}’

Jak dodać sygnaturę

Jeśli chcesz dodać do oferty własną sygnaturę przedmiotu, rozszerz swój request o dodatkowe pole external.id:

  ...
  "external": {
        "id": “5AA43-2020”
   }
  ...  

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
    "product": {
        "id": "5902719471797"
    },
    "name": "Mój własny tytuł",
    "parameters": [{
        "id": "11323",
        "valuesIds": [
            "11323_2"
        ]
    }],
    "delivery": {
        "shippingRates": {
            "id": "862347c4-b2b0-42d4-b84a-1db01509a69d"
        },
        "handlingTime": "PT48H",
        "additionalInfo": "Dodatkowe informacje o dostawie"
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "afterSalesServices": {
        "impliedWarranty": {
            "name": "zabawki"
        },
        "returnPolicy": {
            "name": "30 dni"
        }
    },
    "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>"
            }]
        }]
    },
    "stock": {
        "available": 1
    },
    "external": {
        "id": “5AA43-2020”
   }
}’

Jak wystawić ofertę z produktem, którego nie ma w naszej bazie

Jeżeli nie znajdziesz w naszej bazie produktu, możesz wystawić ofertę, ale musisz podać komplet informacji o produkcie. Przekazane dane posłużą do zgłoszenia propozycji produktu. Zweryfikujemy je, a zaakceptowane przez nas dane produktu będą dostępne na platformie. Część danych może być weryfikowana automatycznie, część po pewnym czasie.

Przygotuj następujące dane, by zaproponować produkt:

  • sugerowaną nazwę produktu
  • kategorię
  • parametry i wartości parametrów
  • zdjęcia
  • (opcjonalnie) opis produktu

Uzupełnij kategorię i parametry

Jeśli chcesz dodać produkt w danej kategorii - sprawdź za pomocą GET /sale/categories/{categoryId}/product-parameters wymagane parametry. Szczegółowy opis odpowiedzi dla tego zasobu opisaliśmy w naszym poradniku. W polu required znajdziesz informację, czy parametr jest wymagany. Zamiast identyfikatorów parametrów możesz użyć ich nazw. Dla parametrów: - słownikowych (typu dictionary) w polu values możesz także przekazać samą nazwę, - zakresowych (typu range) w polu values możesz przekazać dwie wartości, które będą odpowiadać “from” i “to”.

Poniżej znajdziesz różne sposoby przekazania parametrów i ich wartości:

 "product": {
  "category":{
         "id":"258020"
      },
  "parameters": [
      {
            "name": "Kod producenta",
            "values": [
                    "test 1587459230"
            ]
        },
        {
            "id": "202749",
            "values": [
                    "5.9"
            ]
        },
        {
            "id": "202869",
            "values": [
                    "512 GB"
            ]
        },
        {
            "id": "202829",
            "valuesIds": [
                    "202829_8374"
            ]
        },
        {
		"name": "Pojemność akumulatora",
		"values": [
		         0, 100
		]
	   }
     ...
  ]
 }
 ...

Struktura żądania na tym etapie może wyglądać następująco:

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ’{
    "product": {
        "name":"Produkt testowy",
            "category":{
                    "id":"258020"
            },
    "parameters":[
            {
                "id": "224017",
                "values": [
                    "test 1587459230"
                ]
            },
            {
                "id": "202749",
                "values": [
                    "5.9"
                ]
            },
            {
                "id": "202869",
                "values": [
                    "512 GB"
                ]
            },
            {
                "id": "202829",
                "valuesIds": [
                    "202829_1"
                ]
            },
            {
                "id": "202685",
                "valuesIds": [
                    "202685_212929"
                ]
            },
            {
                "id": "127448",
                "valuesIds": [
                    "127448_2"
                ]
            },
            {
                "id": "202865",
                "valuesIds": [
                    "202865_214109"
                ]
            },
            {
                "id": "4388",
                "valuesIds": [
                    "4388_1"
                ]
            },
            {
                "id": "202717",
                "values": [
                    100
                ]
            },
            {
                "id": "219",
                "values": [
                    "Bluetooth"
                ]
            },
            {
                "id": "202821",
                "values": [
                    "Dual SIM"
                ]
            }
        ]
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "stock": {
        "available": 1
    }
}’

Przekaż EAN jako parametr

Przekaż numer EAN jako parametr w sekcji parameters:

 "product": {
  ...
  "parameters": [
     {
         "name": "EAN",
         "values": [
             "0744861045021",
             "0744861045022"
         ]
     },
     ...
  ]
  ...    

Za pomocą GET /sale/categories/{categoryId} sprawdź, czy w danej kategorii musisz przekazać numer EAN, gdy chcesz dodać produkt. Świadczy o tym wartość true w polu productEANRequired.

Struktura żądania na tym etapie może wyglądać następująco:

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
  "product": {
    "name":"Produkt testowy",
    "category":{
        "id":"258020"
     },
    "parameters":[{
                "name": "EAN",
                "values": [
                    "0744861045021"
                ]
            },
            {
                "id": "224017",
                "values": [
                    "test 1587459230"
                ]
            },
            {
                "id": "202749",
                "values": [
                    "5.9"
                ]
            },
            {
                "id": "202869",
                "values": [
                    "512 GB"
                ]
            },
            {
                "id": "202829",
                "valuesIds": [
                    "202829_1"
                ]
            },
            {
                "id": "202685",
                "valuesIds": [
                    "202685_212929"
                ]
            },
            {
                "id": "127448",
                "valuesIds": [
                    "127448_2"
                ]
            },
            {
                "id": "202865",
                "valuesIds": [
                    "202865_214109"
                ]
            },
            {
                "id": "4388",
                "valuesIds": [
                    "4388_1"
                ]
            },
            {
                "id": "202717",
                "values": [
                    100
                ]
            },
            {
                "id": "219",
                "values": [
                    "Bluetooth"
                ]
            },
            {
                "id": "202821",
                "values": [
                    "Dual SIM"
                ]
            }
        ]
},
  "sellingMode": {
    "price": {
      "amount": "220.85",
      "currency": "PLN"
    }
  },
  "stock": {
    "available": 1
  }
}’

Za pomocą GET /sale/categories/{categoryId} sprawdź, czy w danej kategorii musisz przekazać numer EAN, gdy chcesz dodać produkt. Świadczy o tym wartość true w polu productEANRequired.

Dodaj zdjęcia produktu

W sekcji images dodaj obrazki, które prezentują produkt. Zdjęcia mogą pochodzić z zewnętrznych serwerów:

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

Struktura żądania na tym etapie może wyglądać następująco:

Liczba zdjęć jest ograniczona w zależności od typu konta:

  • 16 dla kont firmowych,
  • 10 dla kont zwykłych.

Obowiązują te same zasady, jak dla zdjęć w ofercie.

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
    "product": {
        "name":"Produkt testowy",
            "category":{
                    "id":"258020"
            },
     "parameters":[{
                "name": "EAN",
                "values": [
                    "0744861045021"
                ]
            },
            {
                "id": "224017",
                "values": [
                    "test 1587459230"
                ]
            },
            {
                "id": "202749",
                "values": [
                    "5.9"
                ]
            },
            {
                "id": "202869",
                "values": [
                    "512 GB"
                ]
            },
            {
                "id": "202829",
                "valuesIds": [
                    "202829_1"
                ]
            },
            {
                "id": "202685",
                "valuesIds": [
                    "202685_212929"
                ]
            },
            {
                "id": "127448",
                "valuesIds": [
                    "127448_2"
                ]
            },
            {
                "id": "202865",
                "valuesIds": [
                    "202865_214109"
                ]
            },
            {
                "id": "4388",
                "valuesIds": [
                    "4388_1"
                ]
            },
            {
                "id": "202717",
                "values": [
                    100
                ]
            },
            {
                "id": "219",
                "values": [
                    "Bluetooth"
                ]
            },
            {
                "id": "202821",
                "values": [
                    "Dual SIM"
                ]
            }
        ],
        "images": [
            "https://...zewnetrzny-adres-pierwszego-obrazka.jpeg",
            "https://...zewnetrzny-adres-drugiego-obrazka.jpeg"
        ]
    },
    "sellingMode": {
        "price": {
            "amount": "220.85",
            "currency": "PLN"
        }
    },
    "stock": {
        "available": 1
    }
}’

Uzupełnij pozostałe dane wymagane do wystawienia oferty

Aby wystawić ofertę, to oprócz podstawowych danych opisujących produkt, musisz również uzupełnić:

Kliknij, żeby zobaczyć przykładowy request:
curl -X POST
‘https://api.allegro.pl/sale/product-offers’
-H 'Authorization: Bearer {token}'
-H 'Accept: application/vnd.allegro.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
   "product":{
      "name":"Produkt testowy",
      "category":{
         "id":"258020"
      },
      "parameters":[{
                "name": "EAN",
                "values": [
                    "0744861045021"
                ]
            },
            {
                "id": "224017",
                "values": [
                    "test 1587459230"
                ]
            },
            {
                "id": "202749",
                "values": [
                    "5.9"
                ]
            },
            {
                "id": "202869",
                "values": [
                    "512 GB"
                ]
            },
            {
                "id": "202829",
                "valuesIds": [
                    "202829_1"
                ]
            },
            {
                "id": "202685",
                "valuesIds": [
                    "202685_212929"
                ]
            },
            {
                "id": "127448",
                "valuesIds": [
                    "127448_2"
                ]
            },
            {
                "id": "202865",
                "valuesIds": [
                    "202865_214109"
                ]
            },
            {
                "id": "4388",
                "valuesIds": [
                    "4388_1"
                ]
            },
            {
                "id": "202717",
                "values": [
                    100
                ]
            },
            {
                "id": "219",
                "values": [
                    "Bluetooth"
                ]
            },
            {
                "id": "202821",
                "values": [
                    "Dual SIM"
                ]
            }
        ],
      "images":[   
    "https://...zewnetrzny-adres-pierwszego-obrazka.jpeg",
    "https://...zewnetrzny-adres-drugiego-obrazka.jpeg"
   ]
   },
"parameters":[                                                     
      {
         "id":"11323",
         "valuesIds":[
            "11323_2"
         ]
      }
   ],
   "images": ["https://testowy-adres.com/obrazek.jpg"],
   "sellingMode":{
      "price":{
         "amount":"12.43",
         "currency":"PLN"
      }
   },
   "stock":{
      "available": 10
   }
}’

Kliknij, żeby zobaczyć przykładowy response:
 {
    "id": "7678581025",                                         -- ID oferty
    "name": "Produkt testowy",                                  -- nazwa oferty
    "product": {
        "id": "2f771572-8302-4c09-b304-391f039e3195",           -- ID produktu
        "publication": {
            "status": "PROPOSED"                                -- status publikacji produktu.
                                                                Dostępne wartości to PROPOSED (utworzyliśmy
                                                                nową propozycję produktu i powiązaliśmy
                                                                z nim ofertę), LISTED (zidentyfikowaliśmy
                                                                produkt w naszej bazie i powiązaliśmy z nim
                                                                ofertę), NOT_LISTED (nie utworzyliśmy nowej
                                                                propozycji produktu i nie powiązaliśmy oferty z
                                                                żadnym produktem z naszej bazy, jednak
                                                                wystawiliśmy samą ofertę)
        }
    },
    "afterSalesServices": {                                     -- warunki dla oferty                       
        "impliedWarranty": {                                    -- informacje o reklamacji
            "id": "1377b0a6-b397-4e1e-b57c-4234bd84d036"
        },
        "returnPolicy": {                                       -- informacje o warunkach zwrotów
            "id": "e261d4ed-ced7-4c10-82cd-13aa26192895"
        },
        "warranty": null                                        -- informacje o gwarancji
    },
    "payments": {
        "invoice": "VAT"                                        -- informacje o fakturze
    },
    "sellingMode": {                        
        "format": "BUY_NOW",                                    -- format sprzedaży
        "price": {                                              
            "amount": 12.43,                                    -- cena przedmiotu
            "currency": "PLN"   
        },
        "startingPrice": null,
        "minimalPrice": null
    },
    "stock": {
        "available": 10,                                        -- liczba dostępnych sztuk
        "unit": "UNIT"
    },
    "location": {                                               -- miejsce, z którego paczka
                                                                zostanie wysłana
        "countryCode": "PL",
        "province": "WIELKOPOLSKIE",
        "city": "Poznań",
        "postCode": "60-166"
    },
    "delivery": {                                               -- informacje o dostawie
        "shippingRates": {
            "id": "0ef455de-fc6e-4d6e-a7c8-c22aecf0b914"        -- ID cennika dostawy
        },
        "handlingTime": "PT24H",                                -- czas wysyłki
        "additionalInfo": null                                  -- dodatkowe informacje o wysyłce
    },
    "publication": {
        "duration": null,                                       
        "status": "ACTIVE",                                     -- status publikacji oferty
        "endedBy": null,
        "endingAt": null,
        "startingAt": null,
        "republish": false
    },
    "description": null,                                        -- opis oferty
    "validation": {                                             -- informacje o błędach
        "errors": [],
        "warnings": [],
        "validatedAt": "2020-09-22T11:44:17.995Z"
    },
    "createdAt": "2020-09-22T11:44:17Z",                        -- data utworzenia oferty
    "updatedAt": "2020-09-22T11:44:17.995Z",                    -- data ostatniej aktualizacji
    "images": [                                                 
        "https://a.allegroimg.pl/original/11d57d/542133b14781a17f11041d8a5ca4",
        "https://a.allegroimg.pl/original/111c5f/03c9534448d98d63bd6810a54512"
    ],
    "external": null,
    "sizeTable": {
      "id": “5727b598-6608-4bd3-b198-f165b011bb69”
    },
    "tax": {
      "percentage": “23.00”
    }                                            
}

Jak edytować ofertę

Za pomocą PATCH /sale/product-offers/{offer-id} 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.
information

Ważne! Nie możesz zmienić przypisanego do oferty produktu wskazanego w polu product.id. Jeżeli przekażesz w polu product.id jakąkolwiek wartość lub null - zostanie ona zignorowana.

Przy edycji zapewniliśmy te same udogodnienia, które przy tworzeniu ofert daje POST /sale/product-offers, dlatego dzięki PATCH /sale/product-offers/{offer-id} 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).

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.beta.v2+json'
  -H 'Content-Type: application/vnd.allegro.beta.v2+json'
  -d ’{
  "sellingMode": {
     "price": {
       "amount": "50",
       "currency": "PLN"
    }
  }    
  }’

Kliknij, żeby zobaczyć przykładowy response:
  HTTP/1.1 200 OK
  {
    "id": "9531382307’",
    "name": "Przykładowa nazwa",
    "product": {
        "id": null,
        "publication": {
            "status": "NOT_LISTED"
        }
    },
    "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": {
        "percentage": null
    },
    "sizeTable": null
 }

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.beta.v2+json'
  -H 'Content-Type: application/vnd.allegro.beta.v2+json'
  -d ’{
    "publication": {
         "status": "ACTIVE"
     }
  }’

Kliknij, żeby zobaczyć przykładowy response:
  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",
    "product": {
        "id": null,
        "publication": {
            "status": "NOT_LISTED"
        }
    },
    "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": {
        "percentage": null
    },
    "sizeTable": null
 }

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.beta.v2+json'
  -H 'Content-Type: application/vnd.allegro.beta.v2+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.beta.v2+json'
  -H 'Content-Type: application/vnd.allegro.beta.v2+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.beta.v2+json'
  -H 'Content-Type: application/vnd.allegro.beta.v2+json

Kliknij, żeby zobaczyć przykładowy response:
'{
    "id": "9531382307",
    "name": "Przykładowa nazwa",
    "product": {
        "id": "21a0e252-aa3f-4666-9278-b0417743790f",
        "publication": {
            "status": "LISTED"
        }
    },
    "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
}'

Edytowanie pól oferty

Skorzystaj z PATCH /sale/product-offers/{offer-id} 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.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+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.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+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.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
   "stock": {
       "available": 2,
       "unit": "UNIT"
   }
}’

information

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.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
   "images": [
       "https://c.allegroimg.com/original/0587c4/1a7a1b46438da3de2cf8a328791a",
       "https://c.allegroimg.com/original/0587c4/1a7a1b46438da3de2cf8a328791b"
   ]
}’

Kliknij, żeby zobaczyć przykładowy response:
'{
    "id": "9531382307",
    "name": "Książka",
    "product": {
        "id": "21a0e252-aa3f-4666-9278-b0417743790f",
        "publication": {
            "status": "LISTED"
        }
    },
    "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
}'


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

Przykładowy request:

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

Zmiana statusu oferty

Dzięki PATCH /sale/product-offers/{offer-id} 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.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ’{
  "sellingMode": {
     "price": {
      "amount": "101",
      "currency": "PLN"
    }
  },
  "publication": {
        "status": "ENDED"
    }
}’

Gdy oferta została zakończona z powodu wyczerpania przedmiotów (w wyniku sprzedaży liczba sztuk spadła do 0), a status tej oferty ma wartość ENDED, to gdy edytujesz ofertę i podasz liczbę sztuk większą niż 0 (stock > 0) - oferta zostanie aktywowana.

information

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.beta.v2+json'
-H 'Content-Type: application/vnd.allegro.beta.v2+json'
-d ‘{
  "publication": {
        "status": "ACTIVE"
    }
}’