allegro / allegro-api

Issue tracker and wiki for Allegro REST API
https://developer.allegro.pl/
217 stars 39 forks source link

[NEWS] Cenniki hurtowe dla transakcji B2B / Wholesale price list for B2B transactions #3641

Open MaciejFrackowiak opened 4 years ago

MaciejFrackowiak commented 4 years ago

Od dziś dodasz cenniki hurtowe do ofert. Dzięki nim zaoferujesz rabat podczas transakcji B2B (firma - firma). 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
                    "lowerBound": 5              zakupionych przedmiotów
                },
                "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"
}

Utworzony 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"
   }
 ]
}'

Ważne! Obecnie informacji o przypisanym cenniku hurtowym do oferty nie otrzymasz w odpowiedzi dla GET /sale/offers/{offerId}.

Więcej informacji o cennikach hurtowych i zasobach do zarządzania nimi znajdziesz w naszym poradniku.


From today you will add wholesale price lists to your offers. Thanks to them, you will offer a discount during B2B transactions (company - company). To create a wholesale price list, please use POST /sale/loyalty/promotions and define the quantitative thresholds and the percentage discount applicable to them.

Sample 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",        -- promotion type (list of available values
                                                 can be found in resource documentation)
          "name": "Price list number 1",         -- wholesale price list name
          "thresholds": [                        -- discount thresholds
              {
                "quantity": {                    -- minimum quantity purchased items
                    "lowerBound": 5
                },
                "discount": {                    -- discount percentage (%)
                    "percentage": "5"
                }
              },
              {
                "quantity": {
                    "lowerBound": 10
                },
                "discount": {
                    "percentage": "8"
                }
              }
            ]
          }
    }
  ],
  "offerCriteria": [
    {
      "type": "OFFERS_ASSIGNED_EXTERNALLY"        -- you will assign offers via
    }                                             PUT /sale/offer-modification-commands/{commandId}
  ]
}'

In response, you will receive the ID of the created wholesale price list.

Sample response:

{
    "id": "9de4be5d-9c60-48aa-8711-363625c9d793",    -- wholesale price list ID
    "createdAt": "2020-08-13T06:08:06.011Z",         -- creation date
    "benefits": [
        {
            "specification": {
                "name": "Price list number 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"
}

You will assign the created wholesale price list to selected offers using the resource responsible for group changes in the offers - PUT /sale/offer-modification-commands/{commandId}.

Sample 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": {                                          -- change type
     "wholesalePriceList": {                    
       "id": "9de4be5d-9c60-48aa-8711-363625c9d793"        -- wholesale price list ID
     }
   }
 },
 "offerCriteria": [
   {
     "offers": [
       {
         "id": "9292002929"                                -- offer ID
       },
       {
         "id": "9876543210"
       }
     ],
     "type": "CONTAINS_OFFERS"
   }
 ]
}'

Note! Currently, you will not receive information about the wholesale price list assigned to the offer in response to GET /sale/offers/{offerId}.

You will find more information about wholesale price lists and resources to manage them in our tutorial.

cyfranT commented 3 years ago

Dzień dobry,

Gdy dodajemy cennik z poziomu API metodą PUT /sale/offer-modification-commands/{commandId} otrzymujemy zwrotnie, że wszystko ok, a metoda GET /sale/offers/{offerId} nie zwraca przypisanego cennika zgodnie z tym co jest napisane w newsie: "Obecnie informacji o przypisanym cenniku hurtowym do oferty nie otrzymasz w odpowiedzi dla GET /sale/offers/{offerId}."

Gdy jednak przypisujemy cennik z poziomu panelu www, to metoda GET /sale/offers/{offerId} już zwraca przypisany cennik.

Jak możemy zweryfikować, że cennik hurtowy został prawidłowo przypisany do oferty z użyciem API? Możemy polegać po prostu na pozytywnej odpowiedzi API z wywołania PUT /sale/offer-modification-commands/{commandId}?

MaciejFrackowiak commented 3 years ago

@cyfranT Obecnie GET /sale/offers/{offerId} zwraca już w obiekcie "discounts" informację o przypisanym cenniku hurtowym:

...
"discounts": {
        "wholesalePriceList": {
            "id": "65c90a4d-b6ce-4f3e-8b3a-ea8a49690ab1"
        }
    },
...

Informacja jest zwracana zarówno dla cennika dodanego przez WWW oraz do przypisanego przez PUT /sale/offer-modification-commands/{commandId}. Zmiana została wprowadzona wraz z udostępnieniem funkcjonalności rabatu na duże zamówienie https://github.com/allegro/allegro-api/issues/3842.