Remover un cupón a la orden

Este endpoint permite remover un cupón específico de la orden si se encuentra aplicado.

13161316

1. Crear el Endpoint

Crear un API REST de tipo DELETE, este endpoint debe recibir 2 parámetros en su URL, donde el primero será el "order_id" que contendrá el identificador de la orden y "code" será el código del cupón a remover.

DELETE https://your-host.com/removeCoupons/{orderId}/code/{coupon_code} HTTP/1.1
Content-Type: application/json

🚧

NOTA:

Antes que avancemos tenemos que recordarte que al momento de tokenizar una orden en tu servidor debes guardar en tu base de datos tanto el token como el orderId para luego ser usado.

2. Obtener la orden tokenizada

Obtener el token de la orden previamente almacenado en tu base de datos mediante el order_id que es enviado como parámetro en la URL de tu merchant API, con el token se debe realizar una petición al servidor para obtener la orden tokenizada.

3. Editar la orden

Cuando se remueve un cupón a la orden se debe verificar cuál es el tipo de ese cupón y dependiendo de ello hacer el cambio en el atributo que corresponda a los valores dentro de la orden.

Parámetro

Descripción de cambio

items

Se debe remover el item de la orden si es que fue añadido por el cupón.

items_total_amount

Es la suma de costo de todos los items de la orden este valor corresponde a
order->items-> total_amount-> amount.

discounts

Se debe remover todo lo que esta dentro del objeto discounts referente a ese cupón.

shipping_amount

Si el cupón es de tipo free_shipping se debe volver a añadir el valor del método de envío.

subtotal

Es el valor de (items_total_amount - tax_amount).

total_amount

Es la suma de shipping_amount + tax_amount - total_discount.

total_discount

Se debe remover el valor del descuento aplicado en el cupón.

4. Respuesta del Endpoint

Una vez realizado los cálculos respectivos según el cupón removido, se debe devolver la orden actualizada y quitar del atributo discounts el descuento que corresponda al código del cupón.

{
  "order": {
    ...
    "discounts": [],
    ...
  }
}

Did this page help you?