> ## Documentation Index
> Fetch the complete documentation index at: https://muveya.com/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Preparar y despachar un pedido

> Escanea las cajas reservadas para un pedido en orden FEFO, divide las cajas que tienen más de lo pedido y despáchalas.

Preparar un pedido confirma, caja por caja, que las cajas que muveya reservó están físicamente en tus manos. Despachar envía luego todas las cajas tomadas fuera de la bodega de origen de una sola vez. Ambas cosas se hacen en la pantalla de preparación.

## Quién puede hacerlo

| Acción | Permiso | También se necesita |
| - | - | - |
| Abrir la pantalla de preparación, ver la lista y escanear cajas | `fulfillment.pick` (**Preparar pedidos**) | La sede del pedido en tu **Acceso a sedes**, y la bodega de la caja en tu **Acceso a bodegas**. |
| Despachar las cajas tomadas | `fulfillment.dispatch` (**Despachar pedidos**) | `fulfillment.pick`, porque el panel **Despacho** está en la pantalla de preparación. La sede de origen en tu **Acceso a sedes** (la sede del pedido cuando el origen es una bodega central o el pedido no indicó origen), y la bodega de cada caja en tu **Acceso a bodegas**. |

Preparar y despachar son pasos de la parte de origen. Consulta [Parte de origen y parte de destino](/docs/es/deliveries/overview#parte-de-origen-y-parte-de-destino). Sin `fulfillment.pick` la pantalla solo dice "No puedes preparar pedidos. Pide al administrador de tu clínica el permiso para preparar."

## Dónde

* En **Entregas**, sección **Por preparar**, selecciona el número del pedido. La sección lista los pedidos en **Existencias reservadas** (`allocated`) y **En preparación** (`picking`).
* Desde el detalle de custodia del pedido, **Preparar el pedido**.
* Ruta directa: `console.muveya.com/fulfillment/:orderId/pick`.

La pantalla se titula **Preparar el pedido #1042**, con el destino debajo del título, por ejemplo "Entregar en Bodega Norte · Clínica Norte". **Volver a entregas** regresa a la lista. Tiene tres partes: **Escanear una caja**, **Cajas por tomar** y, para quienes despachan, **Despacho**.

## La lista de preparación

**Cajas por tomar** lista cada caja reservada para el pedido:

| Columna | Qué muestra |
| - | - |
| **Insumo** | El nombre y el SKU del insumo, por ejemplo "Guantes de nitrilo M · GLV-NIT-M". |
| **Código de caja** | El código impreso en la etiqueta que debes buscar, por ejemplo `BX-000123`. |
| **Tomar de** | La bodega donde está la caja en este momento. |
| **Lote** | El número de lote, cuando la caja lo tiene. |
| **Vence** | La fecha de vencimiento, cuando la caja la tiene. |
| **Cantidad** | La cantidad reservada de esta caja para el pedido. |
| **Estado** | **Por tomar** o **Tomada**. Una caja que tiene más de lo pedido agrega "Tiene más de lo pedido: al escanearla se separan 20 en un contenedor nuevo". |

Reglas de la lista:

* El orden es **FEFO**: la fecha de vencimiento más cercana primero, las cajas sin vencimiento al final. Toma las cajas en ese orden.
* Solo aparecen cajas utilizables. Una caja reservada que ya no está **Activa** o que pasó su fecha de vencimiento (por ejemplo, quedó en cuarentena por un [retiro de lote](/docs/es/inventory/lot-recall)) desaparece de la lista.
* **Tomar de** muestra la ubicación actual de la caja. Si una caja reservada se movió a otra bodega después de la reserva, sigue siendo válida: tómala donde está ahora.
* Si no hay nada reservado, o el pedido está fuera de tus sedes, la lista dice "No hay cajas reservadas para este pedido por ahora."
* La lista es solo de lectura. No puedes elegir una caja desde ella: cada caja se debe escanear o escribir.

<Warning>
  Si una caja desaparece de la lista antes de que la tomes, el pedido puede terminar despachado sin ella: el panel **Despacho** solo espera las cajas que siguen en la lista. Antes de despachar, compara la lista con las líneas del pedido en su página, y escribe a [team@muveya.com](mailto:team@muveya.com) si falta algo en una línea.
</Warning>

## Escanear las cajas

<Steps>
  <Step title="Busca la caja">
    Ve a la bodega indicada en **Tomar de** y busca la caja con el **Código de caja** impreso.
  </Step>

  <Step title="Escanea o escribe el código">
    El campo **Código de caja** tiene el foco al abrir la pantalla. Un lector de códigos de barras en modo teclado escribe el código y presiona Enter por ti. Sin lector, escribe el código y presiona Enter, o selecciona **Registrar caja**.
  </Step>

  <Step title="Lee la respuesta">
    "Caja BX-000123 registrada." significa que la caja quedó tomada y su fila cambia a **Tomada**. El campo se limpia y conserva el foco para el siguiente escaneo.
  </Step>

  <Step title="Repite con cada caja">
    El pedido pasa a **En preparación** con la primera caja registrada.
  </Step>
</Steps>

### Qué revisa muveya en cada escaneo

La reserva es la verificación. muveya acepta el código solo si pertenece a una caja reservada para este pedido y que sigue **Activa**. Como la caja ya trae el insumo, el lote, el vencimiento y la cantidad, no hay nada más que escribir: una caja del insumo correcto que no se reservó para este pedido se rechaza, aunque su SKU y su lote coincidan.

| Situación | Respuesta en pantalla |
| - | - |
| El código está reservado para este pedido | "Caja BX-000123 registrada." |
| El código no existe, no está reservado para este pedido, no está **Activa** o está en una bodega fuera de tu **Acceso a bodegas** | "Ese código no está reservado para este pedido. Revisa la etiqueta y vuelve a escanear." El pedido no avanza. |
| La caja ya estaba registrada para este pedido | "Esa caja ya está registrada como tomada para este pedido." Es un aviso, no un error. |
| El mismo escaneo se envió de nuevo tras perder la conexión | "La caja BX-000123 ya estaba registrada." |
| El pedido ya no está en preparación | "No queda nada por tomar para este pedido." |

Un escaneo que no recibió respuesta (por ejemplo, se cortó la conexión) se puede repetir sin riesgo: mientras reintentas el mismo código, la consola reutiliza la misma clave de solicitud, así que la caja nunca se toma dos veces.

## Separar una caja al preparar

Las cajas viajan completas. Cuando una caja reservada tiene más de lo que lleva el pedido, al escanearla se separa exactamente la cantidad reservada en un contenedor nuevo, y ese contenedor es el que se toma y se despacha.

<Steps>
  <Step title="Identifica la caja">
    Su **Estado** dice "Tiene más de lo pedido: al escanearla se separan 20 en un contenedor nuevo". Mientras haya una caja así por tomar, el formulario muestra **Etiqueta del contenedor separado (opcional)**.
  </Step>

  <Step title="Prepara el contenedor nuevo">
    Pon la cantidad del pedido en una bolsa o caja nueva. Si tienes una etiqueta para ella, escribe su código en **Etiqueta del contenedor separado (opcional)**, hasta 64 caracteres. Si lo dejas vacío, muveya le asigna un código basado en el de la caja original, por ejemplo `BX-000123-F1`.
  </Step>

  <Step title="Escanea la caja original">
    Escanea el código de la caja original. La respuesta es "La cantidad del pedido ya está en el contenedor nuevo BX-000123-F1. Pégale esa etiqueta."
  </Step>

  <Step title="Etiqueta el contenedor nuevo">
    Pega la etiqueta en el contenedor nuevo. La lista ahora lo muestra como **Tomada** con su código nuevo.
  </Step>
</Steps>

Qué registra el sistema en una separación:

* **Separación (salida)** en la caja original y **Separación (entrada)** en el contenedor nuevo, por la misma cantidad, así que el total del insumo no cambia.
* La reserva del pedido pasa de la caja original al contenedor nuevo (movimientos **Liberado** y **Reservado**).
* **Tomado para el pedido** en el contenedor nuevo.
* El contenedor nuevo conserva el insumo, el lote, la fecha de vencimiento y la fecha de recepción de la caja original. La caja original sigue **Activa** en su bodega con el resto de su contenido.

Límites:

* Una etiqueta que ya usa otra caja de la cuenta de clínica dental se rechaza: "El registro cambió o ya existe. Revísalo antes de volver a intentar." Elige otra etiqueta o deja el campo vacío.
* Las cajas con números de serie no se pueden separar. El escaneo se rechaza con el mismo mensaje de conflicto.
* Si el escaneo se interrumpe después de la separación, vuelve a escanear la caja original o la etiqueta del contenedor nuevo: muveya reconoce la separación que ya hizo y no divide dos veces.

## Despachar el pedido

El panel **Despacho** aparece para quienes tienen `fulfillment.dispatch` mientras el pedido está en preparación. Hasta que todas las cajas de la lista estén tomadas dice "Podrás despachar cuando todas las cajas estén tomadas."

<Steps>
  <Step title="Verifica que todo esté tomado">
    Cuando todas las filas dicen **Tomada**, el panel dice "Todas las cajas están tomadas. Entrégalas a quien las lleva al destino."
  </Step>

  <Step title="Agrega el transportista (opcional)">
    Escribe el transportista, mensajero o número de seguimiento en **Transportista o mensajero (opcional)**, hasta 120 caracteres.
  </Step>

  <Step title="Despacha">
    Selecciona **Despachar pedido**. La respuesta es "Pedido despachado. Las cajas van en camino." Si también puedes confirmar entregas, aparece el enlace **Confirmar la entrega**.
  </Step>
</Steps>

Antes de mover existencias, muveya revisa cada caja tomada: debe seguir **Activa**, y la cantidad que contiene y la cantidad reservada en ella deben ser iguales a lo que lleva este pedido. Una caja con existencias de más o con la reserva de otro pedido se rechaza completa, y no se despacha nada.

Qué registra el sistema:

* Un movimiento **Despachado** en cada caja tomada: su cantidad sale de las existencias de la bodega de origen y su reserva se consume.
* Cada caja pasa a **En tránsito**. Sigue en tránsito hasta que el destino la acepta o se devuelve.
* La hora del despacho y la referencia del transportista en el registro de custodia. La consola no muestra la referencia del transportista; la API la devuelve como `carrierRef` en `GET /v1/fulfillments`.
* El pedido pasa a **Despachado** (`dispatched`) y se escribe el registro de auditoría `fulfillment.dispatched`.

Despachar un pedido que ya estaba despachado no cambia nada y dice "Este pedido ya estaba despachado."

## Cuando no hay existencias reservadas

La pantalla de preparación solo funciona cuando muveya ya reservó existencias para el pedido. Si el pedido está aprobado pero no reservado:

* No aparece en **Por preparar**, y su página sigue diciendo "El pedido está pasando a su siguiente paso. Esta pantalla se actualiza sola en unos segundos."
* Al abrir la pantalla de preparación aparece "No hay cajas reservadas para este pedido por ahora."

La reserva es de todo o nada y se vuelve a intentar cada vez que se aprueba otro pedido de la cuenta de clínica dental; no hay un botón para reintentar. Recibe o mueve las existencias que faltan y, si el pedido sigue en **Aprobado**, escribe a [team@muveya.com](mailto:team@muveya.com) con el número del pedido. Consulta [Paso 1: el sistema reserva las existencias](/docs/es/deliveries/overview#paso-1-el-sistema-reserva-las-existencias).

## Qué puede salir mal

| Mensaje | Código | Qué hacer |
| - | - | - |
| "Ese código no está reservado para este pedido. Revisa la etiqueta y vuelve a escanear." | `fulfillment.scan_mismatch` | Compara la etiqueta con el **Código de caja** de la lista. Verifica que la bodega de la caja esté en tu **Acceso a bodegas**. |
| "Esa caja ya está registrada como tomada para este pedido." | `fulfillment.over_pick` | Nada: la caja ya está tomada. Sigue con la próxima. |
| "No queda nada por tomar para este pedido." | `fulfillment.nothing_to_pick` | El pedido ya no está en **Existencias reservadas** ni en **En preparación**, o está fuera de tus sedes. Abre el detalle de custodia para ver su estado. |
| "Todavía no hay cajas tomadas para despachar." | `fulfillment.nothing_to_dispatch` | Primero toma al menos una caja; o el pedido no está en **En preparación**, o su sede de origen está fuera de tu **Acceso a sedes**. |
| "Una caja tomada tiene más de lo que lleva este pedido. Las cajas viajan completas: escanéala de nuevo para separar la cantidad del pedido en su propio contenedor." | `fulfillment.box_not_dispatchable` | El despacho se rechaza mientras una caja tomada ya no está **Activa**, venció o ya no tiene exactamente lo que este pedido reservó en ella (por ejemplo, se consumieron o corrigieron unidades después de la reserva, u otro pedido comparte la caja). Volver a escanear una caja tomada no lo resuelve: solo responde "Esa caja ya está registrada como tomada para este pedido." Abre la página de la caja para ver qué cambió y luego escribe a [team@muveya.com](mailto:team@muveya.com) con el número del pedido. |
| "Este pedido ya no se está preparando." | | El pedido ya pasó la preparación. Usa el enlace a su página de seguimiento. |
| "Este registro no está disponible en la cuenta de clínica dental activa." | `orders.not_found` | El pedido no existe o pertenece a una sede fuera de tu **Acceso a sedes**. |
| "El registro cambió o ya existe. Revísalo antes de volver a intentar." | `inventory.box_code_taken` y otros conflictos de existencias | Usa otra etiqueta para el contenedor nuevo, o recarga la página y revisa la caja en su página (consulta [Cajas y etiquetas](/docs/es/inventory/boxes)). |
| "Este registro no está disponible en la cuenta de clínica dental activa." | `inventory.box_not_found` | Una caja está en una bodega fuera de tu **Acceso a bodegas**. Pide a un administrador que lo amplíe, o a un colega con acceso. |
| "Tu cuenta no tiene permiso para esta acción." | `common.forbidden` | Te falta `fulfillment.pick` o `fulfillment.dispatch`. |
| "No pudimos confirmar la operación. Revisa tu conexión y la lista antes de volver a intentar." | | Recupera la conexión y escanea el mismo código de nuevo; no se tomará dos veces. |

## Páginas relacionadas

<CardGroup cols={2}>
  <Card title="Resumen de entregas" icon="truck" href="/docs/es/deliveries/overview">
    El ciclo de custodia, los permisos y la custodia por caja completa.
  </Card>

  <Card title="Entrega y recepción" icon="clipboard-check" href="/docs/es/deliveries/delivery-and-receipt">
    Los pasos que siguen al despacho.
  </Card>

  <Card title="Cajas y etiquetas" icon="box" href="/docs/es/inventory/boxes">
    Códigos de caja, estados y movimientos.
  </Card>

  <Card title="Retiro de lote" icon="triangle-exclamation" href="/docs/es/inventory/lot-recall">
    Lotes en cuarentena y por qué una caja reservada puede desaparecer de la lista.
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.