[PATCH] Изменение промоакции

PATCH /v1/promotion/[promotion id]

Запрос позволяет изменить свойства промоакции.
В том числе изменять:

  • Тип промоакции
  • Скидочную модель
  • Для промоакций типа "coupon" изменять список привязанных промокодов и их тип
[promotion id]
required
Идентификатор промоакции

Вы можете получить его в ответ на запросы: Пример передачи параметра в URL: /v1/promotion/123456
content-type
string
required
MIME-тип данных

Должен быть равен "application/json".
AuthorizationJWT
required
Авторизационный токен
  • Формат значения: Bearer [token]
  • Вместо [token] подставьте значение token, полученное в ответ на запрос к Authentication API
[...]
Список допустимых параметров такой же, как в запросе на создание промоакции. Требования к параметрам аналогичны, за исключением:
  • promotion_type - тип промоакции является обязательным параметром. Если переданное значение не совпадает с текущим типом промоакции, то он будет изменен
  • promotion_name - название промоакции является не обязательным параметром
  • coupons, discounts - объекты являются не обязательными параметрами
    • Если объект не передан, то ранее заданные данные прокодов/скидок не будут обновлены.
    • Если объект передан, то все значения вложенных параметров будут полностью обновлены новыми значениями. Если какой-то параметр не передан, то его значение будет изменено на значение по умолчанию, если оно предусмотрено.
      Все требования к параметрам в объекте аналогичны требованиям в запросе на создание промоакции.

Предположим, вы создали бессрочную промоакцию с типом discounts и общей скидкой на все ваши продукты.

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

{
 "promotion_type": "discount",
 "promotion_name": "Black Friday",
 "discounts": {
  "discount_percent": "50"
 }
}

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

PATCH /v1/promotion/123456

{
 "promotion_type": "discount",
 "date_to": "2022-01-10T09:16:35+03:00",
 "discounts": {
  "product_id": [22222],
  "discount_percent": "50"
 }
}

Обратите внимание:

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

Посмотрите дополнительные примеры изменения промоакции.

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

При успешной обработке запроса вы получите код ответа сервера HTTP/1.1 200 OK

Положительный ответ возвращается только если запрос был полностью выполнен, в том числе:

  • Если в промоакции используются промокоды, и их список был изменен, то:
    • Все новые промокоды были успешно созданы
    • Все ранее присутствующие промокоды были успешно обновлены
    • Все промокоды, которые не были переданы в запросе, были удалены
      Если удаляемый промокод уже был применен в заказе, то он не удаляется из заказа (независимо от статуса заказа)
      Например, если был создан заказ с применением скидки по промокоду, заказ еще не оплачен, и промокод после этого был удален из промоакции, то скидка в заказе не изменится. Заказы с удаленными промокодами учитываются в статистике промоакции
  • Если промоакция должна действовать только на определенные продукты, то они все найдены и принадлежат вам

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

Код ответа сервера Описание
HTTP/1.1 400 Bad Request Запрос не валиден (ошибка в параметрах; не переданы необходимые данные и т.п.).
В теле ответа будет передан дополнительный код ошибки (один или несколько).
HTTP/1.1 401 Unauthorized Неуспешная аутентификация.
В теле ответа будет передан дополнительный код ошибки (один или несколько). 
HTTP/1.1 404 Not found Неверный URL запроса или промоакция не найдена. Проверьте адрес запроса. В теле ответа может быть передан дополнительный код ошибки (один или несколько). 
HTTP/1.1 500 Request Error Ошибка на стороне сервера. Повторите запрос позднее или обратитесь в службу поддержки.

Справочник этих ошибок совпадает с ошибками при создании промоакции.

Справочник этих ошибок одинаковый для всех API, которые используют авторизацию по токену.

Error Message Описание
Если хотя бы одна ошибка из списка ниже найдена, то она возвращается в ответе на запрос, остальные ошибки не проверяются.
11200 Promotion not found: [id промоакции] Запрос не может быть выполнен. Промоакция с переданным id не найдена или у вас нет доступа к ней. В ошибке будут передан идентификатор промоакции, не прошедший проверку.
errors
array [objects]
required
Список ошибок
errors / [error object]
/
error
number
required
Код ошибки
errors / [error object]
/
message
string
Описание ошибки
{
 "errors": [{
   "error": 11010,
   "message": "Invalid field value: date_from"
  }, {
   "error": 11010,
   "message": "Invalid field value: product_id"
  }
 ]
}