Plataforma de nueva generación

Implementación del movimiento de inventario sobre una base ad hoc

Un empleado de tienda puede mover el inventario de una ubicación de origen y a una ubicación de destino sin una solicitud de traslado existente.

Solución

Comprender las API, los servicios y otros componentes que se utilizan para implementar el flujo de movimiento de inventario ad hoc.

Exploración de portlet

Para iniciar un movimiento ad hoc, en el portlet Mover inventario pulse el botón Iniciar movimiento ad hoc . El botón Iniciar movimiento ad hoc es un permiso de recurso controlado y visible sólo si se asigna el permiso de recurso Execute Move Request . Cuando pulse Iniciar movimiento ad hoc, y si ya hay un movimiento ad hoc en curso, el mensaje Un movimiento ad hoc está actualmente en curso. ¿Desea continuar? . Cuando continúa trabajando en la solicitud de traslado en curso, se llama a la API GET on SIM API {tenantId}/v1/stores/{storeId}/move-requests?type=ADHOC&assignedToUserId={currentUserId}&status=NOT_STARTED,IN_PROGRESS para captar las solicitudes de traslado abiertas. Si existen varias solicitudes de traslado ad hoc en curso, se muestra la solicitud de traslado creada más recientemente. Si elige crear un nuevo movimiento ad hoc, explore los productos para seleccionarlos de la ubicación de origen y moverlos a la ubicación de destino. Los productos se añaden al movimiento ad hoc y se marcan como seleccionados. Puede mover los productos seleccionados a la ubicación de destino y los productos se marcan como depositados. Cuando se seleccionan los productos, el inventario pasa de la ubicación de origen a la ubicación PICK-VIRTUAL. De forma similar, cuando se deposita el producto, el inventario se mueve de PICK-VIRTUAL a la ubicación de depósito. Por lo tanto, el movimiento de inventario es un proceso de dos pasos. El inventario se mueve primero de una ubicación de origen a una ubicación virtual y, a continuación, se mueve de la ubicación virtual a una ubicación de destino.

Para el movimiento ad hoc, se configuran las reglas siguientes:
  • Regla Is location scan mandatory before scanning any product habilitada. Para obtener más información sobre esta regla, consulte la API stores-rule en Configuración de mover inventario.
    • Si la exploración de ubicación es obligatoria, antes de marcar el producto como recogido o depositado, primero explore la ubicación de origen o depósito. A continuación, explore el producto.
    • Si la exploración de ubicación no es obligatoria, explore directamente los productos que desea mover sin explorar la ubicación.
  • Regla Is manual movement habilitada para marcar el inventario como seleccionado o depositado sin explorar el producto. Esta regla se basa en el permiso de recurso Manually update quantity while picking or depositing in Move inventory . Si se permite este permiso de recurso, puede ver los botones menos y más. Además, el cuadro de texto de cantidad es editable. Puede editar la cantidad seleccionada o depositada utilizando estos widgets en lugar de explorar el producto.
Al explorar un código de barras, se llama a la API translateBarcode con el tipo, StoreScanItemOrLocation. Si se explora una ubicación, la ubicación explorada toma como valor predeterminado la ubicación actual. Si se explora un producto y se exige la exploración de ubicación, se realiza una validación para asegurarse de que la ubicación se explora antes. Se realiza una validación para verificar si el inventario está presente para el producto explorado en la ubicación explorada.
  • Si existe un único tipo de inventario, se crea una tarea de traslado para dicho inventario y se marca como seleccionado.
  • Si el inventario está presente en varios estados de inventario, se le solicitará que seleccione el estado de inventario y la clase de producto adecuados para añadir a la solicitud de traslado ad hoc. El inventario se valida llamando a GET on SIM API {tenantId}/v1/stores/{storeId}/inventory?productId={scannedProductId}&locationId={scannedLocation}. Para crear una tarea de traslado, se llama a POST on SIM API {tenantId}/v1/stores/move-requests/{moveRequestId}/moveTasks . Al explorar el primer producto, también se crea una solicitud de traslado ad hoc llamando a POST on SIM API {tenantId}/v1/stores/move-requests.
  • Si el inventario no está presente, se muestra un mensaje de error adecuado.

Cuando la exploración de ubicación no es obligatoria, y si el producto está presente en varias ubicaciones, se le solicitará que seleccione la ubicación. Si el inventario está presente en varios estados de inventario, también debe el estado del inventario. Para obtener distintas ubicaciones, estados de inventario y clase de producto, se llama a GET on SIM API {tenantId}/v1/stores/{storeId}/inventory?productId={scannedProductId} .

Si escanea un artículo con seguimiento de serie, la aplicación valida que el artículo escaneado es un número de serie válido y, a continuación, se añade al movimiento ad hoc. De lo contrario, se muestra un mensaje de error adecuado.

El enlace de eliminación elimina la tarea de traslado de la solicitud de traslado ad hoc llamando a POST on SIM API - {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/undo-pick. Al seleccionar otro inventario, se abre una ventana que muestra el mismo producto en distintas ubicaciones de origen, estado de inventario y clase de producto, siempre que el producto esté disponible. Cuando explora un producto, se presupone que se está recogiendo el producto con el mismo estado de inventario y clase de producto que ha seleccionado anteriormente.

Cuando pulsa el widget más, se llama a POST on SIM API - {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/pick y la cantidad recogida o depositada se incrementa en una unidad. Cuando pulsa el widget menos, se llama a POST on SIM API - {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/undo-pick y la cantidad seleccionada se reduce en una unidad. Puede modificar la cantidad recogida o depositada. En función de si aumenta o disminuye la cantidad, se llama a la API de selección o deshacer selección de SIM adecuada.

Para un artículo con seguimiento de serie, los widgets de recuadro de texto de suma y cantidad están inhabilitados. Asegúrese de que explora el número de serie para marcar un producto como recogido o depositado. Para deshacer la selección o el depósito, pulse el widget menos. Se abre una ventana. Explore el número de serie para eliminarlo de las series seleccionadas o depositadas. Durante la exploración, se llama a la API translateBarcode con BarcodeType=Serialy, a continuación, se llama a la API POST on {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/undo-pick or {tenantId}/v1/stores/{storeId}/move-requests/{moveRequestId}/move-tasks/{moveTaskId}/undo-deposit .

Después de que usted escoja todos los productos usted puede depositarlos. En el flujo de depósito, las ubicaciones de destino no están preasignadas. Debe explorar o seleccionar una ubicación y, a continuación, explorar un producto para depositarlo. Después de depositar todo el producto, puede ver el resumen de traslado. Para obtener más información sobre las API que se invocan para la página de resumen de depósitos y traslados, consulte Implementación del traslado de inventario con solicitudes de traslado.

Puede cancelar todos los productos de solicitudes de traslado ad hoc que están en estado en curso llamando a la API Cancel Move Request . Para obtener más información sobre la cancelación de solicitudes de traslado ad hoc, consulte la API Cancelar solicitud de traslado.