Tramo de tarifa de envío por distancia y horario. Se asocia de forma polimórfica a un
carrier (comercio, compañía, geocerca de comercio, producto o cargo de servicio) y, en
conjunto, los tramos de un carrier definen cuánto cuesta un delivery según la distancia y la
hora.
Para una distancia dada (en metros) el tramo interpola linealmente la tarifa entre
fee_min_e2 (en distance_min) y fee_max_e2 (en distance_max); con distance_max = -1 el
tramo es abierto y cobra siempre fee_min_e2. is_additional distingue los tramos base de los
recargos (nocturnidad, etc.). base_multiplier / additional_multiplier permiten que un tramo
escale la suma de los tramos base / adicionales en lugar de aportar una tarifa propia.
delivery_providers_prc es la fracción de la tarifa que se paga al repartidor.
Aplica en la ventana hour_beg–hour_end (si son iguales, todo el día; puede cruzar la
medianoche) y, si days no está vacío, sólo esos días de la semana (0 = domingo … 6 = sábado).
| Atributo | Tipo | Descripción |
|---|---|---|
id |
int |
|
carrier_type |
string |
Clase del carrier dueño del tramo (oculto en la respuesta). |
carrier_id |
int |
ID del carrier dueño del tramo (oculto en la respuesta). |
index |
int |
Orden del tramo dentro del carrier. |
name |
string |
Nombre del tramo. |
is_additional |
bool |
true si es un recargo; false si es un tramo base. |
distance_min |
int |
Distancia mínima del tramo, en metros. |
distance_max |
int |
Distancia máxima del tramo, en metros; -1 = sin límite superior. |
fee_min_e2 |
int |
Tarifa en distance_min (céntimos). |
fee_max_e2 |
int |
Tarifa en distance_max (céntimos); se interpola entre ambas. |
delivery_providers_prc |
float |
Fracción de la tarifa que se paga al repartidor (0–1). |
hour_beg |
string |
Hora de inicio de vigencia (HH:MM). |
hour_end |
string |
Hora de fin de vigencia (HH:MM); igual a hour_beg = todo el día. |
days |
array |
Días de la semana en que aplica (0 = domingo … 6 = sábado); vacío = todos. |
label |
string\|null |
Etiqueta corta para mostrar el tramo. |
created_at |
datetime\|null |
Fecha de creación. |
updated_at |
datetime\|null |
Fecha de última modificación. |
base_multiplier |
float |
Multiplicador aplicado a la suma de los tramos base. |
additional_multiplier |
float |
Multiplicador aplicado a la suma de los tramos adicionales. |
extras |
array\|null |
Datos auxiliares del tramo (oculto en la respuesta). |
allLogs |
ApiLog> |
Registros de auditoría de la API, incluidos los internos. |
carrier |
Model\|Eloquent |
Entidad dueña del tramo (comercio, compañía, geocerca, producto o cargo de servicio); oculto en la respuesta. |
logs |
ApiLog> |
Registros de auditoría de la API visibles. |
{
"id": 1,
"index": 0,
"name": "0 a 9,99 Km",
"is_additional": true,
"distance_min": 0,
"distance_max": 9999,
"fee_min_e2": 699,
"fee_max_e2": 699,
"delivery_providers_prc": 0.6438,
"hour_beg": "22:30",
"hour_end": "03:00",
"days": [],
"label": "",
"created_at": null,
"updated_at": "2022-04-25 17:21:12",
"base_multiplier": 0,
"additional_multiplier": 0,
"human_fee_min_e2": 6.99,
"human_fee_max_e2": 6.99,
"human_delivery_providers_prc": 64.38
}
Añadir tarifas de envío
Crea uno o varios tramos de DeliveryFee para la compañía.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/delivery-fees |
Authorization |
{
"name": "required|string|max:32",
"label": "string|max:32",
"is_additional": "boolean",
"distance_min": "required|integer|min:0",
"distance_max": "required|integer|min:-1",
"fee_min_e2": "integer|min:0",
"human_fee_min_e2": "numeric|min:0.0",
"fee_max_e2": "integer|min:0",
"human_fee_max_e2": "numeric|min:0.0",
"delivery_providers_prc": "numeric|between:0.0000,1.0000",
"human_delivery_providers_prc": "numeric|between:0.00,100.00",
"days": [
"integer|min:0|max:6"
],
"base_multiplier": "numeric|between:-1.0000,100.0000",
"additional_multiplier": "numeric|between:-1.0000,100.0000",
"hour_beg": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
Reemplazar las tarifas de envío
Sustituye por completo el conjunto de tramos de DeliveryFee de la compañía por el enviado en la petición.
| Método | URI | Cabeceras |
|---|---|---|
| PUT | /companies/{companyId}/delivery-fees |
Authorization |
[
{
"name": "required|string|max:32",
"label": "string|max:32",
"is_additional": "boolean",
"distance_min": "required|integer|min:0",
"distance_max": "required|integer|min:-1",
"fee_min_e2": "integer|min:0",
"human_fee_min_e2": "numeric|min:0.0",
"fee_max_e2": "integer|min:0",
"human_fee_max_e2": "numeric|min:0.0",
"delivery_providers_prc": "numeric|between:0.0000,1.0000",
"human_delivery_providers_prc": "numeric|between:0.00,100.00",
"days": [
"integer|min:0|max:6"
],
"base_multiplier": "numeric|between:-1.0000,100.0000",
"additional_multiplier": "numeric|between:-1.0000,100.0000",
"hour_beg": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
]
{info} Soporta: Paginación Filters Carga dinámica
Listar tarifas de envío
Devuelve todas las tarifas de la compañía (DeliveryFee), paginadas.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/delivery-fees |
Authorization |
Actualizar un tramo de tarifa de envío
Modifica el DeliveryFee indicado.
| Método | URI | Cabeceras |
|---|---|---|
| PUT | /companies/{companyId}/delivery-fees/{deliveryFeeId} |
Authorization |
{
"name": "required|string|max:32",
"label": "string|max:32",
"is_additional": "boolean",
"distance_min": "required|integer|min:0",
"distance_max": "required|integer|min:-1",
"fee_min_e2": "integer|min:0",
"human_fee_min_e2": "numeric|min:0.0",
"fee_max_e2": "integer|min:0",
"human_fee_max_e2": "numeric|min:0.0",
"delivery_providers_prc": "numeric|between:0.0000,1.0000",
"human_delivery_providers_prc": "numeric|between:0.00,100.00",
"days": [
"integer|min:0|max:6"
],
"base_multiplier": "numeric|between:-1.0000,100.0000",
"additional_multiplier": "numeric|between:-1.0000,100.0000",
"hour_beg": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
| Método | URI | Cabeceras |
|---|---|---|
| DELETE | /companies/{companyId}/delivery-fees/{deliveryFeeId} |
Authorization |
{info} Soporta: Paginación Filters Carga dinámica
Devuelve las tarifas del comercio (DeliveryFee), paginadas.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/branches/{branchId}/delivery-fees |
Authorization |
Crea uno o varios tramos de DeliveryFee para el comercio.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/branches/{branchId}/delivery-fees |
Authorization |
{
"name": "required|string|max:32",
"label": "string|max:32",
"is_additional": "boolean",
"distance_min": "required|integer|min:0",
"distance_max": "required|integer|min:-1",
"fee_min_e2": "integer|min:0",
"human_fee_min_e2": "numeric|min:0.0",
"fee_max_e2": "integer|min:0",
"human_fee_max_e2": "numeric|min:0.0",
"delivery_providers_prc": "numeric|between:0.0000,1.0000",
"human_delivery_providers_prc": "numeric|between:0.00,100.00",
"days": [
"integer|min:0|max:6"
],
"base_multiplier": "numeric|between:-1.0000,100.0000",
"additional_multiplier": "numeric|between:-1.0000,100.0000",
"hour_beg": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
Sustituye por completo el conjunto de tramos de DeliveryFee de el comercio por el enviado en la petición.
| Método | URI | Cabeceras |
|---|---|---|
| PUT | /companies/{companyId}/branches/{branchId}/delivery-fees |
Authorization |
[
{
"name": "required|string|max:32",
"label": "string|max:32",
"is_additional": "boolean",
"distance_min": "required|integer|min:0",
"distance_max": "required|integer|min:-1",
"fee_min_e2": "integer|min:0",
"human_fee_min_e2": "numeric|min:0.0",
"fee_max_e2": "integer|min:0",
"human_fee_max_e2": "numeric|min:0.0",
"delivery_providers_prc": "numeric|between:0.0000,1.0000",
"human_delivery_providers_prc": "numeric|between:0.00,100.00",
"days": [
"integer|min:0|max:6"
],
"base_multiplier": "numeric|between:-1.0000,100.0000",
"additional_multiplier": "numeric|between:-1.0000,100.0000",
"hour_beg": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
]
{info} Soporta: Paginación Filters Carga dinámica
Devuelve las tarifas de la geocerca de comercio (DeliveryFee), paginadas.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/branch-geofences/{branchGeofenceId}/delivery-fees |
Authorization |
Crea uno o varios tramos de DeliveryFee para la geocerca de comercio.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/branch-geofences/{branchGeofenceId}/delivery-fees |
Authorization |
{
"name": "required|string|max:32",
"label": "string|max:32",
"is_additional": "boolean",
"distance_min": "required|integer|min:0",
"distance_max": "required|integer|min:-1",
"fee_min_e2": "integer|min:0",
"human_fee_min_e2": "numeric|min:0.0",
"fee_max_e2": "integer|min:0",
"human_fee_max_e2": "numeric|min:0.0",
"delivery_providers_prc": "numeric|between:0.0000,1.0000",
"human_delivery_providers_prc": "numeric|between:0.00,100.00",
"days": [
"integer|min:0|max:6"
],
"base_multiplier": "numeric|between:-1.0000,100.0000",
"additional_multiplier": "numeric|between:-1.0000,100.0000",
"hour_beg": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
Sustituye por completo el conjunto de tramos de DeliveryFee de la geocerca de comercio por el enviado en la petición.
| Método | URI | Cabeceras |
|---|---|---|
| PUT | /companies/{companyId}/branch-geofences/{branchGeofenceId}/delivery-fees |
Authorization |
[
{
"name": "required|string|max:32",
"label": "string|max:32",
"is_additional": "boolean",
"distance_min": "required|integer|min:0",
"distance_max": "required|integer|min:-1",
"fee_min_e2": "integer|min:0",
"human_fee_min_e2": "numeric|min:0.0",
"fee_max_e2": "integer|min:0",
"human_fee_max_e2": "numeric|min:0.0",
"delivery_providers_prc": "numeric|between:0.0000,1.0000",
"human_delivery_providers_prc": "numeric|between:0.00,100.00",
"days": [
"integer|min:0|max:6"
],
"base_multiplier": "numeric|between:-1.0000,100.0000",
"additional_multiplier": "numeric|between:-1.0000,100.0000",
"hour_beg": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
]
{info} Soporta: Paginación Filters Carga dinámica
Devuelve las tarifas del producto (DeliveryFee), paginadas.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/goods/{goodId}/delivery-fees |
Authorization |
Crea uno o varios tramos de DeliveryFee para el producto.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/goods/{goodId}/delivery-fees |
Authorization |
{
"name": "required|string|max:32",
"label": "string|max:32",
"is_additional": "boolean",
"distance_min": "required|integer|min:0",
"distance_max": "required|integer|min:-1",
"fee_min_e2": "integer|min:0",
"human_fee_min_e2": "numeric|min:0.0",
"fee_max_e2": "integer|min:0",
"human_fee_max_e2": "numeric|min:0.0",
"delivery_providers_prc": "numeric|between:0.0000,1.0000",
"human_delivery_providers_prc": "numeric|between:0.00,100.00",
"days": [
"integer|min:0|max:6"
],
"base_multiplier": "numeric|between:-1.0000,100.0000",
"additional_multiplier": "numeric|between:-1.0000,100.0000",
"hour_beg": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
Sustituye por completo el conjunto de tramos de DeliveryFee de el producto por el enviado en la petición.
| Método | URI | Cabeceras |
|---|---|---|
| PUT | /companies/{companyId}/goods/{goodId}/delivery-fees |
Authorization |
[
{
"name": "required|string|max:32",
"label": "string|max:32",
"is_additional": "boolean",
"distance_min": "required|integer|min:0",
"distance_max": "required|integer|min:-1",
"fee_min_e2": "integer|min:0",
"human_fee_min_e2": "numeric|min:0.0",
"fee_max_e2": "integer|min:0",
"human_fee_max_e2": "numeric|min:0.0",
"delivery_providers_prc": "numeric|between:0.0000,1.0000",
"human_delivery_providers_prc": "numeric|between:0.00,100.00",
"days": [
"integer|min:0|max:6"
],
"base_multiplier": "numeric|between:-1.0000,100.0000",
"additional_multiplier": "numeric|between:-1.0000,100.0000",
"hour_beg": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
]
{info} Soporta: Paginación Filters Carga dinámica
Devuelve las tarifas del cargo de servicio (DeliveryFee), paginadas.
| Método | URI | Cabeceras |
|---|---|---|
| GET | /companies/{companyId}/service-charges/{serviceChargeId}/delivery-fees |
Authorization |
Crea uno o varios tramos de DeliveryFee para el cargo de servicio.
| Método | URI | Cabeceras |
|---|---|---|
| POST | /companies/{companyId}/service-charges/{serviceChargeId}/delivery-fees |
Authorization |
{
"name": "required|string|max:32",
"label": "string|max:32",
"is_additional": "boolean",
"distance_min": "required|integer|min:0",
"distance_max": "required|integer|min:-1",
"fee_min_e2": "integer|min:0",
"human_fee_min_e2": "numeric|min:0.0",
"fee_max_e2": "integer|min:0",
"human_fee_max_e2": "numeric|min:0.0",
"delivery_providers_prc": "numeric|between:0.0000,1.0000",
"human_delivery_providers_prc": "numeric|between:0.00,100.00",
"days": [
"integer|min:0|max:6"
],
"base_multiplier": "numeric|between:-1.0000,100.0000",
"additional_multiplier": "numeric|between:-1.0000,100.0000",
"hour_beg": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
Sustituye por completo el conjunto de tramos de DeliveryFee de el cargo de servicio por el enviado en la petición.
| Método | URI | Cabeceras |
|---|---|---|
| PUT | /companies/{companyId}/service-charges/{serviceChargeId}/delivery-fees |
Authorization |
[
{
"name": "required|string|max:32",
"label": "string|max:32",
"is_additional": "boolean",
"distance_min": "required|integer|min:0",
"distance_max": "required|integer|min:-1",
"fee_min_e2": "integer|min:0",
"human_fee_min_e2": "numeric|min:0.0",
"fee_max_e2": "integer|min:0",
"human_fee_max_e2": "numeric|min:0.0",
"delivery_providers_prc": "numeric|between:0.0000,1.0000",
"human_delivery_providers_prc": "numeric|between:0.00,100.00",
"days": [
"integer|min:0|max:6"
],
"base_multiplier": "numeric|between:-1.0000,100.0000",
"additional_multiplier": "numeric|between:-1.0000,100.0000",
"hour_beg": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
},
"hour_end": {
"string": true,
"regex": "/^([0-1][0-9]|2[0-3]):[0-5][0-9]$/"
}
}
]