Rabaty i promocje
Opis procesów, dzięki którym dowiesz się, jak efektywnie promować oferty przy wykorzystaniu dostępnych rabatów i promocji.
Rabaty i promocje
Dowiedz się, jak zarządzać dostępnymi rabatami i promocjami przez API Allegro.
Rabat na duże zamówienie
Rabat na duże zamówienie dla transakcji B2B (firma - firma) to rabat procentowy, którego wysokość zależy od wartości pojedynczego zamówienia. Rabatem zostaną objęte wszystkie twoje oferty.
Dodaj rabat
Aby utworzyć rabat na duże zamówienie, skorzystaj z POST /sale/loyalty/promotions i określ progi wartościowe pojedynczego zamówienia oraz przypadający dla nich rabat procentowy. Możesz utworzyć tylko jeden rabat na duże zamówienie.
Przykładowy request:
curl -X POST \
‘https://api.allegro.pl/sale/loyalty/promotions' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Content-Type: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}' \
-d '{
"benefits": [
{
"specification": {
"type": "LARGE_ORDER_DISCOUNT", // typ promocji (lista dostępnych wartości znajduje się w dokumentacji zasobu)
"thresholds": [ // progi rabatowe
{
"orderValue": {
"lowerBound": {
"amount": "1000.00", // wartość zamówienia
"currency": "PLN"
}
},
"discount": {
"percentage": "5" // wysokość rabatu (%)
}
},
{
"orderValue": {
"lowerBound": {
"amount": "1500.00",
"currency": "PLN"
}
},
"discount": {
"percentage": "8"
}
}
]
}
}
],
"offerCriteria": [
{
"type": "ALL_OFFERS" // rabatem zostaną objęte wszystkie oferty
}
]
}'W odpowiedzi otrzymasz identyfikator utworzonego rabatu.
Przykładowy response:
{
"id": "ba01f101-c9ef-4e5d-a88f-efb721bdbb9a", // identyfikator rabatu
"createdAt": "2020-10-27T06:31:29.36Z", // data utworzenia
"benefits": [
{
"specification": {
"thresholds": [
{
"orderValue": {
"lowerBound": {
"amount": "1000.00",
"currency": "PLN"
}
},
"discount": {
"percentage": "5"
}
},
{
"orderValue": {
"lowerBound": {
"amount": "1500.00",
"currency": "PLN"
}
},
"discount": {
"percentage": "8"
}
}
],
"type": "LARGE_ORDER_DISCOUNT"
}
}
],
"offerCriteria": [
{
"type": "ALL_OFFERS"
}
],
"status": "ACTIVE"
}Pobierz dostępne rabaty
GET /sale/loyalty/promotions zwraca listę wszystkich utworzonych na twoim koncie promocji. Aby otrzymać wyłącznie identyfikator rabatu na duże zamówienie, skorzystaj z filtra "promotionType=LARGE_DISCOUNT_ORDER".
Przykładowy request:
curl -X GET \
'https://api.allegro.pl/sale/loyalty/promotions?promotionType=LARGE_DISCOUNT_ORDER' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}'Przykładowy response:
{
"promotions": [
{
"id": "ba01f101-c9ef-4e5d-a88f-efb721bdbb9a", // identyfikator rabatu
"createdAt": "2020-10-27T06:31:29.36Z", // data utworzenia
"benefits": [
{
"specification": {
"thresholds": [
{
"orderValue": {
"lowerBound": {
"amount": "1000.00",
"currency": "PLN"
}
},
"discount": {
"percentage": "5"
}
},
{
"orderValue": {
"lowerBound": {
"amount": "1500.00",
"currency": "PLN"
}
},
"discount": {
"percentage": "8"
}
}
],
"type": "LARGE_ORDER_DISCOUNT"
}
}
],
"offerCriteria": [
{
"type": "ALL_OFFERS"
}
],
"status": "ACTIVE"
}
],
"totalCount": 1
}Pobierz informacje o rabacie
Jeżeli chcesz pobrać szczegółowe informacje o rabacie na duże zamówienie, użyj GET /sale/loyalty/promotions/{promotionId}.
Przykładowy request:
curl -X GET \
'https://api.allegro.pl/sale/loyalty/promotions/ba01f101-c9ef-4e5d-a88f-efb721bdbb9a' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}'Przykładowy response:
{
"id": "ba01f101-c9ef-4e5d-a88f-efb721bdbb9a", // identyfikator rabatu
"createdAt": "2020-10-27T06:31:29.36Z", // data utworzenia
"benefits": [
{
"specification": {
"thresholds": [ // progi rabatowe
{
"orderValue": {
"lowerBound": {
"amount": "1000.00", // wartość zamówienia
"currency": "PLN"
}
},
"discount": {
"percentage": "5" // wysokość rabatu (%)
}
},
{
"orderValue": {
"lowerBound": {
"amount": "1500.00",
"currency": "PLN"
}
},
"discount": {
"percentage": "8"
}
}
],
"type": "LARGE_ORDER_DISCOUNT",
}
}
],
"offerCriteria": [
{
"type": "ALL_OFFERS" // rabatem objęte są wszystkie twoje oferty
}
],
"status": "ACTIVE"
}Edytuj progi rabatowe
Dla rabatu na duże zamówienie udostępniliśmy opcję edycji progów wartościowych zamówienia oraz wysokości przyznanego rabatu. Skorzystaj z PUT /sale/loyalty/promotions/{promotionId}, aby zmienić ustawienia rabatu.
Przykładowy request:
curl -X PUT \
'https://api.allegro.pl/sale/loyalty/promotions/ba01f101-c9ef-4e5d-a88f-efb721bdbb9a' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Content-Type: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}' \
-d '{
"id": "ba01f101-c9ef-4e5d-a88f-efb721bdbb9a",
"benefits": [
{
"specification": {
"type": "LARGE_ORDER_DISCOUNT",
"thresholds": [
{
"orderValue": {
"lowerBound": {
"amount": "2000.00",
"currency": "PLN"
}
},
"discount": {
"percentage": "10"
}
},
{
"orderValue": {
"lowerBound": {
"amount": "3000.00",
"currency": "PLN"
}
},
"discount": {
"percentage": "15"
}
}
]
}
}
],
"offerCriteria": [
{
"type": "ALL_OFFERS"
}
]
}'Usuń rabat
Aby usunąć rabat na duże zamówienie, skorzystaj z DELETE /sale/loyalty/promotions/{promotionId}. Operacja ta usunie rabat ze wszystkich twoich ofert - jej czas wykonania zależy od liczby ofert, które posiadasz.
Przykładowy request:
curl -X DELETE \
‘https://api.allegro.pl/sale/loyalty/promotions/ba01f101-c9ef-4e5d-a88f-efb721bdbb9a' \
-H ‘Accept: application/vnd.allegro.public.v1+json’ \
-H ‘Authorization: Bearer {token}’Przykładowy response:
status 204 No ContentCenniki hurtowe
Dzięki cennikom hurtowym zaoferujesz rabat dla transakcji B2B (firma - firma). Będzie to rabat procentowy, którego wysokość zależy od liczby zakupionych przedmiotów w ofercie.
Dodaj cennik hurtowy
Aby utworzyć cennik hurtowy, skorzystaj z POST /sale/loyalty/promotions i określ progi ilościowe oraz przypadający dla nich rabat procentowy.
Przykładowy request:
curl -X POST \
'https://api.allegro.pl/sale/loyalty/promotions' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Content-Type: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}' \
-d '{
"benefits": [
{
"specification": {
"type": "WHOLESALE_PRICE_LIST", // typ promocji (lista dostępnych wartości znajduje się w dokumentacji zasobu)
"name": "Cennik hurtowy nr 1", // nazwa cennika
"thresholds": [ // progi rabatowe
{
"quantity": { // minimalna liczba zakupionych przedmiotów
"lowerBound": 5
},
"discount": { // wysokość rabatu (%)
"percentage": "5"
}
},
{
"quantity": {
"lowerBound": 10
},
"discount": {
"percentage": "8"
}
}
]
}
}
],
"offerCriteria": [
{
"type": "OFFERS_ASSIGNED_EXTERNALLY" // oferty przypiszesz za pomocą PUT /sale/offer-modification-commands/{commandId}
}
]
}'W odpowiedzi otrzymasz identyfikator utworzonego cennika.
Przykładowy response:
{
"id": "9de4be5d-9c60-48aa-8711-363625c9d793", // identyfikator cennika
"createdAt": "2020-08-13T06:08:06.011Z", // data utworzenia
"benefits": [
{
"specification": {
"name": "Cennik hurtowy nr 1",
"thresholds": [
{
"quantity": {
"lowerBound": 5
},
"discount": {
"percentage": "5"
}
},
{
"quantity": {
"lowerBound": 10
},
"discount": {
"percentage": "8"
}
}
],
"type": "WHOLESALE_PRICE_LIST"
}
}
],
"offerCriteria": [
{
"type": "OFFERS_ASSIGNED_EXTERNALLY"
}
],
"status": "ACTIVE"
}Przypisz oferty do cennika
Cennik hurtowy przypiszesz do wybranych ofert za pomocą zasobu do grupowych zmian w ofercie - PUT /sale/offer-modification-commands/{commandId}.
Przykładowy request:
curl -X PUT \
'https://api.allegro.pl/sale/offer-modification-commands/daccd266-fa5e-4a6b-a10b-d24836c411e1' \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Content-Type: application/vnd.allegro.public.v1+json' \
-d '{
"modification": {
"discounts": { // typ zmiany
"wholesalePriceList": {
"id": "9de4be5d-9c60-48aa-8711-363625c9d793" // identyfikator cennika
}
}
},
"offerCriteria": [
{
"offers": [
{
"id": "9292002929" // identyfikator oferty
},
{
"id": "9876543210"
}
],
"type": "CONTAINS_OFFERS"
}
]
}'Cennik hurtowy dodasz do pojedynczej oferty podczas wystawiania (POST /sale/product-offers) lub edycji oferty (PATCH /sale/product-offers/{offerId}) przekazując jego identyfikator w polu wholesalePriceList.id w sekcji discounts.
…
"discounts": {
"wholesalePriceList": {
"id": "5637592a-0a24-4771-b527-d89b2767d821"
}
},
…Jeżeli chcesz usunąć powiązanie ofert z wybranym cennikiem hurtowym, to jako identyfikator cennika podaj wartość null.
Przykładowy request:
curl -X PUT \
'https://api.allegro.pl/sale/offer-modification-commands/daccd266-fa5e-4a6b-a10b-d24836c411e1' \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Content-Type: application/vnd.allegro.public.v1+json' \
-d '{
"modification": {
"discounts": {
"wholesalePriceList": {
"id": null
}
}
},
"offerCriteria": [
{
"offers": [
{
"id": "9292002929"
},
{
"id": "9876543210"
}
],
"type": "CONTAINS_OFFERS"
}
]
}'Pobierz dostępne cenniki
GET /sale/loyalty/promotions zwraca listę wszystkich utworzonych na twoim koncie promocji. Aby otrzymać wyłącznie listę cenników hurtowych, skorzystaj z filtra "promotionType=WHOLESALE_PRICE_LIST".
Przykładowy request:
curl -X GET \
'https://api.allegro.pl/sale/loyalty/promotions?promotionType=WHOLESALE_PRICE_LIST' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}'Przykładowy response:
{
"promotions": [
{
"id": "9de4be5d-9c60-48aa-8711-363625c9d793", // identyfikator cennika
"createdAt": "2020-08-13T06:08:06.011Z", // data utworzenia
"benefits": [
{
"specification": {
"name": "Cennik hurtowy nr 1", // nazwa cennika
"thresholds": [ // progi rabatowe
{
"quantity": { // minimalna ilość zakupionych przedmiotów
"lowerBound": 5
},
"discount": { // wysokość rabatu (%)
"percentage": "5"
}
},
{
"quantity": {
"lowerBound": 10
},
"discount": {
"percentage": "8"
}
}
],
"type": "WHOLESALE_PRICE_LIST"
}
}
],
"offerCriteria": [
{
"type": "OFFERS_ASSIGNED_EXTERNALLY"
}
],
"status": "ACTIVE"
},
{
"id": "8d389509-18ac-4d66-957a-0124b26864fb",
"createdAt": "2020-08-13T06:03:32.649Z",
"benefits": [
{
"specification": {
"name": "Cennik hurtowy nr 2",
"thresholds": [
{
"quantity": {
"lowerBound": 20
},
"discount": {
"percentage": "5"
}
},
{
"quantity": {
"lowerBound": 40
},
"discount": {
"percentage": "10"
}
},
{
"quantity": {
"lowerBound": 60
},
"discount": {
"percentage": "15"
}
}
],
"type": "WHOLESALE_PRICE_LIST"
}
}
],
"offerCriteria": [
{
"type": "OFFERS_ASSIGNED_EXTERNALLY"
}
],
"status": "ACTIVE"
}
],
"totalCount": 2
}Pobierz informacje o cenniku
Jeżeli chcesz pobrać szczegółowe informacje o wybranym cenniku, użyj GET /sale/loyalty/promotions/{promotionId}.
Przykładowy request:
curl -X GET \
'https://api.allegro.pl/sale/loyalty/promotions/9de4be5d-9c60-48aa-8711-363625c9d793' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}'Przykładowy response:
{
"id": "9de4be5d-9c60-48aa-8711-363625c9d793", // identyfikator cennika
"createdAt": "2020-08-13T06:08:06.011Z", // data utworzenia
"benefits": [
{
"specification": {
"name": "Cennik hurtowy nr 1", // nazwa cennika
"thresholds": [ // progi rabatowe
{
"quantity": { // minimalna liczba zakupionych przedmiotów
"lowerBound": 5
},
"discount": { // wysokość rabatu (%)
"percentage": "5"
}
},
{
"quantity": {
"lowerBound": 10
},
"discount": {
"percentage": "8"
}
}
],
"type": "WHOLESALE_PRICE_LIST"
}
}
],
"offerCriteria": [
{
"type": "OFFERS_ASSIGNED_EXTERNALLY"
}
],
"status": "ACTIVE"
}Edytuj cennik
Dla cenników hurtowych udostępniliśmy opcję ich edycji. Skorzystaj z PUT /sale/loyalty/promotions/{promotionId}, aby zmienić ustawienia cennika.
Przykładowy request:
curl -X PUT \
'https://api.allegro.pl/sale/loyalty/promotions/9de4be5d-9c60-48aa-8711-363625c9d793' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Content-Type: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}' \
-d '{
"id": "9de4be5d-9c60-48aa-8711-363625c9d793",
"benefits": [
{
"specification": {
"name": "Cennik hurtowy nr 1",
"thresholds": [
{
"quantity": {
"lowerBound": 10
},
"discount": {
"percentage": "10"
}
},
{
"quantity": {
"lowerBound": 20
},
"discount": {
"percentage": "20"
}
}
],
"type": "WHOLESALE_PRICE_LIST"
}
}
],
"offerCriteria": [
{
"type": "OFFERS_ASSIGNED_EXTERNALLY"
}
],
"status": "ACTIVE"
}’Usuń cennik
Aby usunąć cennik hurtowy, skorzystaj z DELETE /sale/loyalty/promotions/{promotionId}. Operacja ta jednocześnie odepnie cennik od wszystkich powiązanych ofert.
Przykładowy request:
curl -X DELETE \
'https://api.allegro.pl/sale/loyalty/promotions/9de4be5d-9c60-48aa-8711-363625c9d793' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}'Przykładowy response:
status 204 No ContentRabaty ilościowe
Dzięki rabatom ilościowym możesz zaoferować kupującym rabat na kolejną sztukę, przy zakupie określonej liczby sztuk na jednej bądź wielu ofertach. Więcej na ten temat znajdziesz tutaj.
Dodaj rabat ilościowy
Za pomocą POST /sale/loyalty/promotions dodasz nowy rabat ilościowy. Musisz być zautoryzowany jako sprzedawca, który wystawił te oferty.
Przykładowy request:
curl -X POST \
'https://api.allegro.pl/sale/loyalty/promotions' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Content-Type: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}' \
-d '{
"benefits": [{ // wymagane, określa jakie benefity otrzyma kupujący
"specification": {
"type": "UNIT_PERCENTAGE_DISCOUNT", // wymagane, typ benefitu, obecnie dostępne są dwie wartości UNIT_PERCENTAGE_DISCOUNT (określa procentowy rabat jaki otrzyma kupujący na daną sztukę produktu);
"configuration": {
"percentage": "30" // wymagane, podaj o jaki procent chcesz obniżyć wartość zestawu. Na tej podstawie wyliczymy jego cenę. Minimalna wartość rabatu to 15%, a maksymalna 100%.
},
"trigger": {
"forEachQuantity": "3", // wymagane, podaj co który przedmiot ma podlegać obniżce. Rabat ilościowy dodasz tylko na co 2, 3, 4 bądź 5 sztukę
"discountedNumber": "1" // wymagane, obecnie jest dostępna tylko jedna wartość 1
}
}
}],
"offerCriteria": [{
"type": "CONTAINS_OFFERS", // wymagane, obecnie dostępna jest jedna wartość CONTAINS_OFFERS (określa jakie oferty wchodzą w skład zestawu)
"offers": [{ // wymagane, oferty, które wchodzą w skład zestawu, bądź rabatu ilościowego
"id": "6205628150" // wymagane, identyfikator oferty. Rabatu ilościowego nie dodasz do ofert ze strefy okazji. Jeśli chcesz dodać rabat ilościowy na jednej ofercie podaj tutaj id jednej wybranej oferty. Jeśli podasz wiele id ofert ustawisz rabat ilościowy na wielu ofertach.
},
{
"id": "6205628489"
},
{
"id": "6205628082"
},
{
"id": "6205628361"
}]
}]
}'Przykładowy response:
{
"id": "1ec57865-7e15-46f2-b70a-27ea857dd21c", // identyfikator utworzonego rabatu, użyj go w zasobach GET, DELETE jako {promotionId}
"createdAt": "2018-10-08T09:28:28.951Z",
"benefits": [
{
"specification": {
"configuration": {
"percentage": "30" // procentowy rabat jaki otrzyma kupujący na daną sztukę produktu
},
"trigger": {
"forEachQuantity": 3, // co który przedmiot ma podlegać obniżce
"discountedNumber": 1
},
"type": "UNIT_PERCENTAGE_DISCOUNT"
}
}
],
"offerCriteria": [
{
"offers": [
{
"id": "6205628150", // numer oferty, która wchodzi w skład rabatu ilościowego na wielu ofertach
"quantity": null, // pole używane dla zestawów ofert - liczba sztuk danej oferty wchodząca w skład zestawu
"promotionEntryPoint": null // pole używane dla zestawów ofert - określ, czy na stronie tej oferty mamy wyświetlać zestaw
},
{
"id": "6205628489",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628150",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628082",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628361",
"quantity": null,
"promotionEntryPoint": null
}],
"type": "CONTAINS_OFFERS"
}
],
"status": "ACTIVE",
"campaigns": null
}Pobierz dostępne rabaty ilościowe
Za pomocą GET /sale/loyalty/promotions pobierzesz informacje o swoich promocjach. Aby wyfiltrować dostępne rabaty skorzystaj z dostępnych opcji:
- MULTIPACK - rabaty ilościowe na pojedynczej ofercie,
- CROSSMULTIPACK - rabat ilościowy na wielu ofertach.
Poniżej przykłady wywołań filtrów:
- wyszukaj informacje o rabatach ilościowych na pojedynczej ofercie: GET /sale/loyalty/promotions?promotionType=MULTIPACK;
- wyszukaj informacje o promocjach przypisanych do danej oferty: GET /sale/loyalty/promotions?offer.id={offerId}.
Przykładowy request:
curl -X GET \
'https://api.allegro.pl/sale/loyalty/promotions' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}'Przykładowy response:
{
"promotions": [
{
"id": "1ec57865-7e15-46f2-b70a-27ea857dd21c", // identyfikator utworzonego rabatu, użyj go w zasobach GET, DELETE jako {promotionId}
"createdAt": "2018-10-08T09:28:28.951Z",
"benefits": [
{
"specification": {
"configuration": {
"percentage": "30"
},
"trigger": {
"forEachQuantity": 3,
"discountedNumber": 1
},
"type": "UNIT_PERCENTAGE_DISCOUNT"
}
}
],
"offerCriteria": [
{
"offers": [
{
"id": "6205628150",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628489",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628150",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628082",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628361",
"quantity": null,
"promotionEntryPoint": null
}]
"type": "CONTAINS_OFFERS"
}
],
"status": "ACTIVE",
"campaigns": null
}
{
"id": "3329980c-e0d4-11e8-9f32-f2801f1b9fd1",
"createdAt": "2018-10-08T08:28:28.951Z",
"benefits": [
{
"specification": {
"configuration": {
"percentage": "50"
},
"trigger": {
"forEachQuantity": 3,
"discountedNumber": 1
},
"type": "UNIT_PERCENTAGE_DISCOUNT"
}
}
],
"offerCriteria": [
{
"offers": [
{
"id": "6205628154",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205627489",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205626150",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628762",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628337",
"quantity": null,
"promotionEntryPoint": null
}],
"type": "CONTAINS_OFFERS"
}
],
"status": "ACTIVE",
"campaigns": null
}
],
"totalCount": 2
}Pobierz informacje o rabacie ilościowym
Za pomocą GET /sale/loyalty/promotions/{promotionId} pobierzesz informacje o danej promocji z rabatem ilościowym, w ramach jednego {promotionId}. Musisz być zautoryzowany jako sprzedawca, który dodał tą promocję.
Przykładowy request:
curl -X GET \
'https://api.allegro.pl/sale/loyalty/promotions/{promotionId}' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}'Przykładowy response:
{
"id": "1ec57865-7e15-46f2-b70a-27ea857dd21c", // identyfikator utworzonego rabatu, użyj go w zasobach GET, DELETE jako {promotionId}
"createdAt": "2018-10-08T09:28:28.951Z",
"benefits": [
{
"specification": {
"configuration": {
"percentage": "30"
},
"trigger": {
"forEachQuantity": 3,
"discountedNumber": 1
},
"type": "UNIT_PERCENTAGE_DISCOUNT"
}
}
],
"offerCriteria": [
{
"offers": [
{
"id": "6205628150",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628489",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628150",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628082",
"quantity": null,
"promotionEntryPoint": null
},
{
"id": "6205628361",
"quantity": null,
"promotionEntryPoint": null
}],
"type": "CONTAINS_OFFERS"
}
],
"status": "ACTIVE",
"campaigns": null
}Usuń rabat ilościowy
Za pomocą DELETE /sale/loyalty/promotions/{promotionId} usuniesz wybrany rabat ilościowy.
Przykładowy request:
curl -X DELETE \
'https://api.allegro.pl/sale/loyalty/promotions/{promotionId}' \
-H 'Content-Type: application/vnd.allegro.public.v1+json' \
-H 'Authorization: Bearer {token}'Przykładowy response:
status 204 No ContentRabat obrotowy
Rabat obrotowy to rodzaj rabatu, który wspiera długotrwałą relację pomiędzy firmami na Allegro. Sprzedający wprowadza go na cały swój asortyment, z intencją lojalizacji swoich klientów B2B w ramach atrakcyjnej formy zakupów firmowych. Uruchomienie rabatu wiąże się z gotowością do aktywacji zniżek dla kupujących, które - gdy kupujący spełni określone warunki - będą funkcjonować przez pełen miesiąc kalendarzowy następujący po okresie kumulacji obrotu o wysokości upoważniającej do odbioru zniżki. Obecnie funkcjonalność dostępna jest wyłącznie w serwisie “allegro-business-cz”.
Utwórz lub edytuj rabat obrotowy
Za pomocą PUT /sale/turnover-discount/{marketplaceId} utworzysz lub edytujesz rabat obrotowy. Jako parametr {marketplaceId} przekaż identyfikator wybranego serwisu. Obecnie rabat obrotowy obsługujemy wyłącznie w domenie “allegro-business-cz”. Możesz ustawić maksymalnie 4 progi rabatowe.
Ważne! Rabat obrotowy utworzony w danym miesiącu jest podatny na zmiany tylko do końca tego miesiąca. Po tym czasie, rabat obrotowy staje się dostępny dla użytkowników i nie można go już modyfikować. Modyfikacja rabatu od obrotu w takim przypadku spowoduje utworzenie nowej definicji rabatu. Ta nowa definicja stanie się dostępna dla użytkowników na tej samej zasadzie, co poprzednio utworzona, z początkiem następnego miesiąca. Analogicznie, nowo utworzona definicja może być modyfikowana tylko do końca miesiąca.
Przykładowy request:
curl -X PUT \
'https://api.allegro.pl/sale/turnover-discount/allegro-business-cz' \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Content-Type: application/vnd.allegro.public.v1+json' \
-d '{
"thresholds": [ // progi rabatowe, max 4
{
"minimumTurnover": { // minimalny obrót
"amount": "1000", // kwota
"currency": "CZK" // waluta
},
"discount": { // rabat
"percentage": "5" // wysokość rabatu w procentach
}
},
{
"minimumTurnover": {
"amount": "2500",
"currency": "CZK"
},
"discount": {
"percentage": "10"
}
},
{
"minimumTurnover": {
"amount": "5000",
"currency": "CZK"
},
"discount": {
"percentage": "20"
}
}
]
}'Przykładowy response:
{
"marketplaceId": "allegro-business-cz", // identyfikator serwisu
"status": "ACTIVATING", // status rabatu, dostępne wartości: ACTIVATING, ACTIVE, DEACTIVATING
"definitions": [ // definicje rabatów
{
"cumulatingFromDate": "2025-02-01", // data początkowa kumulacji obrotów
"cumulatingToDate": null, // data końcowa kumulacji obrotów
"spendingFromDate": "2025-03-01", // data początkowa stosowania rabatu z tej definicji na podstawie skumulowanego obrotu
"spendingToDate": null, // data końcowa stosowania rabatu z tej definicji na podstawie skumulowanego obrotu
"createdAt": "2025-01-06T18:57:17.336Z", // data utworzenia definicji rabatu
"updatedAt": "2025-01-06T18:57:17.336Z", // data ostatniej zmiany definicji rabatu
"thresholds": [ // progi rabatowe
{
"minimumTurnover": { // minimalny obrót
"amount": "1000", // kwota
"currency": "CZK" // waluta
},
"discount": { // rabat
"percentage": "5" // wysokość rabatu w procentach
}
},
{
"minimumTurnover": {
"amount": "2500",
"currency": "CZK"
},
"discount": {
"percentage": "10"
}
},
{
"minimumTurnover": {
"amount": "5000",
"currency": "CZK"
},
"discount": {
"percentage": "20"
}
}
]
}
]
}Pobierz listę rabatów obrotowych
Skorzystaj z GET /sale/turnover-discount, aby pobrać listę rabatów obrotowych zautoryzowanego użytkownika. Możesz skorzystać z parametru “marketplaceId” by otrzymać listę wyłącznie dla wybranego serwisu.
Ważne! Może istnieć wiele (maksymalnie 3) definicji rabatu zwróconych dla każdego rynku. Tylko jedna definicja może być kumulowana i tylko jedna definicja może być stosowana w tym samym czasie - odpowiednie okresy z różnych definicji nie będą się pokrywać.
Przykładowy request:
curl -X GET \
'https://api.allegro.pl/sale/turnover-discount' \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json' \Przykładowy response:
[
{
"marketplaceId": "allegro-business-cz", // identyfikator serwisu
"status": "ACTIVATING", // status rabatu, dostępne wartości: ACTIVATING, ACTIVE, DEACTIVATING
"definitions": [ // definicje rabatów
{
"cumulatingFromDate": "2025-02-01", // data początkowa kumulacji obrotów
"cumulatingToDate": null, // data końcowa kumulacji obrotów
"spendingFromDate": "2025-03-01", // data początkowa stosowania rabatu z tej definicji na podstawie skumulowanego obrotu
"spendingToDate": null, // data końcowa stosowania rabatu z tej definicji na podstawie skumulowanego obrotu
"createdAt": "2025-01-06T18:57:17.336Z", // data utworzenia definicji rabatu
"updatedAt": "2025-01-06T18:57:17.336Z", // data ostatniej zmiany definicji rabatu
"thresholds": [ // progi rabatowe
{
"minimumTurnover": { // minimalny obrót
"amount": "1000", // kwota
"currency": "CZK" // waluta
},
"discount": { // rabat
"percentage": "5" // wysokość rabatu w procentach
}
},
{
"minimumTurnover": {
"amount": "2500",
"currency": "CZK"
},
"discount": {
"percentage": "10"
}
},
{
"minimumTurnover": {
"amount": "5000",
"currency": "CZK"
},
"discount": {
"percentage": "20"
}
}
]
}
]
}
]Deaktywuj rabat obrotowy
Za pomocą PUT /sale/turnover-discount/{marketplaceId}/deactivate deaktywujesz rabat obrotowy dla wybranego serwisu. Jako parametr “marketplaceId” musisz przekazać identyfikator danego serwisu.
Ważne! Rabat obrotowy przestanie być naliczany wraz z końcem bieżącego miesiąca. Rabat oparty na skumulowanym obrocie przestanie być stosowany z końcem następnego miesiąca. Następnie rabat zostanie całkowicie dezaktywowany. Podczas dezaktywacji rabatu, który ma status “ACTIVATING”, rabat obrotowy jest dezaktywowany natychmiast.
Przykładowy request:
curl -X PUT \
'https://api.allegro.pl/sale/turnover-discount/allegro-business-cz/deactivate' \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Content-Type: application/vnd.allegro.public.v1+json' \Przykładowy response: (jeżeli wcześniejszy status=ACTIVE)
{
"marketplaceId": "allegro-business-cz", // identyfikator serwisu
"status": "DEACTIVATING", // status rabatu, dostępne wartości: ACTIVATING, ACTIVE, DEACTIVATING
"definitions": [ // definicje rabatów
{
"cumulatingFromDate": "2024-10-01", // data początkowa kumulacji obrotów
"cumulatingToDate": "2025-01-31", // data końcowa kumulacji obrotów
"spendingFromDate": "2024-11-01", // data początkowa stosowania rabatu z tej definicji na podstawie skumulowanego obrotu
"spendingToDate": "2025-02-28", // data końcowa stosowania rabatu z tej definicji na podstawie skumulowanego obrotu
"createdAt": "2024-09-17T10:12:32.321Z", // data utworzenia definicji rabatu
"updatedAt": "2025-01-04T13:53:47.264Z", // data ostatniej zmiany definicji rabatu
"thresholds": [ // progi rabatowe
{
"minimumTurnover": { // minimalny obrót
"amount": "1000", // kwota
"currency": "CZK" // waluta
},
"discount": { // rabat
"percentage": "5" // wysokość rabatu w procentach
}
},
{
"minimumTurnover": {
"amount": "2500",
"currency": "CZK"
},
"discount": {
"percentage": "10"
}
},
{
"minimumTurnover": {
"amount": "5000",
"currency": "CZK"
},
"discount": {
"percentage": "20"
}
}
]
}
]
}Przykładowy response: (jeżeli wcześniejszy status=ACTIVATING)
204 No contentZestawy elastyczne
Zestawy elastyczne to połączenie ofert podzielone na tzw. sloty (grupy produktowe), z których kupujący może samodzielnie wybierać interesujące go produkty. W ten sposób uatrakcyjnisz ofertę i zachęcisz kupujących do większych zakupów, dając im możliwość personalizacji zestawu.
Reguły walidacji i wymagania biznesowe
Podczas tworzenia lub aktualizacji zestawu elastycznego weryfikujemy następujące reguły:
- Liczba slotów: Zestaw musi się składać z minimalnie 2, a maksymalnie 6 slotów.
- Kolejność slotów: Wartość
orderdla każdego slotu musi być unikalna (od 0 do 5). - Pojemność slotu: W jednym slocie możesz umieścić maksymalnie 30 różnych ofert.
- Spójność kategorii: Wszystkie oferty w ramach jednego slotu muszą należeć do tego samego liścia kategorii (najniższego poziomu w drzewie kategorii).
- Punkt wejścia (Entrypoint): Co najmniej jeden slot w zestawie musi być oznaczony jako punkt wejścia (
entryPoint: true). - Unikalność ofert: Dana oferta może być użyta w zestawie tylko raz (nie może powtarzać się w kilku slotach).
- Status ofert: Możesz użyć wyłącznie ofert, które są aktywne na co najmniej jednym serwisie (marketplace).
- Ograniczenia asortymentu: W zestawach nie można wykorzystywać ofert B2B, ofert z ograniczeniem wiekowym (np. alkohol), wielu ofert reprezentujących ten sam produkt oraz łączyć ofert zwykłych z ofertami One Fulfillment.
Utwórz zestaw elastyczny
Za pomocą POST /sale/flexible-bundles utworzysz nowy zestaw elastyczny. Jeśli nie chcesz ustawiać rabatu, w polu discount przekaż null. Możesz ustawić rabat procentowy na cały zestaw (WHOLE_BUNDLE_DISCOUNT) lub określić zniżki dla konkretnych slotów (SLOT_DISCOUNT).
Przykładowy request:
curl -X POST \
'https://api.allegro.pl/sale/flexible-bundles' \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Content-Type: application/vnd.allegro.public.v1+json' \
-d '{
"slots": [ // sloty w zestawie
{
"order": 0, // kolejność slotu
"entryPoint": true, // czy slot będzie punktem wejścia na stronie oferty
"requiredQuantity": 1, // wymagana liczba sztuk z tego slotu w zestawie
"offers": [ // oferty przypisane do slotu
{
"id": "12345678", // identyfikator oferty
"excludedFromDiscount": false // czy oferta jest wyłączona z naliczania rabatu
},
{
"id": "23456789",
"excludedFromDiscount": false
}
]
},
{
"order": 1,
"entryPoint": false,
"requiredQuantity": 1,
"offers": [
{
"id": "34567890",
"excludedFromDiscount": false
}
]
}
],
"discount": { // konfiguracja rabatu
"type": "WHOLE_BUNDLE_DISCOUNT", // typ rabatu: WHOLE_BUNDLE_DISCOUNT lub SLOT_DISCOUNT
"bundle": {
"minimumBoughtOffers": 2, // minimalna liczba zakupionych ofert do naliczenia rabatu
"discounts": [ // zniżki per rynek
{
"marketplaceId": "allegro-pl", // identyfikator serwisu
"percentage": 10 // wartość rabatu w procentach
},
{
"marketplaceId": "allegro-cz",
"percentage": 15
}
]
},
"slot": null
}
}'Przykładowy response:
{
"id": "bac2128a-ec95-4d19-a241-d8be7001b8b8", // identyfikator zestawu
"createdAt": "2026-06-08T12:00:00.000Z", // data utworzenia zestawu
"createdBy": "USER", // kto utworzył zestaw: USER, ALLEGRO
"slots": [
{
"id": "bac2128a-ec95-4d19-a241-d8be7001b8bc", // identyfikator slotu
"order": 0,
"entryPoint": true,
"requiredQuantity": 1,
"offers": [
{
"id": "12345678",
"excludedFromDiscount": false,
"entryPoint": true,
"marketplaces": [ // dostępność oferty w zestawach per serwis
{
"id": "allegro-pl",
"availability": {
"available": true, // czy oferta jest dostępna do zakupu w zestawie
"reasons": [] // ewentualne powody niedostępności
}
},
{
"id": "allegro-cz",
"availability": {
"available": false,
"reasons": ["STOCK_NOT_SUFFICIENT"] // np. niewystarczający stan magazynowy
}
}
]
}
]
}
],
"discount": {
"type": "WHOLE_BUNDLE_DISCOUNT",
"bundle": {
"minimumBoughtOffers": 2,
"discounts": [
{
"marketplaceId": "allegro-pl",
"percentage": 10
}
]
},
"slot": null
}
}Uwaga: Podczas tworzenia zestawu automatycznie wyliczamy dostępność każdej oferty na poszczególnych rynkach (marketplaces). Jeśli oferta nie może być kupiona w zestawie, powód niedostępności zwrócimy w tablicy reasons.
Pobierz listę zestawów elastycznych
Za pomocą GET /sale/flexible-bundles pobierzesz listę zestawów elastycznych zautoryzowanego użytkownika. Odpowiedź zwraca uproszczoną strukturę z listą reprezentantów ofert dla każdego slotu.
Aby dostosować listę do swoich potrzeb, możesz skorzystać z parametrów:
limit– maksymalna liczba zestawów na liście, max 1000;offer.id– pozwala filtrować zestawy zawierające ofertę o podanym id;page.id– identyfikator kolejnej strony listy prezentującej zestawy ofert.
Przykładowy request:
curl -X GET \
'https://api.allegro.pl/sale/flexible-bundles?limit=20' \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json'Przykładowy response:
{
"bundles": [ // lista zestawów
{
"id": "bac2128a-ec95-4d19-a241-d8be7001b8b8", // identyfikator zestawu
"createdAt": "2026-06-08T12:00:00.000Z",
"createdBy": "USER",
"slotsRepresentatives": [ // lista ID ofert reprezentujących poszczególne sloty
"12345678",
"34567890"
],
"discount": {
"type": "WHOLE_BUNDLE_DISCOUNT",
"bundle": {
"minimumBoughtOffers": 2,
"discounts": [
{
"marketplaceId": "allegro-pl",
"percentage": 10
}
]
},
"slot": null
}
}
],
"nextPage": { // identyfikator kolejnej strony
"id": "eyJsYXN0SWQiOiJidW5kbGUtNzg5In0="
}
}Pobierz szczegóły wybranego zestawu
Skorzystaj z GET /sale/flexible-bundles/{bundleId}, aby pobrać pełne szczegóły oraz kompletną strukturę wybranego zestawu elastycznego.
Przykładowy request:
curl -X GET \
'https://api.allegro.pl/sale/flexible-bundles/bac2128a-ec95-4d19-a241-d8be7001b8b8' \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json'Aktualizuj wybrany zestaw elastyczny
Skorzystaj z PUT /sale/flexible-bundles/{bundleId}, aby zmienić strukturę, oferty lub rabaty w wybranym zestawie elastycznym. Spowoduje to całkowite zastąpienie aktualnej konfiguracji. Pamiętaj, aby przy modyfikacji istniejących już slotów przekazać ich dotychczasowe id – przekazanie wartości null utworzy nowy slot w zestawie.
Przykładowy request:
curl -X PUT \
'https://api.allegro.pl/sale/flexible-bundles/bac2128a-ec95-4d19-a241-d8be7001b8b8' \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json' \
-H 'Content-Type: application/vnd.allegro.public.v1+json' \
-d '{
"slots": [
{
"id": "bac2128a-ec95-4d19-a241-d8be7001b8bc", // zachowane ID modyfikowanego slotu
"order": 0,
"entryPoint": true,
"requiredQuantity": 1,
"offers": [
{
"id": "12345678",
"excludedFromDiscount": false
}
]
},
{
"id": null, // nowy slot dodawany do zestawu
"order": 1,
"entryPoint": false,
"requiredQuantity": 1,
"offers": [
{
"id": "34567890",
"excludedFromDiscount": false
}
]
}
],
"discount": {
"type": "SLOT_DISCOUNT", // zmiana typu rabatu na zniżki per slot
"bundle": null,
"slot": {
"slots": [
{
"order": 0,
"discounts": [
{
"marketplaceId": "allegro-pl",
"percentage": 5
}
]
}
]
}
}
}'Usuń wybrany zestaw
Za pomocą DELETE /sale/flexible-bundles/{bundleId} usuniesz wybrany zestaw elastyczny.
Przykładowy request:
curl -X DELETE \
'https://api.allegro.pl/sale/flexible-bundles/bac2128a-ec95-4d19-a241-d8be7001b8b8' \
-H 'Authorization: Bearer {token}' \
-H 'Accept: application/vnd.allegro.public.v1+json'Przykładowy response:
status 204 No ContentLista zasobów
Pełną dokumentację zasobów w postaci pliku swagger.yaml znajdziesz tu.
Lista zasobów podstawowych opisanych w poradniku:
- POST /sale/loyalty/promotions - dodaj rabat na duże zamówienie, cennik hurtowy, rabat ilościowy
- GET /sale/loyalty/promotions/{promotionId} - pobierz szczegółowe informacje o rabacie na duże zamówienie, cenniku hurtowym, rabacie ilościowym
- PUT /sale/loyalty/promotions/{promotionId} - zmień ustawienia rabatu na duże zamówienie lub cennika hurtowego
- PUT /sale/offer-modification-commands/{commandId} - przypisz grupowo cennik hurtowy do ofert
- DELETE /sale/loyalty/promotions/{promotionId} - usuń rabat na duże zamówienie, cennik hurtowy, rabat ilościowy
- PUT /sale/turnover-discount/{marketplaceId} - utwórz lub edytuj rabat obrotowy
- GET /sale/turnover-discount - pobierz listę rabatów obrotowych
- PUT /sale/turnover-discount/{marketplaceId}/deactivate - deaktywuj rabat obrotowy
- POST /sale/flexible-bundles - utwórz nowy zestaw elastyczny
- GET /sale/flexible-bundles - pobierz listę utworzonych zestawów elastycznych
- GET /sale/flexible-bundles/{bundleId} - pobierz szczegóły zestawu elastycznego
- PUT /sale/flexible-bundles/{bundleId} - edytuj zestaw elastyczny
- DELETE /sale/flexible-bundles/{bundleId} - usuń zestaw elastyczny
Lista zasobów wspierających opisanych w poradniku:
- GET /sale/loyalty/promotions - pobierz listę rabatów i promocji