Remover un cupón a la orden
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": [],
...
}
}
Updated over 1 year ago