Implementación de la recogida por lotes

Nota: Las funciones de selección por lotes para tiendas con SIM están siendo revisadas para ofrecer un mejor rendimiento y facilidad de uso. Las revisiones en curso de estas funciones básicas podrían afectar a la compatibilidad futura. Espere a la versión actualizada antes de empezar a integrar estas funciones.

Un empleado de tienda puede recoger un lote de productos disponibles en la sala de espera y colocarlos en una ubicación de transferencia para despachar el envío de la tienda o la recogida en los envíos de la tienda.

La tarea de recogida por lotes se implementa con la ayuda de API, servicios y otros componentes.

Supuestos

  • Se presupone que el empleado de tienda tiene permisos para seleccionar al menos uno de la recogida en línea de compra en la orden de tienda o enviar desde la orden de tienda.
  • Los pasos de configuración de requisito previo para una recogida por lotes deben completarse. Para obtener más información sobre las configuraciones para la tarea de selección en trastienda, consulte Configurar la selección por lotes.

Solución

Portlet de selección
  • El portlet Órdenes de recogida tiene un botón Elegir lotes . Este botón es visible para un usuario de tienda con permiso de recurso de recogida por lotes ISF000043.
  • La pantalla Lista de lotes se visualiza al pulsar el botón Elegir lotes .
Pantalla Lista de lotes
La pantalla Lista de lotes muestra la lista de lotes segregados en distintas pestañas según el tipo de orden, es decir, el tipo de orden de recogida y envío.
  • La creación por lotes es un proceso de fondo que se puede planificar y ejecutar a intervalos regulares, por ejemplo, una vez al día. Las configuraciones por lotes controlan cómo se crean los lotes.
    Nota: Puede tener configuraciones de lote a nivel de tienda.
  • No se crean ni se listan lotes si los criterios de recogida por lotes no están configurados o planificados.
  • Los lotes se muestran en diferentes fichas en función de los tipos de orden, es decir, se envían desde la tienda o se compran en línea y se recogen de los pedidos. Si un lote contiene tipos de orden mixtos, los lotes se visualizan bajo una ficha. La lista muestra el tipo de orden para lotes mixtos.
  • Un empleado de tienda puede ver la lista de lotes existentes y lotes completados de las últimas 24 horas y nuevos lotes basados en la configuración.
    Nota: Los nuevos lotes deben ser lotes de borrador.
  • Los lotes se listan de forma que el lote con las órdenes SLA más altas siempre aparecen en la parte superior.
  • De forma predeterminada, la pantalla Lista de lotes lista los lotes Ready for picking, Picking in progress y New .
  • Un empleado de tienda puede filtrar lotes, en la interfaz de usuario, basándose en Assigned to user, Zones, Categoriesy Status.
  • Los detalles de lote como Batch ID, Status, Number of orders, Products, Zone, Categoryy SLA se muestran en la interfaz de usuario.
  • Los criterios de lote personalizados también se muestran en la interfaz de usuario junto con Zone y Category.
  • Un empleado de tienda empieza a recoger el lote pulsando el botón Elegir . El lote DRAFT se confirma en esta etapa y pasa al estado NOT_STARTED y también se asigna al empleado de tienda que ha iniciado la sesión.
    Nota:
    • Si el lote ya está confirmado por un empleado de tienda diferente, se visualiza una ventana de confirmación que solicita confirmación para continuar recogiendo el lote.
    • El atributo AssignedToUserId en Pick Request no se actualiza.
  • Batch ID es un enlace en el que se ha pulsado muestra la pantalla Batch summary .
    Tabla 1. Entradas API
    Entrada de API Descripción
    /stores/{storeId}/v1/batch:summary?group_by=deliveryMethod&status=DRAFT,NOT_STARTED,IN_PROGRESS,PICKED,DEPOSIT_IN_PROGRESS/COMPLETED API de resumen para visualizar el recuento de lotes basándose en el método de entrega o el estado, una llamada GET .
    /:tenantId/v1/stores/:storeId/batch-picks Una API GET no paginada para obtener la lista de lotes.
    /{tenantId}/v1/stores/zones Una API de GET para obtener las zonas de una tienda.
    /{tenantId}/v1/stores/product-categories Una API de GET para obtener las categorías de producto.
    /{tenantId}/v1/stores/{storeId}/batch-picks/{batchPickId}/confirm Una API de POST para confirmar lotes de borrador.
    /{tenantId}/v1/stores/{storeId}/batch-picks/{batchPickId}

    Cuerpo de la solicitud:

     [
      {
        "op": "add",
        "path": "/assignedToUserId",
        "value": "amgr"
      }
    ]
    Una API de PATCH para marcar el usuario en un lote.
Pantalla Resumen de lotes
La pantalla Resumen de lote muestra la visión general de los lotes, el estado del lote, asignado al usuario y la fecha de envío prevista. También puede ver los productos y pedidos que pertenecen a un lote.
  • La pantalla Resumen de lote muestra la información de cabecera de lote junto con los detalles de productos y pedidos.
  • La pantalla Resumen de lotes tiene las tareas relacionadas con la selección de Start o Continue batch junto con las tareas Print batch y Reset batch .
Ejecución de recogida por lotes para Ordenar después de recogida
  • El flujo de ejecución de recogida por lotes tiene tres pantallas:
    1. Pantalla Recoger
    2. Pantalla Finalización de recogida o intermedia
    3. Pantalla Depósito
  • Cuando el empleado de tienda pulsa el botón Elegir o Continuar o Ver resumen en la pantalla Lista , el usuario pasa a la pantalla adecuada en el flujo basándose en el estado del lote. La validación de assignedToUser garantiza que el usuario actual no inicie ningún lote que ya esté en curso por otro usuario. Se llama a GET on batch-picks/<batchId> para obtener el assignedToUser actualizado y se compara con el usuario actual. Si assignedToUser es nulo, se llama a la API batch-picks/<batchId> para actualizar assignedToUser y se abre la pantalla de ejecución de selección.
    • Si assignedToUser es el mismo que el usuario actual, se abre la pantalla de ejecución de recogida.
    • Si assignedToUser no es el mismo que el usuario actual, se abre una ventana para confirmar si el usuario actual desea continuar o no.
  • Pantalla Recoger

    • La pantalla Recogida lista los productos que deben seleccionarse en un lote agrupado por la ubicación de origen desde donde deben seleccionarse los productos. La lista se genera con la ayuda de la secuencia de ubicación para optimizar la vía de acceso transversal para la recogida.
    • Se llama a GET on Batch stores/<<StoreID>>/batch-picks/<<BatchID>>?fields=pickTasks para visualizar las tareas de recogida por lotes en la interfaz de usuario.
    • Las tareas de recogida por lotes se combinan basándose en la combinación Item y Location para un almacén de varias ubicaciones. Para una única ubicación y sin tienda de ubicación, las tareas de recogida se combinan basándose en Item.
    • ItemID y UOM son una combinación exclusiva para identificar el elemento. Incluso los atributos de inventario como InventoryStatus y ProductClass se tienen en cuenta al agregar las tareas de selección.
    • La ventana emergente Included in Orders muestra el producto que pertenece a varios pedidos en un lote y también la cantidad en cada pedido.
    • En el caso de un inventario con seguimiento de serie, la ventana emergente View serials muestra la lista de series seleccionadas.
    • La pantalla Recogida lista los productos con información primaria que deben seleccionarse en un lote agrupado por Source location de donde deben seleccionarse los productos.
    • Se llama a la API GET para BatchID con Fields como PickTasks para visualizar los datos en la interfaz de usuario.
    • En la salida de la API, batchPickTasks es la agregación de tareas de pick para una combinación exclusiva de Item y Location . Las tareas de pick se combinan basándose en la combinación Item y Location para un almacén de varias ubicaciones. Sin embargo, para una única ubicación y sin tienda de ubicación, las tareas de recogida se combinan basándose en Item.
    • ItemID y UOM es una combinación exclusiva para identificar el elemento. Incluso los atributos de inventario como InventoryStatus y ProductClass se tienen en cuenta al agregar las tareas de pick .
    • En la capa Mashup , esta salida de API se modifica para agrupar las tareas de pick mediante sourceLocationId y también para marcar los detalles del elemento en las tareas de pick .
    • La ventana emergente Incluido en pedidos muestra la división de pedidos a la que pertenece un producto y también la cantidad en cada pedido. Estos atributos se calculan en la capa de mashup.
    • La ventana emergente Ver series muestra la lista de series seleccionadas.
    • Se realiza una llamada get para obtener los detalles de la API.
  • Flujo de exploración

    Los productos de un lote se registran como recogidos cuando un empleado de tienda explora por primera vez la ubicación de recogida y, a continuación, explora el producto.
    • El campo de exploración de entrada se puede utilizar para explorar tanto la ubicación como el producto. Si IS_LOC_SCAN_MANDATORY=Y , la exploración de la ubicación es obligatoria antes de una exploración del producto.
    • Al explorar un código de barras, se llama a la API translateBarCode con BarCodeType=StoreItemOrLocation.
      Nota: BarCodeType para una única tienda de ubicación y una tienda agnóstica de ubicación será Item.
    • Cuando se explora una ubicación, el sistema la establece como una ubicación explorada o actual.
    • Cuando se explora un elemento, y si la API translateBarCode devuelve una conversión válida, se llama a la API pick para registrar la recogida del elemento. Se llama a la API pick con Item exclusivo y detalles de ubicación de la exploración anterior.
    • Si una exploración de ubicación es obligatoria, los iconos menos (-) y más (+) y las unidades de actualización de cantidad sólo se pueden pulsar cuando se explora una ubicación. Las operaciones se realizan sólo si la ubicación explorada coincide con el origen de la tarea de selección LocationId
    • Un empleado de tienda puede deshacer la selección pulsando menos (-) en el panel de producto.
    • Al pulsar +, se llama a la API PICK y al pulsar-, se llama a la API UNDO-PICK .
    Explorar un elemento no serializado
    • Al pulsar el botón, la cantidad seleccionada se reduce en una unidad. Se llama a la API UNDO-PICK y se actualiza la tarea de recogida.
    • Al pulsar el botón +, la cantidad seleccionada se incrementa en una unidad. Se llama a PICK API y se actualiza la tarea de selección.
    • Cuando se edita la cantidad, se llama a las API PICK o UNDO-PICK en función de si se añade o se reduce la cantidad.
    Explorar un elemento serializado
    • Al hacer clic en el botón se abre una ventana para eliminar el elemento. El empleado de tienda explora el número de serie y se marcará como no seleccionado. Se llama a la API translateBarCode con BarCodeType=SIMSerial. Si es satisfactorio, se llama a la API UNDO-PICK pasando el número de serie.
    • La cantidad no se puede editar especificando el número de unidades. Los números de serie deben explorarse o escribirse en el campo de exploración para marcarlos como seleccionados o eliminados.
  • Ejecución de selección

    Las siguientes reglas de tienda y configuración se leen desde el contexto de aplicación para determinar si la ubicación de exploración es obligatoria y también si la tienda es única o múltiple o no hay ninguna tienda de ubicación:
    • Flujo de exploración para almacén de varias ubicaciones

      • El campo de exploración de entrada se puede utilizar para explorar location y product. Si IS_LOC_SCAN_MANDATORY=Y , la exploración de la ubicación es obligatoria antes de una exploración del producto.
      • Se llama a la API translateBarCode con BarCodeType=StoreItemOrLocation.
      • Si el código de barras escaneado es válido y es un location, el panel location se resalta y también currentLocation en Pick el contexto se establece en la pantalla.
      • Cuando se explora el elemento, y si la API translateBarCode devuelve una conversión válida o única, se llama a la API PICK para registrar la recogida del elemento. Este elemento está pasando atributos exclusivos de Item y también detalles de location del escaneo anterior.
      • Esta API PICK identifica el pickTask que se debe actualizar basándose en el SLA o criterios de clasificación que se han configurado como parte de la configuración por lotes.
      • Después de cada llamada PICK , la lista Pick Tasks se actualiza con la tarea Pick .
      • Después de cada llamada PICK , se comprueba el estado de Batch status para PICKED . Si el estado es PICKED, el usuario pasa a la pantalla Recogida de finalización .
      • El empleado de tienda puede deshacer la selección pulsando menos (-) en el panel del producto. El uso de los botones + y - en el panel del producto llama a la API PICK y UNDO-PICK directamente desde la interfaz de usuario.
        Nota: Establezca BarCodeType=Item si la exploración de ubicación no es obligatoria o si las ubicaciones no se mantienen en la tienda.
      • translateBarCode entrada
        <BarCode BarCodeData="" BarCodeType="StoreItemOrLocation" DisplayLocalizedFieldInLocale="xml:CurrentUser:/User/@Localecode" pickRequestId=""   isLocationScanMandatory="">
                            <ContextualInfo
                                EnterpriseCode="xml:CurrentStore:/Store/@EnterpriseCode" OrganizationCode="xml:CurrentStore:/Store/@EnterpriseCode" Node="xml:CurrentStore:/Store/@ShipNode"/>                   
                            <LocationContextualInfo SIMLocationId=""/>
        </BarCode>
    • Registro de escasez y ubicación alternativa

      • Un empleado de tienda puede elegir seleccionar de una ubicación alternativa si el inventario que se necesita no está disponible en la ubicación de origen sugerida.
      • Si el producto no está disponible en ninguna ubicación alternativa, el empleado de tienda puede registrar la escasez.
      • Cuando un empleado de tienda elige una ubicación alternativa de la ventana emergente Alternate Location , se llama a la API Exception para crear un Alternate task con la ubicación recién elegida.
      • Cuando se selecciona la ubicación Alternate , la pantalla Elegir se renueva completamente para mostrar la nueva tarea generada.
      • Se llama a la misma API de excepción para registrar la escasez.
      • Después de Pick, Undo Pick o Short, se llama a la solicitud Get Batch pick y se comprueba batch status . Si el estado es picked, se visualiza la pantalla Recogida completada . Si el estado es canceled, se visualiza la pantalla Resumen de lote .
      • Al pulsar el botón Continuar , se muestra la página Completar selección o Intermediar .
      • Si el inventario está dañado o hay una escasez de inventario, un empleado de tienda debe comprobar si el inventario está disponible en cualquier otra ubicación de la tienda antes de marcarlo como corto. Pulse Ubicación alternativa para ver otras ubicaciones.
      • Se llama a la API GET alternate-source-locations para obtener las ubicaciones alternativas de una tarea de picking. La API devuelve la lista de ubicaciones que pueden satisfacer las unidades restantes. Si las unidades restantes no se pueden cumplimentar, devolverá las ubicaciones con las unidades de inventario disponibles.
      • Si no hay ubicaciones con inventario disponible, el empleado de tienda puede registrar una escasez. También deben seleccionar la razón para elegir una ubicación diferente o registrar una escasez. Los motivos se enumeran llamando a la API de códigos de excepción.
      • Una vez que el empleado de la tienda selecciona una ubicación alternativa y un motivo, se llama a la API de excepciones en una tarea de PICK y se crea un objeto de excepción en la tarea de recogida. Si otra ubicación tiene el inventario necesario, se crea una nueva tarea de recogida con la ubicación alternativa dada como sourceLocationId y la cantidad se actualiza como las unidades restantes o disponibles. La cantidad en la tarea de recogida original se reduce. Si la ubicación alternativa no está disponible, se actualiza la cantidad insuficiente en la tarea de recogida.
      • Si todos los productos de un lote se registran cortos, el lote y el envío se cancelan.
  • Recogida parcial de lote
    • Si un empleado de tienda no puede recoger todos los productos de un lote, puede elegir dividir el lote. Se llama a la API de división para mover los productos no recogidos a un nuevo lote.
    • Un empleado de tienda puede continuar depositando los productos seleccionados una vez que la división se haya realizado correctamente.
  • Finalización de recogida o página intermedia

    Cuando se seleccionan todos los productos de un lote, el usuario pasa a la pantalla Completar recogida .
    • Cuando la recogida se ha completado en la pantalla Recogida , se muestra al usuario un diálogo satisfactorio, en el que se reconoce qué usuario se lleva a la pantalla Recogida completada .
    • De forma alternativa, el empleado de tienda pulsa el botón Continuar en la pantalla Elegir para ir a la página Completar selección .
    • Si Status es NOT_STARTED, se muestra Warning dialog .
    • Si Status es PICKED, se visualiza la pantalla Elegir finalización .
    • Si Status es IN_PROGRESS, se muestra el aviso Do you want to pick the unpicked items in another batch? . Si Yes, se llama a la API Split . Después de completar correctamente la división, se visualiza la pantalla de finalización de recogida ; de lo contrario, se genera un error.
    • La API de división necesita leer la configuración de lote para ver si la orden se puede dividir entre lotes. Si la configuración es falsa o una orden se ha seleccionado parcialmente, la API genera un error. El error contiene los pickRequests y pickTasks que se seleccionan parcialmente.
    • Si la regla AUTO_STAGE_PRODUCTS está habilitada, se llama a la API preferences para establecer la ubicación de AutoStaging para cada DeliveryMethod.
    • La pantalla Finalización de recogida lee la regla AUTO_STAGE_PRODUCTS y una nueva configuración de tienda que se añade para especificar la ubicación de transferencia se utiliza para AUTO_STAGING. Esta configuración es para una combinación Delivery method y Document Type .
    • Asignar todo es una opción que está controlada por permisos de recursos.
    • La ubicación de transferencia en Pick Request no se tiene en cuenta durante la recogida por lotes.
    • Al pulsar Finalizar lote deposita todos los productos en la ubicación configurada o predeterminada, el lote pasa al estado Completed y el usuario pasa a la pantalla Resumen de lote .
    • Al pulsar Continuar se lleva al usuario a la pantalla Depósito .
    • Al pulsar Asignar todo se abre la ventana emergente Asignar ubicación de transferencia . Después de elegir la ubicación de transferencia, se llama a la API Deposit-all , el estado del lote se actualiza utilizando la API update y el usuario se lleva a la pantalla Resumen de lote .
    • Asignar todo

      • Todos los productos seleccionados se depositan en una ubicación utilizando la opción Asignar todo . Este botón está controlado por permisos de recursos.
      • Al pulsar Asignar todo se abre una ventana emergente selección de ubicación .
      • Se llama a la API translateBarCode con BarCodeType="HoldLocation" y cuando la traducción tiene éxito, se llama a la API depositAll. El estado de lote se mueve a DEPOSIT_IN_PROGRESS.
      • Después de que el depósito se haya realizado correctamente, se llama a la API Update para mover el estado del lote a COMPLETED.
    • Ordenar al transferir
      • Un empleado de tienda puede navegar a la pantalla Deposit para clasificar los productos seleccionados en diferentes órdenes y clasificarlos.
    • Transferencia automática
      • La pantalla de finalización de picking lee la regla AUTO_STAGE_PRODUCTS llamando a GET on rules y pick-preferences APIs para leer una ubicación de puesta a disposición automática.
      • Un empleado de tienda puede transferir automáticamente todos los productos seleccionados pulsando el botón Finalizar lote . Se llama a la API deposit-all para registrar el depósito de todos los productos recogidos y el estado del lote se actualiza al estado Completed llamando a la API update-status y el usuario es conducido a la pantalla de resumen de lotes.
    • Transferencia a una ubicación
      • Un empleado de tienda puede optar por depositar todos los productos en una ubicación explorando la ubicación en la ventana Ubicación de transferencia .
      • Se solicita al empleado de tienda que explore la ubicación de transferencia donde se van a depositar los productos. Cuando se realiza la exploración, se llama a la API translateBarcode con el origen SIMLocation. Si la ubicación explorada es una ubicación válida y el empleado de tienda pulsa Terminado, se llama a la API deposit-all en el lote con la ubicación explorada.
      • El estado del lote se actualiza a Completed llamando a la API update-status y el usuario pasa a la pantalla de resumen del lote.
  • Pantalla Depósito

    La pantalla Depósito permite a un empleado de tienda clasificar los productos seleccionados en diferentes órdenes y, simultáneamente, almacenarlos en etapas.
    Nota: La pantalla Depósito permite ordenar y depositar incluso para tiendas de una sola ubicación y ninguna. Estas tiendas pueden crear una ubicación de tipo TOTE para la ordenación.
    • La pantalla Depósito lista los pedidos que se deben depositar. Cada pedido tiene la lista de productos que se seleccionan.
    • Se llama a GET en BatchID /<<StoreID>>/batch-picks/<<BatchID>>?fields=PickRequests para visualizar los pedidos en un lote
    • Al pulsar el botón Continuar se lleva al usuario a la pantalla Depósito .
    • La Pantalla de depósito permite ordenar y depositar incluso para tiendas de una sola ubicación y ninguna. Estas tiendas pueden crear una ubicación de tipo TOTE para la ordenación.
    • Se lee una nueva regla BP_ALWAYS_SCAN_STAGING_LOCATION para determinar si la exploración de la ubicación es obligatoria para depositar cada producto en la orden. El valor predeterminado de la regla es N.
    • La pantalla Depósito lista las órdenes del lote para ayudar al empleado de tienda a ordenar y depositar los productos seleccionados.
    • Cada orden lista sus productos agrupados por ubicación de destino.
    • Se llama a la API GET para BatchID con fields="PickRequests" y los productos en orden se agrupan por ubicación de destino en la capa de mashup para visualizarlos en la interfaz de usuario.
    • El empleado de tienda organiza la orden si todos los productos se ordenan con la ayuda del panel de producto y utilizando la opción Stage Order .
    • De forma alternativa, el empleado de tienda deposita los productos explorando los productos uno por uno.
    • Depósito individual de productos

      • Es necesario explorar el producto antes de explorar o seleccionar la ubicación.
      • Si BP_ALWAYS_SCAN_STAGING_LOCATION=Y, se puede utilizar el mismo campo de exploración para explorar el producto o la ubicación de forma alternativa.
      • Si BP_ALWAYS_SCAN_STAGING_LOCATION=N, la ventana emergente Seleccionar ubicación de transferencia sólo se muestra cuando el sistema no sugiere ninguna ubicación de destino.
      • La interfaz de usuario mantiene el mapa del pedido y la ubicación de transferencia utilizada recientemente.
      • Cuando se explora el producto, se llama a la API translateBarcode , si la conversión es satisfactoria, se llama a la API matching-pick-tasks para encontrar la tarea matching pick . Si se encuentra la tarea matching pick y BP_ALWAYS_SCAN_STAGING_LOCATION=Y, se resalta el panel de productos. Al escanear la ubicación, se llama a la API translateBarcode y, si la traducción se realiza correctamente, se llama a la API deposit con la tarea matching pick y la ubicación escaneada. Esta API deposit maneja internamente la lógica de dividir la tarea de picking en dos si la targetLocationId es diferente de la que ya tiene estampada. El estado del lote también se actualiza en DEPOSIT_IN_PROGRESS.
      • Si BP_ALWAYS_SCAN_STAGING_LOCATION=N, cuando se encuentra la tarea matching pick , se comprueba el mapa de interfaz de usuario de Order-StagingLocation para derivar la ubicación de transferencia utilizada recientemente en el pedido. Si el mapa tiene una ubicación para la orden a la que pertenece la selección coincidente, se llama a la API deposit con ese targetLocationId. Si la correlación no tiene una ubicación de transferencia para el pedido, la interfaz de usuario muestra Select staging location. Tras una selección correcta de la ubicación de transferencia, se llama a la API de depósito para registrar la transferencia y también se actualiza la correlación de interfaz de usuario.
      • Al depositar, si una ubicación de transferencia determinada está llena, el empleado de tienda puede pulsar el enlace Ubicación alternativa y explorar la nueva ubicación de transferencia para la orden.
      • Después de que el empleado de tienda deposite los productos, se comprueba el estado de la tarea pick . Si COMPLETED, se llama a la API Get Batch details para comprobar si todos los pickTasks se han completado en el lote para evaluar si se ha depositado el lote completo.
      • La interfaz de usuario renueva el panel de orden cuando el targetlocationId cambia en el pickTask o en un nuevo targetlocationId. Otras tareas se listan bajo sin asignar.
      • El empleado de tienda también puede deshacer el depósito pulsando el botón - en el panel del producto.
    • Orden de depósito

      • Un empleado de tienda puede optar por depositar todos los productos en una ubicación de transferencia utilizando la opción Orden de transferencia . Orden de transferencia siempre abre la ventana emergente Ubicación alternativa para obtener la ubicación de destino.
      • Si PickRequest tiene un targetLocationId distinto del que se ha pasado en el cuerpo de la solicitud, se crea una excepción para las tareas restantes. Las nuevas tareas alternativas se actualizan con el nuevo targetlocationId.
      • Cuando se completa la transferencia, la evaluación de la interfaz de usuario del lote se completa pasando por todas las tareas de selección que se realizan en el lote. Si el lote se ha completado, se muestra un diálogo de éxito en la interfaz de usuario. Tras la confirmación del usuario, el Batch status se actualiza a COMPLETED llamando a la API update-status .
      • Al finalizar el depósito, la API de update-status valida si todas las tareas de pick que pertenecen al lote se han transferido y, a continuación, mueve el estado PickRequest a COMPLETED. El estado PickRequest no se actualiza si todos los PickTasks de un PickRequest no pertenecen al mismo lote y el estado del lote no se actualiza al estado COMPLETED .
    • Actualizaciones de envíos en IBM® Sterling Order Management System

      • Todos los envíos que pertenecen al lote deben actualizarse con BackroomPickedQuantity, ShortedQtyy StagedQunatity.
      • El estado del envío también debe cambiar si se seleccionan todas las líneas de envío.
    • Cambios de selección de pedido único en curso

      • El atributo includedInBatch en pickRequest comprueba si la solicitud pick se incluye en un lote. Si includedInBatch es true, se visualiza un recuadro de diálogo de confirmación donde el usuario puede elegir realizar una única selección de orden para este pickRequest.
      • Si el estado de PickRequest es NOT_STARTED, se permite la selección de orden única.
      • Si el estado de PickRequest es IN_PROGRESS o PICKED, se muestra una notificación con un mensaje Contact the user associated with the batch .
      • Esta API elimina un pickrequest de un lote cuando el estado de pickrequest es NOT_STARTED.
      • El Resumen de solicitud de recogida muestra la información del lote.

    Transferir pedido

    • Un empleado de tienda puede ordenar y transferir todos los productos en una orden en un paso utilizando el enlace Orden de etapa si los productos que pertenecen a una orden diferente se pueden identificar visualmente.
    • Se solicita al empleado de tienda que explore la ubicación de transferencia donde se van a depositar los productos. En la exploración, se llama a la API translateBarcode con el origen como SIMLocation. Cuando se explora una ubicación válida y el empleado de tienda pulsa Terminado, se llama a la API depositAll .
    • El empleado de tienda puede seguir depositando todas las órdenes una por una.

    Transferencia individual de productos

    • Un empleado de tienda puede ordenar y depositar todos los productos explorando los productos uno por uno utilizando el campo de entrada de exploración.
    • Es necesario explorar un producto antes de explorar o seleccionar la ubicación.
      • Si BP_ALWAYS_SCAN_STAGING_LOCATION=Y, se puede utilizar el mismo campo de exploración para explorar el producto o la ubicación de forma alternativa.
      • Si BP_ALWAYS_SCAN_STAGING_LOCATION=N, la ventana emergente Seleccionar ubicación de transferencia sólo se muestra cuando el sistema no sugiere ninguna ubicación de destino.
      • Cuando se escanea un producto, se llama a la API translateBarcode , si la traducción es correcta, se llama a la API pick-task:for-deposit para encontrar la tarea de recogida correspondiente. Si se encuentra la tarea de selección coincidente y BP_ALWAYS_SCAN_STAGING_LOCATION=Y, se resalta el panel del producto. Al escanear la ubicación, se llama a la API translateBarcode y, si la traducción es correcta, se llama a la API de depósito con la tarea de recogida y la ubicación escaneadas.
      • Si BP_ALWAYS_SCAN_STAGING_LOCATION=N, cuando se encuentra la tarea de picking coincidente, el sistema intenta derivar la ubicación de puesta a disposición utilizada recientemente para el pedido y se llama a la API de depósito con el targetLocationId. Si el sistema no puede encontrar la ubicación de transferencia utilizada recientemente, la interfaz de usuario muestra la ventana Seleccionar ubicación de transferencia . Una vez seleccionado correctamente el lugar de puesta a disposición, se llama a la API de depósito para registrar la puesta a disposición.

    Transferencia de pedidos en varias ubicaciones

    • Al depositar, si una ubicación de transferencia determinada está llena, el empleado de tienda puede pulsar el enlace Ubicación alternativa y explorar la nueva ubicación de transferencia para la orden y continuar depositando los productos. La nueva ubicación alternativa se utilizará para depósitos adicionales.
    • El empleado de tienda también puede deshacer el depósito pulsando el botón (-) en el panel del producto.

    Finalización de transferencia

    • El sistema evalúa si la transferencia de todos los productos se completa después de cada depósito. Si el lote está completo, tras la confirmación del usuario, el estado del lote se actualiza a COMPLETED llamando a la API update-status.
    • A continuación, el usuario se lleva a la pantalla Resumen de lote .

    Actualizaciones de envíos en el sistema Sterling Order Management

    Cuando se completa el estado del lote, los envíos correspondientes en el lote se actualizan con información de cantidad recogida y de escasez llamando al servicio ISFUpdateShipmentsOfBatchSynchronously . Este servicio también actualizará el estado del envío a Ready for packing o Ready for Customer si el envío se recoge por completo.

    Cambios de selección de orden única

    • Un empleado de tienda puede elegir recoger una orden individualmente incluso cuando ya está incluida en un lote y la recogida está en curso.
    • El atributo includedInBatch en pickRequest comprueba si la solicitud de recogida se incluye en un lote. Si includedInBatch es true, se muestra un recuadro de diálogo de confirmación al usuario donde el usuario puede elegir realizar una única selección de orden para una orden.
    • Se llama a esta API batch-picks:remove para eliminar un pickrequest de un lote.
    • El Resumen de solicitud de recogida muestra la información del lote.

    Ordenar al seleccionar cambios

    • El usuario se lleva al flujo de ejecución de recogida, basándose en el atributo batchSortType del lote.

    Ejecución de recogida por lotes para ordenar durante la recogida

    • El flujo Ejecución de recogida por lotes tiene tres pantallas.
      1. Seleccionar pantalla
      2. Pantalla Finalización de recogida o Intermedia
      3. Pantalla de depósito
    • Cuando un empleado de tienda pulsa los botones Elegir o Continuar o Ver resumen en la pantalla de lista, se visualiza la pantalla adecuada en el flujo basándose en Batch status.
      • Si Status es NOT_STARTED o IN_PROGRESS , se visualiza la pantalla Elegir .
      • Si Status es PICKED o DEPOSIT_IN_PROGRESS , se visualiza la pantalla Finalización de recogida .
      • Si Status es DEPOSIT_IN_PROGRESS , se visualiza la pantallaDepósito .
      • Si Status es COMPLETED , se visualiza la pantalla Resumen de lote .

    Pantalla Recoger

    • La pantalla Recogida lista los productos y su información principal que deben seleccionarse en un lote agrupado por su ubicación de source .
    • Se llama a la API GET para BatchID con fields="PickTasks" para visualizar los datos en la interfaz de usuario.
    • En la salida de la API, batchPickTasks es la agregación de tareas de pick para una combinación exclusiva de Item y Location . Las tareas de pick se deben combinar basándose en la combinación location y item para un almacén de varias ubicaciones. Sin embargo, para una única ubicación y sin tienda de ubicación, las tareas de pick se combinan basándose en Item.
    • ItemID y UOM son una combinación exclusiva para identificar el item. Incluso los atributos de inventario como InventoryStatus y ProductClass se tienen en cuenta al agregar las tareas de selección.
    • En Mashup Layer, esta salida de API se modifica para agrupar las tareas de pick mediante sourceLocationId y también para marcar los detalles del elemento en las tareas de pick .
    • La ventana emergente Incluida en pedidos muestra la división de pedidos a la que pertenece un producto y también la cantidad de cada pedido. Estos atributos se calculan en Mashup layer. También muestra información de bolsa en la que se colocan los productos.
    • La ventana emergente Ver series muestra la lista de series seleccionadas.
    • Ver pedidos por lotes muestra la vista de pedidos del lote junto con la información de la bolsa.

    Ejecución de selección

    • Las reglas de tienda y la configuración se leen desde el contexto de la aplicación para determinar si la ubicación de exploración es obligatoria y también si la tienda es de una sola ubicación o de varias ubicaciones o una tienda sin ubicación.
    • * IS_SINGLE_LOC_STORE y IS_LOC_SCAN_MANDATORY reglas de la gestión del inventario de la tienda y inventoryTracked bandera de la configuración de Sterling Store Engagement.
    • Si IS_LOC_SCAN_MANDATORY=N , la interfaz de usuario presupone que la ubicación se explora durante el proceso batchpick a diferencia de otros flujos en los que el empleado de tienda puede seguir escaneando la ubicación cuando la regla está desactivada.

    Flujo de exploración de almacén de varias ubicaciones

    • El campo de exploración de entrada se puede utilizar para explorar tanto la ubicación como el producto. Si es IS_LOC_SCAN_MANDATORY=Y, la exploración de ubicación es obligatoria antes de que se explore un producto.
    • Se llama a la API translateBarCode con BarCodeType="StoreItemOrLocation".
    • Si el código de barras escaneado es válido y es una ubicación, el panel de ubicación se resalta y también el currentLocation en contexto de selección se establece en la pantalla.
    • Si la API translateBarCode devuelve una conversión válida o única cuando se explora un artículo, la tarea de selección coincidente para el artículo explorado se determina realizando una llamada de API "pick-task:for-pick?productId=<<productID>>" .
    • Una vez determinado el orden, se valida con la correlación de interfaz de usuario de Order to Totes. La ventana Selección de bolsa se muestra para capturar la información de bolsa.
    • Puede pasar el identificador de tarea de recogida coincidente, se llama a la API PICK para registrar la recogida del artículo y también toteID como inTransitLocationId.
    • Esta API de PICK actualiza el pickTask con la selección y inTransitLocationId.
    • Después de cada llamada PICK , la lista de tareas de selección se actualiza con la tarea de selección.
    • Después de cada llamada PICK , se comprueba el estado del lote para el estado PICKED . Si el estado es PICKED, el usuario pasa a la pantalla de finalización de PICK .
    • Un empleado de tienda puede deshacer la selección pulsando menos (-) en el panel del producto que abre la ventana emergente eliminar productos .
    Nota: la falta de registro y la selección de ubicación alternativa durante la recogida serán las mismas que la clasificación después del flujo de recogida.

    Finalización de recogida o página intermedia

    • Cuando la recogida se ha completado en la pantalla Recogida , se muestra al usuario un diálogo satisfactorio, en el que se reconoce qué usuario se lleva a la pantalla Recogida completada .
    • De forma alternativa, el empleado de tienda pulsa el botón Continuar en la pantalla Elegir para ir a la página Completar selección .
    • Si Status es NOT_STARTED, se muestra Warning dialog .
    • Si el Status es PICKED, se visualiza la pantalla Elegir finalización .
    • Si Status es IN_PROGRESS, se muestra el aviso Do you want to pick the unpicked items in another batch? . Si Yes, se llama a la API Split y, después de que la división se haya realizado correctamente, se visualiza la Pantalla de finalización de recogida , de lo contrario, se genera un error.
    • La API de división necesita leer la configuración de lote para ver si la orden se puede dividir entre lotes. Si la configuración es falsa y los pedidos se seleccionan parcialmente, la API genera un error. El error contiene los pickRequests y pickTasks que se seleccionan parcialmente.
    • La pantalla Finalización de recogida lee la regla AUTO_STAGE_PRODUCTS y una nueva configuración de tienda que se añade para especificar la ubicación de transferencia se utiliza para AUTO_STAGING. Esta configuración es para una combinación Delivery method y Document Type .
    • La opción Asignar todo está controlada por permisos de recursos.
    • La ubicación de transferencia en Pick Request no se tiene en cuenta durante la recogida por lotes.
    • Al pulsar Finalizar lote deposita todos los productos en la ubicación configurada o predeterminada, el lote pasa al estado Completed y el usuario pasa a la pantalla Resumen de lote .
    • Al pulsar Continuar se lleva al usuario a la pantalla Depósito .
    • Al pulsar Asignar todo se abre la ventana emergente Asignar ubicación de transferencia . Después de elegir la ubicación de transferencia, se llama a la API Deposit-all , el estado del lote se actualiza utilizando la API update y el usuario se lleva a la pantalla Resumen de lote .

    Pantalla Depósito

    • Al pulsar el botón Continuar , se visualiza la pantalla Depósito .
    • La pantalla Depósito lista las órdenes del lote para ayudar al empleado de tienda a depositar las bolsas con productos seleccionados.
    • Cada orden lista las bolsas de un orden determinado que se agrupa por ubicación de destino.
    • Se llama a la API GET para BatchID con fields="PickRequests" y los productos en orden se agrupan por la ubicación de destino en la capa de mashup para visualizarlos en la interfaz de usuario.
    • Un empleado de tienda puede utilizar la opción Orden de etapa para transferir todas las bolsas de una orden determinada.
    • Alternativamente, un empleado de tienda también puede depositar las bolsas escaneando las bolsas una por una.

    Depósito de órdenes

    • Un empleado de tienda puede optar por depositar todas las bolsas en una ubicación de transferencia utilizando la opción Orden de transferencia . El orden de etapa siempre abre la ventana emergente Seleccionar ubicación de transferencia para obtener la ubicación de destino.
    • Al depositar, si una ubicación de transferencia determinada está llena, un empleado de tienda pulsa el enlace Ubicación alternativa y explora la nueva ubicación de transferencia para la orden.

    Depósito de bolsas

    • Un empleado de tienda puede empezar a depositar las órdenes explorando las bolsas utilizando el campo de exploración. Se llama a la API translateBarcode con BarcodeType="HoldLocation".
    • El orden correspondiente para la bolsa explorada se identifica iterando a través del pickRequests del lote.
    • La interfaz de usuario mantiene la correlación de orden y la ubicación de transferencia utilizada recientemente.
    • La API Deposit se llama pasando la información de PickRequest junto con ToteID.
    • Una vez depositados los productos, se comprueba el estado de la tarea pick . Si el estado es COMPLETED, se llama a la API Get Batch details para comprobar si se han depositado todos los pickTasks de un lote.
    • Para un nuevo locationIdde destino, la interfaz de usuario renueva el panel de orden cuando el locationId de destino cambia en la bolsa. Otras tareas se listan bajo sin asignar.
    • Un empleado de tienda también puede realizar o deshacer el depósito pulsando el enlace colocado en el panel de bolsa.
    • Después de cada depósito, la interfaz de usuario evalúa si el lote completo se transfiere pasando por todas las tareas de selección que pertenecen al lote. Si el lote se ha completado, se muestra un diálogo de éxito en la interfaz de usuario. Tras la confirmación del usuario, el estado del lote se actualiza a COMPLETED llamando a la API update-status .
    • Esta API valida si se han transferido todas las tareas de pick que pertenecen al lote. A continuación, el estado PickRequest se actualiza a COMPLETED. El estado de la solicitud de recogida no se actualiza si todos los PickTasks de un PickRequest no pertenecen al mismo lote y el estado del lote se actualiza al estado COMPLETED .