Skip to content

Отмена заказа

Отмена может потребоваться в одном из следующих случаях:

  1. У клиента не хватило денег, чтобы оплатить заказ на кассе, или он просто отказался от оплаты.
  2. Заказ на сайте оформлен, но клиент так и не оплатил его.
  3. Клиент оплатил и получил заказ, но вернул его полностью.

Технически, заказ можно отменить после следующих действий:

  1. Заказ подтвержден через checkout/confirm
  2. Заказ оформлен через checkout/apply

Отмена выполняет следующие операции:

  1. Заказ отмечается как отмененный (не имеет отношения к синхронизации статусов заказов).
  2. Возмещает потраченные бонусы, стикеры, купоны, промокоды и сертификаты. Списанные бонусы создаются заново с датой активации текущим днем, если не отключена настройка Возвращать клиенту потраченные бонусы при отмене заказа.
  3. Отменяет вознаграждения покупателя и реферера.
  4. Отменяет выданные купоны.

Важно

Не отменяйте заказ на этапе checkout/apply, если клиент, вероятно, решит его оплатить. Статус "отменен" финальный и повторно отправить apply с тем же номером заказа не получится. Если клиент просто меняет содержимое корзины, используйте повторный checkout/apply с тем же номером заказа.

Но не путайте с checkout/estimate: если клиент меняет корзину, но не переходит к оплате, используйте checkout/estimate. Метод checkout/apply применяйте только тогда, когда клиент зафиксировал корзину и перешел к оплате.

POST https://api.rees46.ru/loyalty/checkout/cancel

Параметры

ПараметрОбязателен?Описание
shop_idДаAPI-ключ
shop_secretДаСекретный ключ API
order_idДаНомер заказа

Запрос

Пример запроса:

shell
curl --header "Content-Type: application/json" \
  --request POST \
  --data-binary "@payload.json" \
  https://api.rees46.ru/loyalty/checkout/cancel

Пример JSON-тела:

json
{
  "shop_id":        "...",
  "shop_secret":    "...",
  "order_id":       "..."
}

Ответ

Пример ответа сервера:

json
{
  "status": "success",
  "payload": {
    "order_id": "...",
    "identifier": "..."
  }
}

Расшифровка ответа:

ПараметрОписание
successЗапрос выполнен успешно или нет
payload.messageСообщение с результатом обработки запроса
payload.order_idИдентификатор заказа
payload.identifierИдентификатор участника программы лояльности в формате 7XXXXXXXXXX

В случае ошибки данных вернет подобную структуру:

json
{
  "status": "error",
  "payload": {
    "message": "Could not cancel order in its current status"
  }
}