Примеры изменения промоакции

Вы можете изменить промоакцию, которую создали ранее с помощью запроса на изменение. В этой статей приведены примеры таких изменений.

Вы можете активировать или деактивировать промоакцию и/или изменить период ее проведения, не меняя других свойств.

Для этого передайте в запросе на изменение:

  • Параметр promotion_type (с тем же значением, что и ранее).
  • Параметры для изменения активности и/или периода действия (status, date_from, date_to).

Например:
Запрос на создание: POST /v1/promotion/

{
 "promotion_type": "discount",
 "status": false,
 "date_from": "2021-08-13T09:16:35+03:00",
 "date_to": "2023-08-13T09:16:35+03:00"
 "promotion_name": "Black Friday",
 "discounts": {
  "discount_percent": "50"
 }
}

Запрос на изменение: PATCH /v1/promotion/123456

{
 "promotion_type": "discount",
 "status": true,
 "date_from": "2022-01-01T09:16:35+03:00",
 "date_to": "2022-01-10T09:16:35+03:00"
}

В результате выполнения запроса:

  • Промоакция станет активна.
  • Срок действия промоакции будет обновлен в соответствии с переданными значениями.

Вы можете изменить список промокодов, которые используются в промоакции.

При этом, если вы удаляете какой-либо прокод из промоакции, то это не повлияет на уже созданные заказы, в которых он был применен (независимо от статуса заказа). Также эти заказы будут учитываться в статистике промоакции.

Для изменения списка промокодов передайте в запросе на изменение:

  • Параметр с типом промоакции: promotion_type (с тем же значением, что и ранее).
  • Объект coupons с полным набором вложенных параметров.
    • В том числе в параметре coupons.coupon_code перечислите только те промокоды, которые должны участвовать в промоакции.
    • Остальные вложенные параметры передайте с такими же значениями, как и в текущей промоакции, так как их не нужно изменять.
      Обратите внимание, вы должны передать полный набор параметров (а не только измененный список промокодов), так как все вложенные параметры объекта будут обновлены. Если какой-либо необязательный параметр не будет передан, то он будет пересохранен с значением по умолчанию.

Например:

Предположим, вы создали промоакцию (id 123456) с промокодами PROMO-001 и PROMO-002.

Запрос на создание: POST /v1/promotion/

{
 "promotion_type": "coupon",
 "promotion_name": "Black Friday",
 "coupons": {
  "coupon_type": "one-time",
  "coupon_code": [
   "PROMO-001",
   "PROMO-002"
  ],
  "discount_percent": "10"
 }
}

Чтобы промоакция действовала только на промокоды PROMO-002 (уже имеющийся в промоакции) и PROMO-003 (новый промокод), отправьте запрос на изменение:

PATCH /v1/promotion/123456

{
 "promotion_type": "coupon",
 "coupons": {
  "coupon_type": "one-time",
  "coupon_code": [
   "PROMO-002",
   "PROMO-003"
  ],
  "discount_percent": "10"
 }
}

В результате выполнения запроса:

  • В промоакцию будет добавлен промокод "PROMO-003".
  • Промокод "PROMO-001" будет удален из промоакции, так как он не был передан в запросе.
  • Остальные свойства промоакции и промокодов в ней остались без изменения.

Вы можете изменить список продуктов, которые используются в промоакции.

При этом, если вы удаляете какой-либо продукт из промоакции, то это не повлияет на уже созданные заказы, к которым была применена промоакция (независимо от статуса заказа). Также эти заказы будут учитываться в статистике промоакции.

Для изменения списка продуктов передайте в запросе на изменение:

  • Параметр с типом промоакции: promotion_type (с тем же значением, что и ранее).
  • Объект coupons или discounts (в зависимости от типа промоакции) с полным набором вложенных параметров.
    • В том числе в параметре со списком продуктов перечислите только те идентификаторы продуктов, которые должны участвовать в промоакции. 
    • Остальные вложенные параметры передайте с такими же значениями, как и в текущей промоакции, так как их не нужно изменять.
      Обратите внимание, вы должны передать полный набор параметров (а не только измененный список продуктов), так как все вложенные параметры объекта будут обновлены. Если какой-либо необязательный параметр не будет передан, то он будет пересохранен с значением по умолчанию.

Например:

Предположим, вы создали промоакцию (id 123456), с общей скидкой по промокодам, которая действует на продукты 11111 и 22222.

Запрос на создание: POST /v1/promotion/

{
 "promotion_type": "coupon",
 "promotion_name": "Black Friday",
 "coupons": {
  "coupon_type": "one-time",
  "coupon_code": [
   "PROMO-001",
   "PROMO-002"
  ],
  "discount_percent": "10",
  "product_id": [11111, 22222]
 }
}

Чтобы промоакция действовала только на продукты 22222 и 33333 отправьте запрос на изменение:

PATCH /v1/promotion/123456

{
 "promotion_type": "coupon",
 "coupons": {
  "coupon_type": "one-time",
  "coupon_code": [
   "PROMO-001",
   "PROMO-002"
  ],
  "discount_percent": "10",
  "product_id": [22222, 33333]
 }
}

Обратите внимание, в запросе на изменение используются те же параметры в объекте coupons, что и при создании промоакции. В этом случае тип и размер скидки не изменится.

В результате выполнения запроса:

  • Промоакция будет действовать на продукты 22222 и 33333.
  • Промоакция не будет действовать на продукт 11111.
  • Остальные свойства промоакции не изменились.

Для промоакций с индивидуальными скидами, а также промоакций с типом discounts изменения выполняются по аналогии.

Вы можете изменить тип промоакции. Например, если в промоакции использовалась скидка, которая применяется после активации промокода, то вы можете сделать так, чтобы она применялась сразу при добавлении продукта в корзину (без использования промокодов).

При этом, если скидка по промоакции была уже применена к каким-либо заказам, то это не повлияет на них (независимо от статуса заказа). Данные заказы будут учитываться в статистике промоакции.

Для изменения типа промоакции передайте в запросе на изменение:

  • Параметр с типом промоакции: promotion_type, который соответствует новому типу.
  • Объект coupons или discounts в зависимости от нового типа промоакции:
    • Если вы хотите, чтобы скидка в промоакции применялась сразу при добавлении продукта в корзину, то нужно изменить promotion_type на discount. При этом в запросе должен быть передан объект discounts с соответствующими вложенными параметрами, а объект coupons должен отсутствовать. 
    • Если вы хотите, чтобы скидка в промоакции применялась после активации промокода, то нужно изменить promotion_type на coupon. При этом в запросе должен быть передан объект coupons с соответствующими вложенными параметрами, а объект discouns должен отсутствовать. 

Предположим, вы создали промоакцию (id 123456), с общей скидкой по промокодам, которая действует на все ваши продукты.

Запрос на создание: POST /v1/promotion/

{
 "promotion_type": "coupon",
 "promotion_name": "Black Friday",
 "coupons": {
  "coupon_code": [
   "PROMO-001",
   "PROMO-002"
  ],
  "discount_percent": "10"
 }
}

Чтобы скидка по промоакции применялась к продукту сразу при добавлении продукта в корзину (без использования промокода) отправьте запрос на изменение:

PATCH /v1/promotion/123456

{
 "promotion_type": "discount",
 "discounts": {
  "discount_percent": "10"
 }
}

Вы можете изменить скидочную модель промоакции. Например, в промоакции, по которой на выбранные продукты предоставлялась общая скидка задать индивидуальные скидки.

Для этого передайте в запросе на изменение:

  • Параметр с типом промоакции: promotion_type (с тем же значением, что и ранее).
  • Объект coupons или discounts (в зависимости от типа промоакции) с полным набором вложенных параметров.
    • Вложенные параметры должны соответствовать той скидочной модели, которая должна использоваться в промоакции. Набор параметров такой же как и при создании промоакции, посмотрите примеры для разных скидочных моделей.

Предположим, вы создали промоакцию (id 123456), с общей скидкой, которая действует на выбранные продукты.

Запрос на создание: POST /v1/promotion/

{
 "promotion_type": "discount",
 "discounts": {
  "product_id": [22222, 33333, 44444],
  "discount_percent": "10"
 }
}

Чтобы добавить индивидуальную скидку 20% на продукт 44444, вам нужно изменить скидочную модель промоакции на индивидуальные скидки. При этом:

  • Для продукта 44444 нужно передать индивидуальную скидку 20%.
  • Для остальных продуктов (22222 и 33333) нужно передать индивидуальные скидки, такие же как общая скидка, действующая ранее (10%). Обратите внимание, вы не можете задать одну индивидуальную скидку для продукта 44444, а для остальных оставить общую скидку. Состав параметров должен полностью соответствовать одной из скидочных моделей.
  • Параметры с общей скидкой (discounts.discount_percent) и списком продуктов для нее (discounts.product_id) должны отсутствовать в запросе).

Отправьте запрос на изменение:

PATCH /v1/promotion/123456

{
 "promotion_type": "discount",
 "discounts": {
  "products": [{
    "product_id": 22222,
    "discount_percent": "10"
   }, {
    "product_id": 33333,
    "discount_percent": "10"
   }, {
    "product_id": 44444,
    "discount_percent": "20"
   }
  ]
 }
}