[PATCH] Изменение промоакции
Описание запроса
PATCH /v1/promotion/[promotion id]
Запрос позволяет изменить свойства промоакции.
В том числе изменять:
- Тип промоакции
- Скидочную модель
- Для промоакций типа "coupon" изменять список привязанных промокодов и их тип
Данные для отправки запроса
- Endpoints URL:
- Боевая среда: https://api.ecommerce.softline.com/v1/promotion
- Тестовая среда: https://api.ecommerce.softline.com.demoslweb.com/v1/promotion
- Метод: PATCH
- Формат: JSON
- Авторизация: с помощью токена
Вы можете получить его в ответ на запросы: Пример передачи параметра в URL: /v1/promotion/123456
- Формат значения:
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-кодов ответа сервера при ошибке
Код ответа сервера | Описание |
HTTP/1.1 400 Bad Request | Запрос не валиден (ошибка в параметрах; не переданы необходимые данные и т.п.). В теле ответа будет передан дополнительный код ошибки (один или несколько). |
HTTP/1.1 401 Unauthorized | Неуспешная аутентификация. В теле ответа будет передан дополнительный код ошибки (один или несколько). |
HTTP/1.1 404 Not found | Неверный URL запроса или промоакция не найдена. Проверьте адрес запроса. В теле ответа может быть передан дополнительный код ошибки (один или несколько). |
HTTP/1.1 500 Request Error | Ошибка на стороне сервера. Повторите запрос позднее или обратитесь в службу поддержки. |
Справочник дополнительных кодов ошибок для HTTP 400
Справочник этих ошибок совпадает с ошибками при создании промоакции.
Справочник дополнительных кодов ошибок для HTTP 401
Справочник этих ошибок одинаковый для всех API, которые используют авторизацию по токену.
Справочник дополнительных кодов ошибок для HTTP 404
Error | Message | Описание |
Если хотя бы одна ошибка из списка ниже найдена, то она возвращается в ответе на запрос, остальные ошибки не проверяются. | ||
11200 | Promotion not found: [id промоакции] | Запрос не может быть выполнен. Промоакция с переданным id не найдена или у вас нет доступа к ней. В ошибке будут передан идентификатор промоакции, не прошедший проверку. |
Пример ответа об ошибке
{
"errors": [{
"error": 11010,
"message": "Invalid field value: date_from"
}, {
"error": 11010,
"message": "Invalid field value: product_id"
}
]
}