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

Do oferty automatycznie przypiszemy opis produktu. Możesz także dodać swój własny, który dotyczy konkretnego egzemplarza produktu wystawionego w ofercie. W tej sytuacji połączymy go z opisem produktowym.

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