Reparto y Dispatcher
Cómo decide la asignación automática qué repartidor o transportista entrega cada pedido, y cómo configurarlo.
- Qué hace el dispatcher
- Glosario del dispatcher
- El ciclo de asignación, paso a paso
- Revisión de pedidos ya asignados a un transportista
- ¿Cuándo existe una alternativa?
- Los tres mecanismos de asignación
- Last-Option: la red de seguridad final
- Clasificación y prioridad de repartidores
- Clientes prioritarios (Platinum)
- Cuándo un pedido cambia de repartidor
- Planes de programación: cómo funciona el ciclo automático
- Dónde vive cada ajuste
- Reglas de referencia rápida
- Límites conocidos del sistema
- Visión de principio a fin
- Reportar una incidencia del dispatcher
- Preguntas frecuentes del dispatcher
- Pausar y reanudar el reparto
- Zonas de reparto
- Transportistas externos
- Ajustes de reparto de la tienda
- Copias de seguridad y restauración de configuración
Qué hace el dispatcher
Dirigido a: responsables de operaciones y de reparto que configuran, supervisan o explican a su equipo la asignación automática de pedidos. Objetivo: entender qué hace el dispatcher y por qué toma una decisión concreta.
El Dispatcher es el sistema que decide automáticamente qué repartidor (o transportista externo) entrega cada pedido, y cuándo. Funciona solo, con la periodicidad que tú defines, y reevalúa los pedidos pendientes de cada tienda en cada ejecución.
Estas páginas explican la lógica de esas decisiones en términos de negocio: qué optimiza el algoritmo, qué determina la prioridad, qué opciones de configuración tienes y qué esperar —o no esperar— de él.
Cómo leer este capítulo
No hace falta leerlo de principio a fin. Casi todas las dudas se resuelven en una sola página:
| Si quieres saber… | Ve a |
|---|---|
| Qué significa un término | Glosario del dispatcher |
| Qué ocurre en cada ejecución | El ciclo de asignación, paso a paso |
| Por qué un pedido se quedó con un transportista externo | Revisión de pedidos ya asignados a un transportista |
| Por qué se eligió a un repartidor y no a otro | Clasificación y prioridad de repartidores |
| Por qué un pedido cambió de repartidor | Cuándo un pedido cambia de repartidor |
| Por qué un pedido se quedó sin asignar | Last-Option: la red de seguridad final y las Preguntas frecuentes del dispatcher |
| Cada cuánto se ejecuta, y cómo arrancarlo o pararlo | Planes de programación: cómo funciona el ciclo automático |
| Dónde se cambia un ajuste concreto | Dónde vive cada ajuste |
| Todo el flujo en una sola página | Visión de principio a fin |
| Una regla, sin la explicación | Reglas de referencia rápida |
| Cómo reportar algo que parece incorrecto | Reportar una incidencia del dispatcher |
Una vez que el dispatcher ha tomado sus decisiones, el tablero en vivo donde una persona puede intervenir es el Hub — ver El Hub: qué es y quién puede hacer qué.
Lo que no hace
El dispatcher está acotado a propósito. No intenta encontrar un plan matemáticamente perfecto para todos los repartidores y todos los pedidos a la vez, nunca toca un pedido que ya ha salido de la tienda, y no reordena el trabajo solo porque un pedido sea más urgente que otro. Esos límites están listados en Límites conocidos del sistema: son decisiones de diseño, no fallos, y conocerlos ahorra mucho tiempo de conjeturas.
Glosario del dispatcher
Estos términos se usan de forma consistente en todo el capítulo de Reparto y Dispatcher.
| Término | Significado |
|---|---|
| Flota propia / Repartidores propios | El personal de reparto de tu propio negocio: repartidores y, en algunos casos, personal de cocina que también reparte |
| Transportista externo | Un proveedor de reparto externo (por ejemplo una plataforma de mensajería) que se usa cuando tu flota propia no es la mejor opción |
| Clientes prioritarios (Platinum) | Función opcional que da a ciertos pedidos —normalmente de clientes de fidelización o VIP— más posibilidades de entregarse a tiempo, sin perjudicar injustamente a los pedidos normales |
| Modo PG | Método de asignación por orden de llegada (FIFO): los pedidos se asignan al mejor repartidor disponible en el orden en que entraron |
| Google OR-Tools | Motor avanzado de optimización de rutas, que se usa normalmente cuando hay más pedidos pendientes que repartidores disponibles, para planificar rutas más eficientes |
| Last-Option | Red de seguridad final, dentro del mismo ciclo, para pedidos que el proceso normal no ha podido colocar — ver Last-Option: la red de seguridad final |
| Idle (libre) | Repartidor sin ningún pedido asignado |
| Waiting (esperando) | Repartidor con pedidos asignados que todavía no ha salido de la tienda |
| On The Way (en ruta) | Repartidor que ya ha salido de la tienda para entregar al menos un pedido |
| Zona de tienda | Estar a unos 350 metros de la tienda: lo bastante cerca como para considerarse "en la tienda" a efectos de asignación |
| Tiempo hasta la tienda | Tiempo estimado para que un repartidor vuelva a la tienda |
| Tiempo hasta la entrega | Tiempo estimado para que un repartidor complete una entrega |
| Ciclo de asignación / Ejecución | Una ejecución completa del algoritmo sobre todas tus tiendas, lanzada automáticamente según la programación que definas |
| Agrupación (clubbing) | Agrupar más de un pedido en el mismo repartidor o transportista para un solo viaje |
| Crítico | Pedido todavía sin asignar que ya ha superado su hora prometida de entrega |
| Pendiente | Pedido todavía sin asignar que aún no va tarde |
El ciclo de asignación, paso a paso
Cada vez que el dispatcher se ejecuta, procesa cada tienda de forma independiente, siguiendo cinco pasos en orden.
Los cinco pasos
| # | Paso | Qué ocurre |
|---|---|---|
| 1 | Obtener datos | Recoge los pedidos actuales, los repartidores disponibles y la configuración de tienda y de zonas. Aquí también se revisa cualquier pedido que siga con un transportista externo de un ciclo anterior — ver Revisión de pedidos ya asignados a un transportista. |
| 2 | Comprobación de caché | Si nada ha cambiado desde la última ejecución, la tienda se omite en lugar de reprocesarse, para ahorrar tiempo y recursos. |
| 3 | Asignar pedidos | El paso donde se toman las decisiones, explicado en Los tres mecanismos de asignación. Aquí confluyen la lógica de transportistas externos, la de flota propia y —opcionalmente— la de clientes prioritarios. |
| 4 | Posprocesado | Se clasifican los resultados (asignaciones nuevas, pedidos aún pendientes, pedidos enviados a transportista externo, etc.), se identifican los pedidos agrupables en un mismo repartidor y todo lo que siga sin asignar recibe un último intento más flexible —ver Last-Option: la red de seguridad final— antes de marcarse como Pendiente o Crítico. |
| 5 | Guardar y notificar | Se guardan las asignaciones finales, se avisa a los repartidores por notificación push y se procesan las alarmas correspondientes. |
El paso 2 es la razón de que una ejecución termine casi al instante para una tienda tranquila. Que una tienda se omita no es un error y no se pierde nada: el siguiente ciclo la recoge en cuanto algo cambie.
Qué significa "de forma independiente, por tienda"
Cada tienda se resuelve por su cuenta. Una falta de repartidores en una tienda nunca trae repartidores de otra, y una tienda cuyos datos no han cambiado se omite sin afectar al resto. Por eso, al reportar un problema del dispatcher, siempre hay que indicar la tienda — ver Reportar una incidencia del dispatcher.
Dónde está el detalle
Los pasos 1 y 3 concentran casi toda la toma de decisiones, y cada uno tiene su propia página:
- La revisión de pedidos que ya están con un transportista, del paso 1 → Revisión de pedidos ya asignados a un transportista
- La comprobación de si existe realmente un sustituto → ¿Cuándo existe una alternativa?
- La lógica de asignación del paso 3 → Los tres mecanismos de asignación
- El último intento del paso 4 → Last-Option: la red de seguridad final
Revisión de pedidos ya asignados a un transportista
Antes de evaluar cualquier asignación nueva, el dispatcher revisa todos los pedidos que ya están con un transportista externo de un ciclo anterior, es decir, aquellos que un transportista tiene adjudicados pero con los que todavía no ha salido de la tienda.
Esto ocurre en el paso 1 de El ciclo de asignación, paso a paso, para cada tienda y en cada ciclo. Nunca afecta a pedidos nuevos ni a pedidos ya asignados a tu flota propia.
Las tres preguntas, en orden
Para cada pedido en manos de un transportista se hacen hasta tres preguntas. La primera que resuelve el pedido detiene la secuencia.
1. ¿El transportista lleva demasiado tiempo con este pedido?
Lo rige Tiempo máximo para aceptar (configurado por tienda y por transportista — ver Dónde vive cada ajuste).
- Límite superado y existe una alternativa real ahora mismo → el pedido se cancela con el transportista de inmediato y queda libre para reasignarse en este mismo ciclo.
- Límite superado pero no existe alternativa → el pedido se deja exactamente como está. Cancelarlo solo lo dejaría peor, sin ningún sitio mejor al que enviarlo.
- Límite no alcanzado → se pasa a la pregunta 2.
2. ¿La propia estimación del transportista para llegar a la tienda se está desviando demasiado?
Lo rige Tiempo máximo para llegar a la tienda (por tienda y por transportista).
Si la hora estimada de llegada del transportista a la tienda se ha desviado más allá de este límite, el pedido se cancela de inmediato, exista o no una alternativa. Una estimación poco fiable del propio transportista es motivo suficiente para desistir.
3. ¿Seguimos dentro de la ventana de cancelación gratuita y nuestra flota propia tiene hueco?
Lo rige Ventana de cancelación gratuita (por transportista, para toda la empresa).
Si la respuesta a ambas es sí, el pedido se marca como sin asignar, pero solo en la memoria de trabajo del dispatcher. No se guarda nada y no se cancela nada con el transportista todavía. El pedido simplemente vuelve a entrar en el proceso normal de asignación de esa tienda, igual que cualquier otro pedido sin asignar de ese ciclo.
No es una rutina especial de "probar con flota propia". A partir de aquí el dispatcher no tiene ninguna noción de que ese pedido estuviera con un transportista: pasa por Modo PG, Google OR-Tools y transportistas externos como todo lo demás, con las mismas reglas.
Si el proceso normal le asigna un repartidor propio, ocurren dos cosas en orden estricto:
- Se envía una cancelación real al transportista externo original.
- Solo si esa cancelación tiene éxito, se guarda la nueva asignación al repartidor interno.
Si la cancelación falla, el paso 2 no llega a ocurrir: no cambia nada y el pedido sigue con el transportista. Así se evita un estado confuso en el que un mismo pedido parece asignado en dos sitios a la vez.
Si el proceso normal no lo coloca con ningún repartidor propio, se descarta la marca en memoria. El pedido vuelve a estar exactamente como estaba —válidamente asignado al transportista— como si nada hubiera pasado. En este caso nunca se envía ninguna cancelación.
Las preguntas 1 y 2 se parecen pero comparan cosas distintas
Es la principal fuente de confusión de esta página.
| Pregunta | Qué compara realmente | Consecuencia |
|---|---|---|
| Tiempo máximo para aceptar | Tiempo real transcurrido: ahora, frente al momento en que se entregó el pedido al transportista. Solo falla cuando ha pasado de verdad suficiente tiempo de reloj. | Cancela, pero solo si existe una alternativa |
| Tiempo máximo para llegar a la tienda | La promesa del propio transportista: su estimación de llegada, frente al momento en que se le entregó el pedido. Nunca mira la hora actual. Puede fallar a los pocos segundos si su propia estimación ya es demasiado lejana. | Cancela haya o no alternativas |
| Ventana de cancelación gratuita | El mismo tipo de comparación que Tiempo máximo para aceptar (ahora frente al momento de asignación), pero con otra consecuencia: superarla no cancela nada por sí misma. Solo abre la puerta al intento sin compromiso con la flota propia descrito arriba. | Habilita el reintento sin riesgo |
Qué pasa si el intento con flota propia no sale bien
El pedido se excluye deliberadamente de la pasada de respaldo a transportistas de ese mismo ciclo: no se vuelve a evaluar frente a transportistas en esta ejecución.
Es intencionado. El pedido ya está válidamente asignado a un transportista, así que repetir la pasada de respaldo sería redundante en el mejor de los casos, y podría generar una segunda asignación en conflicto para un pedido que ya tiene una. El pedido continúa con su asignación existente hasta la siguiente comprobación relevante: un ciclo futuro, o un fallo real en el tiempo de entrega.
Por qué esto importa
Sin esta revisión, un pedido podría quedarse indefinidamente con un transportista lento o que no responde, o seguir ahí incluso después de que tu flota propia hubiera quedado libre para llevarlo antes.
El intento con flota propia es deliberadamente libre de riesgo: si no cuaja, el pedido se queda exactamente como estaba, el transportista ni se entera, y nunca se cancela nada sin tener ya un sustituto confirmado.
¿Cuándo existe una alternativa?
La primera pregunta de Revisión de pedidos ya asignados a un transportista solo cancela a un transportista lento si existe una alternativa real dispuesta a asumir el pedido.
Esa comprobación tiene dos mitades independientes: si tu flota propia podría llevarlo, y si otro transportista externo podría llevarlo. Se diferencian mucho en profundidad. Basta con que una de las dos sea cierta.
Flota propia: una sola comprobación
| Comprobación | Qué verifica | Dónde se configura |
|---|---|---|
| Hueco de capacidad | Al menos un repartidor de flota propia (interno o contratado) tiene sitio para un pedido más | Máximo de pedidos por repartidor — ver Dónde vive cada ajuste |
Es a propósito una comprobación rápida y optimista. Solo pregunta "¿hay algún repartidor con un hueco libre?", no si ese repartidor está lo bastante cerca, está libre o puede realmente asumir este pedido. Existe únicamente para responder "¿merece la pena siquiera cancelar el pedido del transportista?". La evaluación real llega después, cuando el pedido vuelve al proceso normal de asignación.
Transportistas externos: varias comprobaciones, y solo los que van por detrás
Primero, una regla de alcance importante: aquí solo se miran los transportistas que van por detrás del actualmente asignado en el orden configurado para esa zona. Los transportistas anteriores de la lista nunca se consideran en este punto, aunque cumplieran todo. La búsqueda se detiene en el primero que pase todas las comprobaciones; no busca el "mejor".
Para cada transportista candidato, por orden, debe cumplirse todo lo siguiente:
| Comprobación | Qué verifica |
|---|---|
| Activo y tipo de pedido compatible | El interruptor principal del transportista está activo y aplica al tipo de pedido y canal de venta |
| Compatibilidad de pago | Los pedidos en efectivo no superan su límite de contra reembolso; los pedidos con tarjeta solo se le ofrecen si acepta tarjeta |
| Restricciones de producto | Ningún producto del pedido cae en una categoría excluida para ese transportista |
| Capacidad en esta tienda | Al transportista le queda hueco en su bolsa de capacidad compartida para esa tienda |
| Distancia | La distancia de la tienda al cliente está dentro del rango permitido del transportista |
| Horario de operación | La hora actual está dentro del horario configurado para ese transportista en esa tienda |
El primer candidato que pase las seis cuenta como "existe una alternativa", y la búsqueda se detiene ahí.
Lo que deliberadamente no se comprueba aquí: la verificación normal de ventana de entrega se omite. En este punto el sistema solo confirma que un transportista podría asumir el pedido estructuralmente —activo, pago, productos, capacidad, distancia, horario—. Si podría entregarlo a tiempo se evalúa después, si llega a ofrecérsele el pedido.
Todos estos ajustes viven en la configuración general o por tienda del transportista — ver Dónde vive cada ajuste.
Los tres mecanismos de asignación
Todo pedido se resuelve finalmente con uno —o una combinación— de tres mecanismos.
| Mecanismo | Cuándo se usa |
|---|---|
| Modo PG (FIFO) | Tienes suficientes repartidores propios para cubrir los pedidos pendientes |
| Google OR-Tools | Hay más pedidos pendientes que repartidores propios, así que hace falta planificar rutas más eficientes |
| Transportistas externos | Tu red de reparto externa |
Cuál de los dos, Modo PG o Google OR-Tools, se usa en una tienda concreta se decide automáticamente a partir de la proporción entre pedidos pendientes y repartidores disponibles, salvo que fuerces un modo en el plan de programación. Ver Planes de programación: cómo funciona el ciclo automático.
Cómo se combinan
La configuración de la zona decide si el transportista externo tiene el primer intento o si solo actúa como red de seguridad. Todo lo demás funciona igual en ambos casos.
Zona estándar — flota propia primero:
- Solver propio (Modo PG o Google OR-Tools).
- Reintento con repartidores libres en tienda que el solver no haya usado.
- Respaldo con transportista externo, como último recurso.
Zona con transportista primero:
- Transportista externo, un intento. Si lo acepta, listo.
- Solver propio (Modo PG o Google OR-Tools).
- Reintento con repartidores libres.
- Sin más respaldo: el pedido ya tuvo su turno con transportista externo.
La regla que mantiene el equilibrio
Cada pedido recibe exactamente un intento con cada tipo de recurso —flota propia y transportista externo— por ciclo de asignación.
La configuración de la zona solo decide cuál va primero, nunca cuántos intentos recibe un pedido:
| Tipo de zona | Orden de intentos | Intentos totales |
|---|---|---|
| Estándar | Flota propia → Transportista | 2 |
| Transportista primero | Transportista → Flota propia | 2 |
Siempre dos. Nunca tres, nunca uno.
Antes de dejar el pedido para el siguiente ciclo
Queda un intento más flexible dentro del mismo ciclo — ver Last-Option: la red de seguridad final.
Si tras eso el pedido sigue sin asignar, la siguiente ejecución programada empieza completamente de cero, incluido un intento nuevo con transportista externo. Cuándo ocurre eso lo marca el plan de programación de la tienda.
Last-Option: la red de seguridad final
Después de que el solver propio y el intento con transportista externo hayan tenido cada uno su única oportunidad, algunos pedidos pueden seguir sin asignar. En lugar de dejarlos para el ciclo siguiente, el dispatcher hace un intento más —por tienda, al final del mismo ciclo— llamado Last-Option.
Qué problema resuelve
Last-Option solo mira los pedidos que siguen sin asignar tras el proceso normal. Su objetivo es simple: evitar dejar un pedido completamente sin asignar si existe alguna forma razonable de colocarlo, aunque eso implique ser más flexible que las reglas normales.
Cómo se buscan los candidatos
Los candidatos se obtienen de forma distinta según su procedencia, y Last-Option relaja algunas comprobaciones que el proceso normal sí aplica.
| Origen | Cómo se elige el candidato | Qué se relaja |
|---|---|---|
| Flota propia (internos y contratados) | El mejor repartidor disponible, por capacidad y por cuándo podría salir | No se vuelve a comprobar la ventana de entrega habitual |
| Transportistas externos | Cualquier transportista ya probado y descartado antes en este mismo ciclo | No se revisa el motivo original del descarte: solo si desde entonces ha liberado capacidad |
Se elige el candidato que pueda empezar la entrega antes.
Orden de procesamiento
Los pedidos se procesan de uno en uno, empezando por el más urgente, según la hora prometida de entrega.
El estado de cliente prioritario (Platinum) no influye en qué pedido entra antes en Last-Option. Platinum solo afecta al orden de varios pedidos que ya están en la ruta del mismo repartidor.
Paso a paso
- Se recogen los pedidos que siguen sin asignar tras el solver propio y el intento con transportista.
- Se ordenan por hora prometida, el más urgente primero.
- Para cada pedido, por turno, se reúnen candidatos:
- el mejor repartidor propio disponible —capacidad comprobada, ventana de entrega no revisada—;
- los transportistas descartados antes en este ciclo, reconsiderados solo si han liberado capacidad.
- Se elige el candidato que pueda empezar la entrega antes.
- Si no hay ninguno, el pedido se queda sin asignar y se marca como Crítico o Pendiente.
Si ni siquiera Last-Option puede colocarlo
El pedido se clasifica como Crítico (ya pasada su hora prometida) o Pendiente (aún no va tarde). La siguiente ejecución programada lo reintenta desde cero, incluido un intento nuevo con transportista externo.
Contrapartida a tener en cuenta: como Last-Option relaja la comprobación normal de tiempo de entrega para los repartidores propios, un pedido colocado por esta vía puede acabar con una estimación de llegada algo más tardía de lo que permitiría la tolerancia normal. Es intencionado: mejor ponerlo en marcha con un pequeño retraso que dejarlo sin asignar.
Clasificación y prioridad de repartidores
Los repartidores se ordenan por tres factores: su estado actual, su tipo y lo cerca que están de la tienda.
Por estado
| Estado | Descripción |
|---|---|
| Idle (libre) | No tiene ningún pedido asignado; totalmente disponible |
| Waiting (esperando) | Tiene pedidos asignados, pero ninguno ha salido aún de la tienda |
| On The Way (en ruta) | Tiene al menos un pedido ya en reparto |
Por tipo
| Tipo | Descripción | Prioridad |
|---|---|---|
| Repartidor interno | Tu personal de reparto dedicado | La más alta |
| Personal de cocina que reparte | Personal de cocina que también puede repartir cuando hace falta | Media |
| Contratado externo de flota propia | Repartidor de flota propia contratado externamente | Más baja |
| Transportista externo | Plataforma de reparto externa | Según las reglas de zona y configuración |
Estado y ubicación combinados
La "zona de tienda" son unos 350 metros alrededor de la tienda.
| Categoría | Estado | Ubicación | Prioridad |
|---|---|---|---|
| 1 | Libre | En la tienda | La más alta |
| 2 | Libre | Lejos de la tienda | Alta |
| 3 | Esperando | En la tienda | Media |
| 4 | Esperando | Lejos de la tienda | Más baja |
| 5 | En ruta | Repartiendo | La más baja |
El razonamiento es directo: un repartidor libre que ya está en la tienda es la opción más rápida posible, así que siempre se prefiere. Un repartidor que ya está repartiendo es el último recurso, porque asignarle un pedido nuevo significa añadirlo a una ruta existente.
Dónde importa realmente "en la tienda o lejos"
Esta distinción no se usa solo para la tabla anterior. Cambia decisiones reales en varios sitios:
- Velocidad de asignación. Un repartidor libre en la tienda se asigna al instante, sin más comprobaciones. Uno libre pero lejos debe pasar antes una comprobación de tiempo de entrega.
- Prioridad de reasignación. Es uno de los factores principales al decidir si un pedido cambia de repartidor — ver Cuándo un pedido cambia de repartidor.
- Registro de llegada. Cuando se confirma que un repartidor está en la tienda en el momento de asignarle un pedido, se registra una marca de llegada en ese pedido.
- Alarmas de retraso en recogida. Esa misma determinación dispara la alarma que avisa de que un repartidor lleva demasiado tiempo en la tienda sin salir con un pedido listo.
- Detección de repartidor bloqueado. Un repartidor considerado "en la tienda" nunca se marca como bloqueado: estar en la tienda es un estado válido y esperado.
- Estado del repartidor en las pantallas operativas. Etiquetas como "En tienda", "En ruta" o "Fuera" salen de esta misma comprobación.
- Si el dispatcher se reejecuta o no. Si el estado "en tienda" de ningún repartidor ha cambiado desde la última ejecución —y todo lo demás sigue igual—, la tienda puede omitirse. Ver El ciclo de asignación, paso a paso.
Cambio previsto, actualmente en pruebas internas. Hoy, determinar si un repartidor está "en la tienda" usa una distancia de conducción estimada comparada con el umbral de ~350 m, no una distancia en línea recta. Se va a sustituir por un cálculo en línea recta, porque una estimación de ruta puede ser imprecisa justo alrededor de una tienda. El cambio todavía no está activo en todas las cuentas; esta página se actualizará cuando se publique.
Clientes prioritarios (Platinum)
Esta página solo aplica si tu cuenta tiene activada la evaluación de clientes prioritarios (Platinum). No forma parte del flujo principal: funciona como una capa adicional por encima de él, solo en las tiendas donde esté activada y solo cuando haya pedidos Platinum que considerar.
Qué hace
Cuando está activada, el dispatcher ejecuta una doble simulación para cada tienda antes de decidir:
- Ejecución normal — los pedidos se procesan en su orden habitual.
- Ejecución Platinum primero — los pedidos Platinum pasan al principio de la cola y reciben algo más de flexibilidad en el tiempo de entrega.
Se comparan ambos resultados y el dispatcher elige el que mejor protege a los pedidos Platinum sin perjudicar en exceso a los pedidos normales.
Cómo se toma la decisión
- ¿Hay pedidos Platinum en riesgo en la ejecución normal?
- No → se usa la ejecución normal tal cual. La segunda simulación ni siquiera se lanza.
- Sí → se continúa.
- Se ejecuta la simulación Platinum primero.
- Se cuenta cuántos pedidos normales quedarían nuevamente perjudicados.
- Por debajo del umbral de impacto → se usa el resultado Platinum primero.
- Igual o por encima del umbral → se descarta y se usa el resultado normal.
Un pedido Platinum se considera "en riesgo" si no se asignaría en absoluto, o si su entrega estimada quedaría fuera de una ventana aceptable de riesgo de reembolso.
Qué puedes configurar
| Ajuste | Qué controla |
|---|---|
| Activar / desactivar | Enciende o apaga toda la capa |
| Minutos de margen | Flexibilidad adicional de tiempo de entrega concedida específicamente a la simulación Platinum primero |
| Umbral de impacto | Número máximo de pedidos normales que pueden quedar nuevamente perjudicados antes de descartar el resultado Platinum primero |
Lo que deliberadamente no hace
La protección Platinum funciona únicamente a través de la doble simulación anterior. No hay reequilibrado de rutas existentes para hacer sitio a un pedido Platinum: ese límite y los demás están listados en Límites conocidos del sistema.
El estado Platinum tampoco interviene en la reasignación ordinaria (Cuándo un pedido cambia de repartidor) ni en el orden de la cola de Last-Option (Last-Option: la red de seguridad final).
Si la capa no está activada, los pedidos Platinum se tratan exactamente igual que cualquier otro pedido.
Cuándo un pedido cambia de repartidor
Antes de cada intento de asignación, el dispatcher comprueba si un pedido ya asignado a un repartidor debería pasar a otro distinto, pero solo por prioridad del repartidor, nunca por lo urgente o importante que sea el pedido en sí.
Cuándo se permite una reasignación
| Situación | Resultado |
|---|---|
| El pedido aún no tiene repartidor | Se asigna libremente |
| El repartidor asignado ya no está disponible | Se asigna libremente |
| Se vuelve a considerar al mismo repartidor | No hace falta cambiar nada |
| El nuevo repartidor tiene mejor prioridad | Se reasigna |
| El repartidor actual tiene prioridad igual o mejor | Se mantiene |
La prioridad se define en Clasificación y prioridad de repartidores.
Escenarios habituales
| Repartidor actual | Repartidor candidato | Resultado |
|---|---|---|
| Externo | Interno | Se reasigna — mejor tipo |
| Libre, en la tienda | Libre, en la tienda | Sin cambio — igual de buenos |
| Libre, lejos de la tienda | Libre, en la tienda | Se reasigna — mejor ubicación |
| Esperando, en la tienda | Libre, lejos de la tienda | Sin cambio — el actual sigue siendo mejor |
| Externo, lejos de la tienda | Externo, lejos de la tienda | Sin cambio — no hay mejora real |
Pasar la comprobación de prioridad no garantiza la entrega
Pasarla solo significa que el dispatcher intentará la asignación. Todavía tiene que verificar que el nuevo repartidor puede entregar a tiempo:
| Situación del repartidor | ¿Se comprueba el tiempo de entrega? |
|---|---|
| Libre, en la tienda | No — siempre es la opción más rápida posible |
| Libre, lejos de la tienda | Sí |
| Esperando (ya tiene pedidos) | Sí — debe poder entregarlos todos |
| En ruta | Sí — se recalcula la ruta completa |
Si la comprobación de tiempo falla, la asignación se revierte y el pedido queda disponible para el siguiente repartidor de la lista. No se pierde.
Reglas que nunca cambian
- Los pedidos que ya están en reparto —el repartidor ha salido de la tienda— nunca se reasignan.
- Los pedidos asignados manualmente por un empleado, y no por el dispatcher, quedan completamente bloqueados frente a la reasignación automática.
- Un repartidor interno puede quitarle un pedido a uno externo. Al revés nunca se permite.
Planes de programación: cómo funciona el ciclo automático
El dispatcher se ejecuta según una programación que defines por tienda, o por grupo de tiendas. La programación y el comportamiento de asignación se configuran juntos, en el mismo plan.
Cómo funciona el ciclo automático
- Cada plan define cada cuánto debe ejecutarse el dispatcher para un grupo de tiendas.
- Opcionalmente puedes restringir la ejecución a una franja horaria diaria, por ejemplo solo entre las 08:00 y las 23:00.
- Si una ejecución falla, el ciclo no se rompe: la siguiente se programa automáticamente mientras el plan siga activo.
- Si una ejecución cae fuera de la franja configurada, se omite en ese ciclo, pero la programación continúa y se reanuda con normalidad al volver dentro de la franja.
Ajustes de programación
| Ajuste | Por defecto | Qué hace |
|---|---|---|
| Nombre del plan | — | Etiqueta para identificar el plan. Opcional, texto libre |
| Tiendas | — | Las tiendas a las que aplica el plan. Un plan puede cubrir varias |
| Activo | Desactivado | Si el ciclo automático está funcionando para este plan |
| Intervalo de ejecución | 60 segundos | Cada cuánto se reejecuta el dispatcher. Rango permitido: 60–300 segundos |
| Franja horaria diaria | Ninguna | Hora de inicio y fin opcionales. Si no se define, el plan funciona 24/7 |
| Última ejecución | — | Solo lectura. Cuándo se ejecutó realmente este plan por última vez |
Ajustes de comportamiento de asignación
| Ajuste | Por defecto | Qué hace |
|---|---|---|
| Modo de asignación | Automático | Fuerza Modo PG o Google OR-Tools, o deja la elección automática (recomendado) |
| Estrategia de ruta | Automática | Solo relevante cuando se usa Google OR-Tools |
| Tiempo de parada en cliente | 5 min | Tiempo adicional contabilizado en cada parada en casa del cliente |
| Tiempo de parada en tienda | 3 min | Tiempo adicional contabilizado en cada parada en tienda |
| Máximo de pedidos por repartidor | 3 | Cuántos pedidos como máximo se agrupan en un repartidor propio. Rango: 1–5 |
| Margen para repartidor desconectado | 5 min | Cuánto se tolera a un repartidor brevemente desconectado antes de considerarlo no disponible |
| Aplicar resultados | Activado | Si se desactiva, la ejecución es solo una simulación y no cambia nada |
| Margen de tiempo extra | 10 min | Holgura adicional permitida. Solo relevante para Google OR-Tools |
| Mínimo de pedidos para aceptar un plan | 0 | Cuántos pedidos debe asignar Google OR-Tools con éxito para que se acepte su plan |
| Clientes prioritarios (Platinum) | Desactivado | Activa y configura la capa Platinum — ver Clientes prioritarios (Platinum) |
| Estimaciones con tráfico | Desactivado | Estimaciones de tiempo más precisas, con mayor coste |
| Tipo de estimación de tráfico | — | Optimista, pesimista o estimación más probable. Solo se usa si las estimaciones con tráfico están activas |
| Reutilización de tiempos de regreso | — | Avanzado. Controla con qué agresividad se reutilizan tiempos de repartidor a tienda ya calculados en lugar de recalcularlos |
Ajustes de reparto a nivel de tienda
Otros dos ajustes viven en la tienda, no dentro del plan de programación. Se configuran desde los ajustes de dispatcher de la tienda y controlan cuánto retraso se tolera antes de considerar un pedido en riesgo.
| Ajuste | Aplica a | Qué hace |
|---|---|---|
| Tolerancia de retraso de flota propia | Tu flota propia — internos y contratados, tratados por igual | La tolerancia usada al comprobar si tu flota propia puede entregar a tiempo. Si una tienda no tiene ningún repartidor interno, este valor se sustituye automáticamente por la tolerancia de transportistas de abajo, para que una tienda 100 % contratada no quede sujeta a un criterio más estricto del que puede cumplir |
| Tolerancia de retraso de transportistas | Transportistas externos | La tolerancia usada para decidir si se puede confiar en que un transportista entregue a tiempo. Se aplica siempre a los transportistas, tenga o no la tienda repartidores internos |
La capacidad funciona distinto que la tolerancia de retraso. Tu flota propia tiene un límite por repartidor: cada vehículo lleva como máximo el número configurado a la vez. Los transportistas externos tienen una única bolsa compartida por tienda y por empresa transportista: por ejemplo "este transportista puede llevar 10 pedidos simultáneos en esta tienda", tenga los mensajeros que tenga en la calle. Por eso un transportista puede aparecer como lleno en una tienda aunque parezca que tiene repartidores de sobra: el límite está puesto a nivel de empresa, no por mensajero.
Activar y pausar un plan
Esta es la parte que más confusión genera.
| Acción | ¿Arranca el ciclo? | ¿Detiene el ciclo? |
|---|---|---|
| Crear un plan con Activo encendido | Sí | — |
| Crear un plan con Activo apagado | No — queda inactivo | — |
| Editar un plan existente y encender Activo | Sin efecto — solo actualiza el valor guardado | — |
| Editar un plan existente y apagar Activo | — | Sí, a partir de la siguiente ejecución |
| Usar la acción dedicada Activar | Sí | — |
| Usar la acción dedicada Pausar | — | Sí |
| Eliminar un plan | — | Sí |
Recomendación: no confíes en editar el campo Activo desde un formulario de edición general. Usa siempre las acciones dedicadas Activar y Pausar: editar el campo directamente puede dejar un plan marcado como activo pero sin estar funcionando realmente.
Dónde vive cada ajuste
Más allá del plan de programación, hay varias partes del producto con ajustes que afectan directamente a las decisiones del dispatcher. Esta página los lista según dónde irías realmente a cambiarlos, e incluye solo los ajustes editables.
Para el plan de programación en sí, ver Planes de programación: cómo funciona el ciclo automático.
Zonas
Se editan desde los ajustes de disponibilidad de repartidores de la zona.
| Ajuste | Qué controla |
|---|---|
| Prioridad propia frente a transportista | Si los pedidos de esta zona van directamente a transportistas externos primero, o empiezan por tu flota propia como es habitual |
| Regla de orden de transportistas | Cuando hay más de un transportista disponible para la zona, en qué orden se prueban: tu orden configurado, menor coste primero, o menor tiempo primero |
| Transportistas permitidos | Qué transportistas pueden recibir pedidos de esta zona |
| Tipos de repartidor propio permitidos | Qué tipos de repartidor propio pueden repartir en esta zona. Dejarlo vacío bloquea por completo a todos los repartidores propios en la zona |
| Margen de tiempo adicional | Minutos extra añadidos al tiempo previsto en casa del cliente para los pedidos de esta zona, por ejemplo para compensar accesos difíciles |
Las zonas también muestran un campo de desviación del tiempo de entrega, junto a campos de precios como gastos de envío o importes mínimos de pedido. Son editables en la misma pantalla pero no los usa el dispatcher: la desviación del tiempo de entrega la consume la web de pedidos, no la lógica de asignación.
Tiendas
Se editan desde los ajustes de dispatcher de la tienda.
| Ajuste | Qué controla |
|---|---|
| Tolerancia de retraso propia / de transportistas | Ver Planes de programación: cómo funciona el ciclo automático para entender cómo funcionan juntas |
| Distancia máxima para personal de cocina | Hasta dónde se puede enviar a un repartidor de cocina desde la tienda. Ponlo a cero para eliminar la restricción |
Las tiendas también tienen horarios de apertura y cierre, por día y por turno, configurados en otra parte del producto. El dispatcher no los usa.
Transportistas externos: ajustes generales
Se editan desde la configuración general del transportista. Aplican a toda la empresa, en todas las tiendas.
| Ajuste | Qué controla |
|---|---|
| Activo | Interruptor principal. Mientras esté desactivado, este transportista nunca se considera, en ninguna tienda |
| Tipo de pedido / canal de venta | Restringe a qué tipos de pedido y canales de venta se le puede ofrecer |
| Punto de integración | La conexión usada para llegar a la plataforma del transportista. Normalmente se configura una sola vez, en el alta |
| Coste de entrega por defecto | Se usa para estimar y ordenar a este transportista cuando no hay precio en vivo |
| Margen mínimo de preparación | Cuánto tiempo debe faltar todavía para que un pedido pueda ofrecérsele |
| Importe máximo contra reembolso | Los pedidos en efectivo por encima de este importe no se le ofrecen |
| Acepta tarjeta | Si se le pueden ofrecer pedidos pagados con tarjeta |
| Familias de producto excluidas | Categorías de producto —por ejemplo artículos con restricción de edad— que nunca se le ofrecen |
| Distancia máxima | Distancia máxima de tienda a cliente para la que se le ofrecen pedidos |
| Ventana de cancelación gratuita | Minutos tras la asignación durante los cuales el pedido todavía puede recuperarse sin penalización. Ver Revisión de pedidos ya asignados a un transportista |
| Descripción | Etiqueta interna del transportista |
En este nivel también existe un ajuste de "tiempo de entrega por defecto", pero ya no se usa: se movió a los ajustes por tienda de abajo para poder afinarlo con más precisión.
Transportistas externos: ajustes por tienda
Se editan desde los ajustes del transportista para una tienda concreta. Añaden detalle específico de tienda sobre los ajustes generales anteriores, para el mismo transportista.
| Ajuste | Qué controla |
|---|---|
| Tiempo máximo para llegar a la tienda | Si el repartidor del transportista no llega dentro de este tiempo tras aceptar, el pedido se cancela y se reasigna |
| Tiempo estimado para llegar a la tienda (alternativo) | Se usa cuando no hay estimación en vivo para este transportista en esta tienda |
| Tiempo máximo para aceptar | Si el transportista no acepta el pedido dentro de este tiempo, se libera para reasignación |
| Tiempo de entrega por defecto | La estimación de entrega que se usa cuando no hay media histórica para este transportista en esta tienda |
| Agrupación permitida | Si el repartidor de este transportista puede llevar más de un pedido por viaje en esta tienda |
| Capacidad en esta tienda | Bolsa compartida para este transportista en esta tienda, no un límite por mensajero |
| Horario de operación | Días y turnos en los que este transportista está disponible en esta tienda. Fuera de ese horario se omite por completo |
Reglas de referencia rápida
Resumen en una página de las reglas que más se consultan. Cada una enlaza con la página que la explica a fondo.
| Regla | Comportamiento |
|---|---|
| Pedidos ya en reparto | Nunca se revalidan ni se reasignan; solo se usan para estimar cuándo vuelve el repartidor |
| Pedidos aún sin salir | Pueden reasignarse si aparece un repartidor mejor |
| Comprobaciones de reasignación | Se ejecutan antes de cada intento de asignación |
| Criterio de reasignación | Solo prioridad del repartidor; nunca lo urgente que sea el pedido |
| Pedidos asignados manualmente | Totalmente bloqueados frente a la reasignación automática |
| Repartidores internos frente a externos | Los internos pueden quitar pedidos a los externos. Al revés, nunca |
| Intentos por ciclo | Exactamente uno con flota propia y uno con transportista. La zona decide el orden, no la cantidad |
| Clientes prioritarios (Platinum) | No se tienen en cuenta en la reasignación ordinaria; solo dentro de su propia capa opcional |
| Pedido ya con un transportista | Todavía puede recuperarse para la flota propia antes de que el transportista lo recoja, si se está dentro de la ventana de cancelación gratuita y hay hueco |
| Un pedido con transportista nunca se cancela a ciegas | Nunca se cancela nada sin tener ya un sustituto confirmado |
| Sin asignar al final de un ciclo | Se marca como Crítico o Pendiente y se reintenta desde cero en la siguiente ejecución programada |
Dónde ampliar
| Tema | Página |
|---|---|
| Orden de repartidores | Clasificación y prioridad de repartidores |
| Reglas de reasignación | Cuándo un pedido cambia de repartidor |
| Recuperar un pedido de un transportista | Revisión de pedidos ya asignados a un transportista |
| El último intento | Last-Option: la red de seguridad final |
| Límites de diseño | Límites conocidos del sistema |
Límites conocidos del sistema
Son límites de diseño intencionados, no fallos. Conocerlos mantiene las expectativas realistas y ahorra tiempo cuando algo parece incorrecto pero no lo es.
No hay reequilibrado proactivo
El dispatcher nunca saca un pedido normal de la ruta de un repartidor solo para hacer sitio a un pedido Platinum. La protección Platinum funciona únicamente mediante la doble simulación descrita en Clientes prioritarios (Platinum).
Los pedidos en reparto están congelados
Una vez que un repartidor ha salido de la tienda con un pedido, el dispatcher no vuelve a tocar ese pedido. Se sigue usando para estimar cuándo quedará libre ese repartidor, pero no puede reasignarse, revalidarse ni cancelarse desde el algoritmo.
Las decisiones son locales, no globales
Cada decisión de asignación compara al repartidor actual con un repartidor candidato. El dispatcher no intenta encontrar una solución óptima global para todos los repartidores y todos los pedidos a la vez.
Por eso dos decisiones que individualmente parecen correctas pueden, juntas, resultar mejorables vistas en retrospectiva.
La urgencia del pedido no es un criterio de reasignación
Solo cuenta la prioridad del repartidor al decidir si se reasigna. Un pedido normal muy urgente no se adelanta por sí mismo a otro menos urgente. Ver Cuándo un pedido cambia de repartidor.
Last-Option puede superar la tolerancia normal de retraso
Como último recurso, un pedido puede colocarse con una estimación de llegada algo más tardía de lo que permitiría la tolerancia normal, en lugar de quedarse sin asignar. Ver Last-Option: la red de seguridad final.
Una tienda sin cambios se omite
Si nada ha cambiado en una tienda desde la última ejecución, se omite en lugar de reprocesarse. Una ejecución que parece "no haber hecho nada" en una tienda tranquila está funcionando correctamente — ver El ciclo de asignación, paso a paso.
Visión de principio a fin
El recorrido completo de los pedidos de una tienda en un solo ciclo, reuniendo todo lo de este capítulo.
Un ciclo, una tienda
- Obtener pedidos y repartidores de esta tienda. Aquí se revisan los pedidos que siguen con un transportista externo de un ciclo anterior — ver Revisión de pedidos ya asignados a un transportista.
- ¿Es una zona con transportista primero?
- Sí → se prueba primero con un transportista externo. Si lo acepta, ese pedido está resuelto.
- No → se pasa directamente al paso 3.
- Solver propio — Modo PG o Google OR-Tools, elegido automáticamente salvo que fuerces uno.
- Si los clientes prioritarios (Platinum) están activados y aplican, este paso se sustituye por la doble simulación descrita en Clientes prioritarios (Platinum). Todo lo anterior y lo posterior se mantiene igual.
- Reintento con repartidores libres de la tienda que el solver no haya usado.
- Respaldo con transportista externo, pero solo para pedidos de zona estándar. Un pedido de una zona con transportista primero ya tuvo su turno y no recibe otro.
- Posprocesado — se clasifican los resultados y se identifican los pedidos agrupables en un mismo repartidor.
- ¿Sigue sin asignar?
- No → guardar y notificar.
- Sí → el último intento flexible descrito en Last-Option: la red de seguridad final. Si lo coloca, guardar y notificar. Si no, el pedido se marca como Crítico o Pendiente y el siguiente ciclo lo reintenta desde cero.
- Guardar y notificar — se escriben las asignaciones, se envía la notificación a los repartidores y se procesan las alarmas.
Las dos cosas que conviene recordar
Cada pedido recibe exactamente dos intentos por ciclo —uno con flota propia y otro con transportista externo—, más la red de seguridad Last-Option al final. La configuración de la zona cambia el orden de esos dos intentos, nunca la cantidad.
Nunca se cancela nada sin un sustituto preparado. Un pedido que ya está con un transportista solo se recupera cuando se ha encontrado una asignación real en la flota propia y la cancelación con el transportista ha tenido éxito.
Páginas relacionadas
- El ciclo de asignación, paso a paso — los cinco pasos en detalle
- Los tres mecanismos de asignación — cómo se combinan Modo PG, Google OR-Tools y transportistas
- Last-Option: la red de seguridad final — qué ocurre en el paso 7
- Límites conocidos del sistema — lo que este flujo deliberadamente no hace
Reportar una incidencia del dispatcher
Si algo parece incorrecto —un pedido asignado al repartidor "equivocado", retrasado o atascado sin asignar—, la forma más rápida de resolverlo es reportarlo con la información adecuada a la primera.
Las capturas por sí solas, sobre todo de pantallas que no vienen al caso, rara vez ayudan. Los datos concretos y coherentes entre sí, sí.
Qué incluir
| Dato | Por qué importa |
|---|---|
| Request ID | Identifica la ejecución exacta del dispatcher implicada. Aparece en el resumen de ejecución de la vista de detalle del plan, en el Planificador, y tiene el aspecto req_1785152470621_6v3uobxk86e. Es lo más útil que puedes aportar, más incluso que la tienda, porque apunta a una única ejecución concreta |
| ID de pedido / número de ticket | Sin él no se puede rastrear el pedido afectado |
| Tienda | De qué tienda es la ejecución afectada |
| Fecha y hora aproximada | Acota qué ciclo hay que revisar |
| Qué esperabas | Por ejemplo: "debería haber ido a un repartidor libre en la tienda", "debería haberse quedado con el repartidor original" |
| Qué ocurrió realmente | Por ejemplo: "estuvo 12 minutos sin asignar", "se reasignó a otro repartidor", "fue a un transportista en lugar de a nuestra flota" |
| ¿Puntual o recurrente? | Un pedido aislado y un patrón en muchos pedidos apuntan a causas muy distintas |
| ¿Era un pedido de cliente prioritario (Platinum)? | Ayuda a descartar o confirmar la capa Platinum opcional |
| Cambios de configuración recientes | Una zona, tienda o transportista modificado poco antes ayuda a separar causa de coincidencia |
Qué evidencia ayuda de verdad
- Una captura de la pantalla de detalle del pedido concreto, con las marcas de tiempo y la asignación actual, no de un panel o listado sin relación.
- Si hay varios pedidos afectados, lista todos sus identificadores en lugar de describirlos en general ("varios pedidos a la hora de comer").
- Si sospechas que se saltó a un repartidor o transportista concreto, nómbralo, en lugar de decir "no eligió al correcto".
Qué evitar
- Reportar sin el Request ID o sin el ID de pedido. Son los dos datos que nada más puede sustituir.
- Afirmaciones generales como "el algoritmo está roto" o "hoy no funciona", sin pedido, tienda y hora concretos.
- Adjuntar muchas capturas sin relación en lugar de la única pantalla relevante para el pedido.
Antes de reportar
Hay dos comportamientos que se confunden con frecuencia con fallos. Comprobarlos primero puede ahorrar una ida y vuelta:
- Una tienda en la que nada ha cambiado se omite, no se procesa — ver El ciclo de asignación, paso a paso.
- Editar el campo Activo de un plan no arranca ni detiene el ciclo. Usa las acciones Activar y Pausar — ver Planes de programación: cómo funciona el ciclo automático.
Cuanto más claro y concreto sea el reporte, antes podrá cruzarse con la ejecución real que produjo el comportamiento que describes.
Preguntas frecuentes del dispatcher
¿Por qué un pedido cambió de repente de repartidor?
Quedó disponible un repartidor con mejor prioridad: por ejemplo uno libre en la tienda, o uno interno donde antes solo había uno externo. Ver Cuándo un pedido cambia de repartidor para las reglas exactas.
¿Por qué un pedido sigue sin asignar después de una ejecución?
En condiciones normales todo pedido debería acabar asignado: a tu flota propia, a un transportista, mediante una pasada de respaldo o a través de la red de seguridad Last-Option. Un pedido que sigue sin asignar al final de un ciclo suele apuntar a una de estas causas:
- Falta real de capacidad — ningún repartidor disponible, propio o externo, puede llegar al cliente dentro de la ventana de entrega aceptada.
- Desajuste de zona y tipo de repartidor — la zona del pedido no permite el tipo de repartidores disponibles en ese momento. Ten en cuenta que dejar vacíos los tipos de repartidor propio permitidos en una zona los bloquea a todos.
- Datos incompletos del pedido — por ejemplo coordenadas de entrega ausentes o inválidas.
- Un problema técnico durante esa ejecución — conviene reportarlo si se repite en la misma tienda.
Se reintentará automáticamente en el siguiente ciclo, pero si ocurre a menudo merece investigarse en lugar de darlo por normal.
¿Qué es Last-Option? ¿Significa que mi pedido recibe peor servicio?
Last-Option es una red de seguridad final, dentro del mismo ciclo, para pedidos que el proceso normal no ha podido colocar. Relaja la comprobación habitual de tiempo de entrega para evitar dejar un pedido sin asignar, por lo que puede aceptar una estimación de llegada algo más tardía, pero solo cuando no existe mejor alternativa y solo después de que el proceso normal haya tenido su oportunidad completa. Ver Last-Option: la red de seguridad final.
¿Por qué no puedo activar o desactivar un plan simplemente editándolo?
Editar un plan solo actualiza su configuración guardada; no arranca ni detiene el ciclo automático. Usa siempre las acciones dedicadas Activar y Pausar. Ver Planes de programación: cómo funciona el ciclo automático.
¿Qué cambia realmente al activar los clientes prioritarios (Platinum)?
Añade un paso de evaluación que intenta proteger a los pedidos Platinum de entregarse tarde, pero solo si hacerlo no perjudica a demasiados pedidos normales al mismo tiempo. Si no está activado, los pedidos Platinum se tratan exactamente igual que cualquier otro. Ver Clientes prioritarios (Platinum).
¿Cada cuánto se ejecuta realmente el dispatcher?
Según el intervalo que hayas puesto en el plan: mínimo 60 segundos, máximo 300. Si una ejecución falla, la programación no se rompe; la siguiente se programa con normalidad.
¿Un pedido que ya está con un transportista externo puede volver a mi flota propia?
Sí, pero solo antes de que el repartidor del transportista haya salido de la tienda con él, y solo si se cumplen dos condiciones: el pedido sigue dentro de la ventana de cancelación gratuita del transportista, y hay un repartidor propio con capacidad disponible en ese momento. Aun así, el cambio solo se produce si la cancelación con el transportista tiene éxito primero. Si algo de eso no se cumple, el pedido simplemente se queda con el transportista y no cambia nada. Ver Revisión de pedidos ya asignados a un transportista.
Un transportista parece tener repartidores de sobra, ¿por qué aparece como "lleno" en mi tienda?
La capacidad de un transportista es una única bolsa compartida por tienda y por empresa transportista, no un límite por mensajero. Ver la nota sobre capacidad en Planes de programación: cómo funciona el ciclo automático.
¿Por qué una ejecución parece no haber hecho nada en una de mis tiendas?
Si nada ha cambiado en esa tienda desde la última ejecución, se omite deliberadamente en lugar de reprocesarse. Ver El ciclo de asignación, paso a paso.
Pausar y reanudar el reparto
Necesitas: Pausar / reanudar reparto — lo tienen
admin,hub_manager,dispatcher_managerybranch_manager. Consultar el estado solo requiere acceso de lectura a tiendas.
Pausar el reparto detiene la entrada de nuevos pedidos a domicilio en una tienda durante un tiempo determinado, sin cerrar la tienda ni tocar los pedidos ya en curso.
Pausar una tienda
- Abre los controles de reparto de la tienda.
- Elige Pausar e indica la duración en minutos.
- Confirma.
La pausa está acotada en el tiempo: cuando se cumple la duración, el reparto se reanuda solo. No hace falta acordarse de volver a activarlo.
Si la tienda ya está pausada, volver a pausar no acumula tiempo. Se te indicará que ya está pausada en lugar de ampliarla silenciosamente; consulta antes el estado actual si tu intención es alargar una pausa.
Reanudar antes de tiempo
Reanudar termina la pausa de inmediato, antes de cumplirse la duración. Úsalo cuando el motivo de la pausa desaparece antes de lo previsto: una acumulación en cocina que se resuelve, repartidores que se incorporan al turno.
Consultar el estado actual
La vista de estado responde a dos preguntas: si la tienda está pausada ahora mismo y, en ese caso, qué la va a reactivar. Consúltala antes de pausar, para no confundir una pausa existente con una nueva.
Trabajos de pausa activos
Cada pausa crea un trabajo que reanudará la tienda cuando se cumpla su tiempo.
- Por tienda — ver el trabajo activo de una tienda y cuándo se reanudará.
- De toda la cadena — ver todos los trabajos de pausa activos a la vez. Útil durante una incidencia, cuando varias tiendas se han pausado en momentos distintos y por personas distintas.
Emergencia: cancelar todas las pausas
Existe una acción para toda la cadena que cancela de golpe todos los trabajos de pausa activos.
Es un control de emergencia, no rutinario. Afecta a todas las tiendas pausadas en ese momento, incluidas las que otras personas hayan pausado por motivos que quizá desconozcas. Consulta antes el listado de trabajos de toda la cadena para saber exactamente qué vas a reactivar, y avisa a las tiendas afectadas.
Úsalo cuando se han aplicado pausas en bloque por error, o cuando una incidencia ha terminado y necesitas volver a poner todo en marcha sin entrar tienda por tienda.
Lo que pausar no hace
- No detiene el dispatcher en esa tienda. Los pedidos ya aceptados se siguen asignando con normalidad — ver El ciclo de asignación, paso a paso.
- No cambia los horarios de apertura de la tienda, que se configuran en otro sitio y no los usa el dispatcher.
- No cancela ni reasigna pedidos existentes.
Qué puedes ver y qué no
Las acciones por tienda quedan filtradas por tu scope: solo puedes pausar, reanudar o consultar tiendas que estén dentro de él. El listado de trabajos de toda la cadena y la cancelación de emergencia no son específicos de una tienda, así que se limitan a roles con control de reparto sin restricción por tienda.
Zonas de reparto
Necesitas: Zonas de reparto — ver para consultar, Zonas de reparto — editar para cambiar algo. Lo tienen
admin,dispatcher_managerypolygon_manager.
Una zona es un área de reparto con un polígono en el mapa y un conjunto de reglas que deciden qué repartidores y transportistas la atienden. Las zonas son la mayor palanca sobre el comportamiento del dispatcher — ver Dónde vive cada ajuste para qué hace cada regla.
Consultar zonas
El listado muestra todas las zonas de la marca, con su tienda y si tienen polígono dibujado. Una vista aparte muestra las zonas junto a su configuración de disponibilidad de repartidores, que es donde se ve de un vistazo si una zona está configurada para probar primero con transportistas.
La vista de mapa necesita una clave de Maps configurada para la marca. Si el mapa aparece en blanco mientras el listado sí muestra zonas, es un problema de configuración, no de zonas ausentes.
Editar la disponibilidad de repartidores de una zona
Aquí se controlan las reglas que el dispatcher usa realmente: prioridad de flota propia frente a transportista, la regla de orden de transportistas, qué transportistas se permiten, qué tipos de repartidor propio se permiten y el margen de tiempo adicional.
La trampa que conviene repetir: dejar vacíos los tipos de repartidor propio permitidos no significa "todos los tipos". Bloquea a todos los repartidores propios de la zona, y sus pedidos solo podrán ir a transportistas. Es la causa más habitual de que todos los pedidos de una zona acaben siendo externos.
Dibujar y eliminar polígonos
El polígono de una zona define su límite geográfico.
- Crear o actualizar un polígono dibujándolo en el mapa y guardando.
- Eliminar un polígono deja la zona sin límite.
Una zona sin polígono no puede corresponder con ninguna dirección, así que no le llegarán pedidos. Eliminar el polígono equivale, por tanto, a desactivar la zona, aunque la zona siga existiendo.
Mover una zona a otra tienda
Una zona —junto con su polígono— puede migrarse a otra tienda. Úsalo cuando una tienda se traslada o cuando un área se reasigna entre tiendas, en lugar de eliminar la zona y volver a dibujarla, lo que haría perder el límite.
Cambios masivos por fichero
Para cualquier cosa que vaya más allá de unas pocas zonas, usa las herramientas de fichero.
| Acción | Qué hace |
|---|---|
| Exportar zonas | Descarga la configuración actual de zonas en CSV. Exporta siempre antes de un cambio masivo: es tu marcha atrás |
| Importar zonas | Aplica configuración de zonas desde un CSV |
| Importar polígonos desde KML | Carga masivamente límites de zona desde un fichero KML, el formato que exportan las herramientas de mapas |
La importación KML es parcial por diseño: las filas válidas se importan aunque otras fallen. Obtienes lo que funcionó más un informe de lo que no, en lugar de un rechazo total. Lee el informe: una importación parcialmente correcta deja el resto de tus zonas intactas y todavía pendientes de atención.
Cambio de zonas por horario
Las zonas pueden cambiar según un horario, de modo que un área se atienda de forma distinta a distintas horas del día. Estas reglas se cargan desde un CSV.
A diferencia de la importación KML, esta es de todo o nada: si alguna fila es inválida, no se aplica nada. Corrige el fichero y vuelve a importar.
Antes y después de un cambio masivo
- Exporta primero. La exportación es la única marcha atrás que tienes.
- Aplica la importación.
- Lee el resultado con atención, especialmente en KML, donde el éxito parcial es lo normal.
- Comprueba una zona de muestra en el mapa.
- Confírmalo con un pedido real en esa área, si puedes.
Las copias de seguridad de zonas se conservan y se pueden restaurar — ver Copias de seguridad y restauración de configuración.
Transportistas externos
Necesitas: Transportistas — ver para consultar, Transportistas — editar para cambiar. Lo tienen
admin,dispatcher_managerythird_party_manager. Los ajustes por tienda también son accesibles parahub_manager.
La configuración de transportistas existe en dos niveles, y saber cuál estás editando es la mitad del trabajo.
| Nivel | Aplica a | Ajustes típicos |
|---|---|---|
| Marca | Todas las tiendas de la marca | Si el transportista está activo, reglas de pago, exclusiones de producto, distancia máxima, ventana de cancelación gratuita |
| Tienda | Un transportista, en una tienda | Límites de tiempo, capacidad en esa tienda, horario de operación, agrupación, tiempo de entrega por defecto |
Ambos niveles están detallados campo a campo en Dónde vive cada ajuste.
Configuración a nivel de marca
La vista de marca lista todos los tipos de transportista disponibles y su configuración actual. Editar aquí cambia ese transportista en todas partes.
El interruptor principal Activo es de marca. Desactivar aquí un transportista lo retira de todas las tiendas de inmediato, digan lo que digan los ajustes por tienda. Si solo quieres dejar de usarlo en una ubicación, cambia los ajustes de esa tienda.
Configuración a nivel de tienda
La vista por tienda muestra los mismos transportistas con sus ajustes para esa tienda concreta. Aquí se afina lo que realmente varía según la ubicación: cuánto tiempo tiene el transportista para aceptar, cuánto para llegar a la tienda, cuántos pedidos simultáneos puede llevar allí y en qué horario opera.
Dos de ellos rigen el comportamiento descrito en Revisión de pedidos ya asignados a un transportista: Tiempo máximo para aceptar y Tiempo máximo para llegar a la tienda. Se parecen y comparan cosas completamente distintas; esa página tiene la comparación.
La capacidad es por empresa, no por mensajero
La capacidad de un transportista en una tienda es una única bolsa compartida para esa empresa transportista. "Diez pedidos simultáneos en esta tienda" son diez, tenga los mensajeros que tenga cerca.
Esta suele ser la explicación cuando un transportista parece ocupado en su propia aplicación pero aparece como lleno para el dispatcher.
Cambios masivos por fichero
Para trabajos de transportistas a nivel de cadena, usa las herramientas de fichero en lugar de editar tienda por tienda.
| Acción | Qué hace |
|---|---|
| Exportar configuración por tienda | Descarga los ajustes por tienda actuales en CSV. Exporta antes de cada cambio masivo |
| Importar configuración por tienda | Aplica ajustes por tienda desde un CSV |
Las copias de seguridad de la configuración de transportistas se conservan y se pueden restaurar — ver Copias de seguridad y restauración de configuración.
Cuando a un transportista nunca se le ofrecen pedidos
Repasa esto antes de reportar un problema. Un transportista se omite por completo si se cumple cualquiera de estas condiciones:
- Está desactivado a nivel de marca.
- La hora actual está fuera de su horario de operación para esa tienda.
- Su bolsa de capacidad en esa tienda está llena.
- La zona del pedido no lo incluye entre los transportistas permitidos — ver Zonas de reparto.
- El pedido falla alguna de sus comprobaciones estructurales: tipo de pago, una familia de producto excluida, o la distancia.
La lista ordenada completa de esas comprobaciones está en ¿Cuándo existe una alternativa?
Ajustes de reparto de la tienda
Necesitas: Configuración de tienda — ver para consultar, Configuración de tienda — editar para cambiar. Lo tienen
admin,hub_manager,dispatcher_managerybranch_manager.
Cada tienda tiene sus propios ajustes de dispatcher, separados del plan de programación que rige cuándo se ejecuta. Son dos cosas que se configuran en sitios distintos y se confunden con facilidad: el plan decide cuándo y cómo se ejecuta el dispatcher, la tienda decide cuánta tolerancia se aplica en esa ubicación.
Listado de tiendas
El listado muestra todas las tiendas dentro de tu scope. Un branch_manager ve la suya; un rol de cadena las ve todas. Si falta una tienda que esperabas, es una cuestión de scope y no de configuración — ver Cómo funciona el scope en la práctica.
Ajustes de dispatcher de una tienda
Dos ajustes son los importantes, y ambos están explicados a fondo en Planes de programación: cómo funciona el ciclo automático:
- Tolerancia de retraso de flota propia — cuánto retraso se acepta al comprobar si tus repartidores pueden entregar a tiempo.
- Tolerancia de retraso de transportistas — lo mismo, para los transportistas externos.
Hay aquí una regla que sorprende: si una tienda no tiene ningún repartidor interno, la tolerancia de flota propia se sustituye automáticamente por el valor de transportistas. Una tienda 100 % contratada no queda sujeta a un criterio más estricto del que puede cumplir. Esto no se configura: ocurre solo.
Un tercer ajuste, distancia máxima para personal de cocina, limita hasta dónde se puede enviar a un repartidor de cocina desde la tienda. Ponerlo a cero elimina la restricción por completo, en lugar de bloquear a todos los repartidores de cocina.
Horas prometidas de entrega
Cada tienda expone los tiempos de entrega que puede prometer a un cliente. Alimentan el tiempo que se le indica al cliente al hacer el pedido, y la hora prometida frente a la que luego trabaja el dispatcher para decidir qué va tarde — ver las definiciones de Crítico y Pendiente en el Glosario del dispatcher.
Productos y promociones por tienda
La vista de una tienda también lista los productos y promociones activos allí. Es una comprobación de solo lectura: útil cuando un pedido se comporta de forma inesperada y quieres confirmar qué ofrece realmente esa tienda, y no lo que dice el catálogo de la marca.
Qué está en otro sitio
| Si buscas | Está realmente en |
|---|---|
| Cada cuánto se ejecuta el dispatcher en esta tienda | El plan de programación — Planes de programación: cómo funciona el ciclo automático |
| Qué repartidores y transportistas atienden un área | La zona — Zonas de reparto |
| Tiempos y capacidad de un transportista en esta tienda | Ajustes por tienda del transportista — Transportistas externos |
| Pausar el reparto temporalmente | Pausar y reanudar el reparto |
| Horarios de apertura de la tienda | La configuración general de la tienda. El dispatcher no los usa |
Copias de seguridad y restauración de configuración
Necesitas: el permiso de ver o editar de aquello que contenga la copia, no un permiso de copias aparte. Una copia de zonas requiere acceso a zonas de reparto; una de transportistas, acceso a transportistas; una de empleados, acceso a empleados.
Cada vez que exportas configuración se guarda una copia de seguridad. Puedes listarlas, descargarlas, restaurar una o eliminarla.
Qué se copia
| Tipo de copia | Qué cubre | Permiso que sigue |
|---|---|---|
| Zonas | Configuración de zonas de reparto | Zonas de reparto |
| Zonas por horario | Reglas de cambio de zona por horario | Zonas de reparto |
| Transportistas externos | Configuración de transportistas por tienda | Transportistas |
| Empleados | Configuración de empleados y repartidores propios | Empleados |
Como cada copia sigue el permiso de su propio contenido, quien puede restaurar una copia de zonas no necesariamente puede restaurar una de empleados. El acceso lo decide lo que la copia contiene, y se comprueba al abrirla.
Consultar copias
El listado se puede filtrar por tipo. Cada entrada indica qué cubre y cuándo se tomó. Los nombres de fichero siguen el patrón backup-<tipo>-<fecha>.csv, de modo que un fichero descargado sigue siendo identificable fuera de la consola.
Descargar
La descarga entrega el CSV exactamente como se capturó. Dos buenos motivos para descargar en lugar de restaurar:
- Para inspeccionar antes de restaurar. Abre el CSV y confirma que contiene lo que esperas, sobre todo si la copia es antigua.
- Para comparar. Comparar la exportación de ayer con la de hoy responde a "¿qué ha cambiado realmente?" más rápido que revisar pantallas.
Restaurar
Restaurar vuelve a aplicar una instantánea capturada.
Lee esto antes de restaurar. Una restauración reinstaura la configuración tal como estaba en el momento de la captura. Todo lo cambiado desde entonces —por ti o por cualquier otra persona— queda sobrescrito para las entidades de esa instantánea. Si dos personas han estado editando zonas esta semana, restaurar la copia de la semana pasada descarta ambos conjuntos de cambios, no solo el que querías deshacer.
La secuencia segura:
- Exporta ahora, creando una copia fresca del estado actual. Es tu camino de vuelta.
- Descarga la copia que pretendes restaurar y léela.
- Restaura.
- Verifica en una zona, tienda o transportista real que el resultado es el que querías.
Eliminar
Eliminar borra una copia de forma permanente. Hazlo para limpiar ruido, no para ordenar después de un cambio: las copias antiguas son justo lo que necesitas cuando un problema se detecta tarde.
Antes de eliminar, comprueba que no sea la última instantánea buena conocida anterior a un cambio importante.
Páginas relacionadas
- Zonas de reparto — donde se exportan e importan las zonas
- Transportistas externos — exportación de configuración de transportistas
- Dónde vive cada ajuste — qué controla realmente cada campo restaurado