DeliveryFee


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.

Cálculo

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.

Vigencia

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).

Estructura de Datos

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
}

Endpoints

Insertar DeliveryFee

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]$/"
    }
}

Insertar DeliveryFee de Company

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]$/"
        }
    }
]

Listar DeliveryFee

{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 DeliveryFee

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]$/"
    }
}

Eliminar DeliveryFee

Método URI Cabeceras
DELETE /companies/{companyId}/delivery-fees/{deliveryFeeId} Authorization

Acciones de DeliveryFee

Listar tarifas de envío

{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

Añadir tarifas de envío

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]$/"
    }
}

Reemplazar las tarifas de envío

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]$/"
        }
    }
]

Listar tarifas de envío

{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

Añadir tarifas de envío

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]$/"
    }
}

Reemplazar las tarifas de envío

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]$/"
        }
    }
]

Listar tarifas de envío

{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

Añadir tarifas de envío

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]$/"
    }
}

Reemplazar las tarifas de envío

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]$/"
        }
    }
]

Listar tarifas de envío

{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

Añadir tarifas de envío

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]$/"
    }
}

Reemplazar las tarifas de envío

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]$/"
        }
    }
]

Relaciones