Envío de un producto
Calcular cuánto cuesta y cuánto tarda enviar un producto, a domicilio, a una agencia o con recojo en tienda.
Calcular el envío
GET /api/v1/ecommerce/shippings/calculate/product
Pide el token del cliente.
| Parámetro | Dónde | Obligatorio | Reglas |
|---|---|---|---|
shipping_type |
Query | Sí | DOMICILIO, AGENCIA o TIENDA, en mayúsculas |
product_id |
Query | Sí | Identificador numérico del producto |
ubigeo |
Query | No | Distrito de destino, 6 cifras. Si no se envía, se usa el de la dirección por defecto del cliente |
curl "https://<dominio-de-la-empresa>/api/v1/ecommerce/shippings/calculate/product?shipping_type=DOMICILIO&product_id=120&ubigeo=150122" \
-H "Authorization: Bearer <token-del-cliente>" \
-H "Accept: application/json"
Respuesta
data cambia según el tipo de envío.
A domicilio: precio y días de entrega, o null si no hay tarifa para ese distrito.
{
"success": true,
"message": "Cálculo de envío realizado correctamente.",
"data": { "price": 15.5, "lead_time": 2 }
}
A agencia: una lista con cada agencia disponible, o una lista vacía.
{
"success": true,
"message": "Cálculo de envío realizado correctamente.",
"data": [ { "code": "SHALOM", "name": "Shalom", "logo": "https://miempresa.ejemplo.com/storage/shalom.png", "price": 12.0, "lead_time": 3 } ]
}
Recojo en tienda: los establecimientos cercanos, buscando primero en el mismo distrito, luego en la provincia y luego en el departamento.
{
"success": true,
"message": "Cálculo de envío realizado correctamente.",
"data": [
{ "id": 1, "description": "Tienda Miraflores", "address": "Av. Larco 456", "lead_time": 1, "logo": null,
"latitude": "-12.1211", "longitude": "-77.0297", "department": "LIMA", "province": "LIMA", "district": "MIRAFLORES" }
]
}
Cómo se calcula el precio
Las tarifas las configura la empresa en el ERP, por distrito y por agencia:
- Si el producto pesa 1 kg o menos, se cobra el precio por kilo.
- Si pesa más, se cobra el precio por kilo más el precio por kilo adicional por cada kilo que pase de 1.
Si algo sale mal
| HTTP | code | Cuándo | Qué hacer |
|---|---|---|---|
| 422 | VALIDATION_ERROR |
Falta el tipo de envío o el producto, o el ubigeo no tiene 6 cifras | Corrige el parámetro que indica errors |
| 404 | PRODUCT_NOT_FOUND |
El producto no existe, no está en la tienda o es un servicio | Revisa el identificador |
| 422 | DEFAULT_ADDRESS_MISSING |
No se envió ubigeo y el cliente no tiene dirección por defecto | Envía el ubigeo o pide al cliente una dirección |
| 422 | DEFAULT_ADDRESS_INCOMPLETE |
La dirección por defecto no tiene ubigeo de distrito | Envía el ubigeo o pide al cliente que edite su dirección |
| 401 | SESSION_EXPIRED o TOKEN_INVALID |
Falta el token o no es válido | Pide al cliente que inicie sesión |