Plataforma de nueva generación

Implantación de la recogida en la trastienda basada en el envío en tiendas con gestión de inventario en tienda (SIM)

En las tiendas que están configuradas sin Gestión de inventario de tienda (SIM) habilitada, los asociados de la tienda pueden seleccionar productos disponibles en la trastienda y colocarlos en una ubicación de preparación para que puedan usarse para completar envíos desde la tienda o recogida en la tienda. En esta sección se describen las API, los servicios y otros componentes que se utilizan para implementar la selección interna basada en envíos.

Configuración

El portlet de selección interna basada en envíos sólo se visualiza cuando se cumplen los siguientes requisitos previos:
  • La opción Configuración del inventario de la tienda en el Administrador de aplicaciones se establece en SIM no habilitado o se llama a la API manageOrganizationHierarchy con un valor de 00 para el atributo StoreInvConfig .
  • El usuario tiene permisos de recurso para Recogida (BOPIS) o Envío (SFS), es decir, ISF000001 o ISF000002.
  • Para un elemento serializado, el origen externo para la conversión de código de barras debe configurarse con BarcodeType=“Item”.

Portlet Órdenes de recogida

  • El portlet muestra el recuento total e individual de envíos con el estado Preparado para selección interna o Selección interna en curso.
  • Se llama a la API getShipmentList y se pasa el estado del envío, el tipo de documento y el método de entrega para obtener el recuento de envíos. El método de entrega se pasa a la API basándose en los permisos de recurso.
  • El empleado de tienda también puede explorar el número de orden o el número de envío en el portlet. Durante la exploración, se llama a la API translateBarCode con BarCodeType=”StoreOutboundShipment”.
    • Si se devuelven varias traducciones, se muestra una lista de envíos.
    • Si se devuelve una sola traducción y el envío tiene el estado Preparado para selección interna o Selección interna en curso , se visualiza la página Recogida de pedido.
    • Si se devuelve una sola traducción y el envío tiene un estado distinto de Preparado para selección interna o Selección interna en curso, se muestra una confirmación y se abre la página Resumen de envío.
    • Si la entrada de código de barras no coincide con ningún número de pedido o número de envío, se visualiza un mensaje de error.

Página Lista de pedidos de selección

  • Un empleado de tienda puede pulsar los recuentos En curso, No iniciadoo Envíos en el portlet para ver la lista de envíos filtrada en función del estado y del método de entrega. El recuento de Envíos lista los envíos con los estados siguientes:
    • Ready for backroom pick. Se visualiza el botón Orden de recogida .
    • Backroom pick in progress. Se visualiza el botón Continuar selección
  • Al pulsar Elegir o Continuar selección, si el AssignedToUserId es diferente del usuario actual, se muestra un mensaje de confirmación. A continuación, el usuario actual puede optar por continuar la recogida o volver a empezar. Si AssignedToUserId es nulo o el mismo que el usuario actual, se muestra la página Elegir pedido .
Lista de envíos
  • La lista de envíos está paginada. Al desplazarse, se llama a la API getShipmentList con pageSize: 10 para obtener el siguiente conjunto de envíos que se añaden a la lista de envíos existentes.
  • Si no hay envíos presentes, se muestra un mensaje.
  • La lista de envíos se puede ordenar por ExpectedShipmentDate. La ordenación predeterminada es De más antiguo a más reciente.
  • La lista de envíos se puede filtrar basándose en el usuario al que se asigna la solicitud de recogida, el estado y el tipo de orden.
    • Asignado a lista todos los usuarios de la tienda que ha iniciado la sesión llamando a la API getUserList . Se utiliza la misma lista de usuarios para visualizar los usuarios bajo Asignado a.
    • Estado muestra las casillas de verificación Preparado para selección interna y Selección interna en curso .
    • La opción para ordenar por Tipo de orden sólo se visualiza para el método de entrega de envío, ya que las órdenes de envío pueden tener un tipo diferente, como por ejemplo Orden de venta y Orden de transferencia.

Flujo de ejecución de órdenes de recogida

  • Cuando un empleado de tienda pulsa Elegir o Continuar selección en la página de lista de envíos, se valida el usuario asignado. Esto es para asegurarse de que el usuario actual no empieza a trabajar en ninguna orden de envío que esté recogiendo otro usuario. Una vez iniciada la recogida por un empleado de tienda, se asigna a dicho empleado.
  • El ID de usuario asignado se marca en la orden cuando el empleado de tienda inicia la orden de envío pulsando Elegir o Continuar recogida o cuando el empleado de tienda explora el número de orden o el número de envío del portlet.
  • Se llama a la API getShipmentDetails para obtener el AssignedToUserId, que luego se compara con el usuario actual.
    • Si AssignedToUserId es nulo, se llama a la API changeShipment para actualizar AssignedToUserId y se muestra la página Elegir orden .
    • Si AssignedToUserId es el usuario actual, se muestra la página Elegir pedido .
    • Si AssignedToUserId es diferente del usuario actual, se muestra un mensaje para confirmar si el usuario actual desea continuar la recogida o empezar de nuevo.
      • Si se selecciona Volver a empezar en el mensaje visualizado, se llama a la API changeShipment para actualizar el envío con la información siguiente:
        • El AssignedToUserId se actualiza en el envío.
        • Para el elemento serializado, ShipmentTagSerials se elimina de ShipmentLine.
        • BackroomPickedQuantity y StagedQuantity se restablecen en 0.
      • Si se selecciona Continuar en el mensaje visualizado, se llama a la API changeShipment para actualizar AssignedToUserId en el envío.
  • En la página Pedido de recogida , la línea de envío se muestra con otros detalles como, por ejemplo, el artículo, la cantidad y los productos cortos.
  • La lista de productos se visualiza basándose en la secuencia de ubicación de recogida en la línea de envío.

    Los atributos PickLocation y PickLocationSeq en el elemento ShipmentLine deben rellenarse implementando la salida de usuario YDMBeforeCreateShipmentUE .

  • La página Elegir pedido lista las líneas de envío junto con la información primaria del producto.

    Se llama a la API getShipmentDetails y getShipmentLineList con ShipmentKey para visualizar los detalles. Se llama a la API getRuleDetails para saber si la ubicación de transferencia es necesaria o no.

  • Para productos serializados, se visualiza el enlace Ver series para mostrar la lista de series seleccionadas.
  • Para seleccionar un producto, el empleado de tienda puede explorar un producto o número de serie.

    Una vez que el empleado de tienda selecciona un producto, se llama a la API changeShipmentStatus para actualizar el estado del envío a Backroom pick in progress.

    Al explorar el producto, se llama a la API registerBarcodeForBackroomPick para actualizar la cantidad seleccionada.

  • La opción Elegir todo se muestra en el menú Acciones de la página Elegir todo . Se llama a la API changeShipment cuando se selecciona Elegir todo y se seleccionan todos los elementos no serializados.
    Nota: La opción Elegir todo sólo se visualiza si el permiso de recurso ISF000053 está habilitado.
  • El menú Acciones también muestra la opción Imprimir . La acción para imprimir el envío invoca el servicio StorePickTicket_94 . Puede personalizar las prestaciones de impresión preconfiguradas personalizando este servicio o utilizando los siguientes XML de ejemplo:
    • /template/prints/ycd/xsl/StorePickTicket_94_multiApi.xsl.sample
    • /template/prints/ycd/xsl/StorePickTicket_94_output.xsl.sample

Actualizaciones de cantidad

Para un producto no serializado
  • El icono de menos reduce la cantidad de recogida en 1 unidad. Se llama a la API changeShipment en la línea de envío y se actualiza la línea de envío.
  • El icono más aumenta la cantidad de recogida en 1 unidad. Se llama a la API changeShipment en la línea de envío y se actualiza la línea de envío.
  • Cuando la cantidad se especifica manualmente, en función de si la cantidad aumenta o disminuye, se llama a la API changeShipment .
Para un producto serializado
  • El icono de menos abre la ventana Eliminar serie. El empleado de tienda puede explorar el número de serie y se marca como no seleccionado. Después de la exploración, se llama a la API translateBarCode . Si es satisfactorio, se actualiza la línea de envío.
  • El recuadro de edición de cantidad y los iconos más están inhabilitados ya que los números de serie se deben explorar o especificar en el campo de exploración para que se marquen como seleccionados o eliminados.

Registrar escasez

  • Si el inventario está dañado o es corto, el empleado de tienda puede marcarlo como corto.
  • La razón de escasez que se proporciona de forma predeterminada es Inventory Shortage. También puede configurar razones de escasez personalizadas para especificar las razones adecuadas al registrar la escasez. La razón de escasez personalizada se maneja de la misma forma que Inventory Shortage. Si desea que las razones de escasez personalizadas se manejen de forma diferente, debe personalizar para implementar su propia lógica.
  • El empleado de tienda tiene que seleccionar una razón para marcar la solicitud de recogida como corta. Las razones se listan llamando a la API getCommonCodeList con CodeType=YCD_PICK_SHORT_RESOL.
  • Una vez que el asociado selecciona una razón, se llama a la API changeShipment en la línea de envío con ShortageQty y se actualiza la cantidad de escasez en la línea de envío. El mashup de escasez de registros llama internamente a la API changeOrder para añadir notas de escasez de registros en la línea de pedido.
  • Cuando se recoge o se acorta cualquier producto, se realiza una comprobación para saber si el envío se ha recogido completamente o si se ha registrado una escasez.

    Si está completamente abreviado, el envío se cancela, se visualiza un mensaje de aviso y se visualiza la página Resumen de envío .

    Si el pedido se selecciona completamente, pero incluye algunas carencias, si la regla WSC_BP_STG_REQD se establece en Y, se visualiza la ventana de ubicación de transferencia.

Ventana Asignar ubicación de transferencia

  • Cuando se abre la ventana Asignar ubicación de transferencia , se llama a la API getRuleDetails para obtener los detalles de la regla de conversión de código de barras StagingLocation .
  • Si la regla WSC_BP_STG_TRAN_REQD se establece en Y, en el escaneo, se llama a la API translateBarcode con el origen como HoldLocation.
  • Cuando se pulsa Terminado en la ventana Asignar ubicación de transferencia , se llama a la API changeShipment para actualizar la ubicación de retención en el envío.
  • A continuación, se llama a la API getShipmentLineList para validar el envío para la recogida completa. Esto llama internamente a changeShipmentStatus para mover el envío al siguiente estado basándose en el método de entrega.
  • Una vez completada la selección interna, se visualiza la pantalla Resumen de envío .