Plataforma heredada

Órdenes de embalaje

Un empleado de tienda debe poder embalar los productos que se seleccionan en la sala de espera y que están listos para embalarse o embalados parcialmente.

Solución

En la sección siguiente se describen las API, las rutinas de usuario, los servicios y otros componentes.

Un empleado de tienda puede iniciar el proceso de embalaje desde el portlet Pedidos de embalaje en la vista Cumplimentación de orden.
Nota: El empleado de tienda puede realizar envíos de orden de venta y de orden de transferencia.
Portlet de órdenes de embalaje
En el portlet Pedidos de embalaje , un empleado de tienda puede iniciar el proceso de embalaje de las siguientes maneras:
  • El empleado de tienda puede pulsar el recuento En curso para ver los envíos que están en el estado Embalaje en curso . De forma similar, al pulsar el recuento No iniciado se muestran los envíos que están en el estado Preparado para embalaje . De forma alternativa, el empleado de tienda puede pulsar el recuento visualizado en el centro del portlet para ver la lista completa de envíos que se van a embalar. En todos los escenarios, se visualiza la pantalla Lista de orden de embalaje .
  • Un empleado de tienda también puede explorar o especificar el ID de producto para iniciar el proceso de embalaje. Se llama a la API translatebar code para convertir el código de barras del producto en ID de producto. De forma alternativa, un empleado de tienda puede utilizar la opción Búsqueda avanzada para buscar órdenes o envíos utilizando el número de orden, el número de envío o el ID de usuario para los envíos asignados a un empleado de tienda determinado. Si la búsqueda da como resultado un único envío, el empleado de tienda se lleva directamente a la pantalla Orden de embalaje . Si la búsqueda da como resultado varios pedidos, se visualiza la pantalla Lista de pedidos de embalaje con una lista de pedidos que coinciden con los criterios de búsqueda.

El embalaje solo se puede realizar para envíos en estado Preparado para embalaje o Embalaje en curso . Si un envío no cumple estos criterios, se muestra un mensaje adecuado antes de continuar con la tarea. Se llama a la API getShipmentList para validar y recuperar envíos para embalaje.

Un empleado de tienda también puede optar por filtrar los envíos basándose en el transportista y el estado. Además, el empleado de tienda también puede ordenar los envíos basándose en la fecha de envío prevista. Se llama a la API getShipmentList para ordenar y filtrar los envíos basándose en las opciones seleccionadas.

En la pantalla Lista de órdenes de embalaje , el empleado de tienda puede seleccionar un envío y pulsar Orden de embalaje o Continuar embalaje.

Orden de embalaje o Continuar embalaje
Cuando el empleado de tienda pulsa Orden de embalaje, se llama a la API changeShipmentStatus para cambiar el estado del envío de Listo para embalaje a Embalaje en curso. Se llama a la API changeShipment para asignar el envío al usuario que haya iniciado la sesión. La API getShipmentDetails capta los detalles del envío como, por ejemplo, el número de envío, el estado, la ubicación de transferencia, las transacciones permitidas, etc.

Si el empleado de tienda pulsa Continuar embalaje, el envío se asigna al usuario que ha iniciado la sesión.

Si ya se ha asignado el envío a un empleado de tienda diferente y el estado del envío es Embalaje en curso, se preguntará al empleado de tienda actual si desea volver a empezar, continuar o cancelar la acción. Si el empleado de tienda elige volver a empezar, se llama a la API unpackShipment para eliminar cada uno de los paquetes existentes asociados con la orden. Se llama a la API changeShipment para asignar el envío al usuario que haya iniciado la sesión.

Pantalla Orden de embalaje: Panel Productos
  • En la pantalla Orden de embalaje , se llama a la API getShipmentLineList para listar los productos que todavía no se han empaquetado para un envío. El panel muestra el recuento de los productos y cada producto muestra el ID de producto, la cantidad empaquetable, las opciones Embalar y Registrar escasez. Se llama internamente a la API getCompleteItemList, para visualizar los productos de variación.
  • Si hay una escasez para un producto, el empleado de tienda puede pulsar Registrar escasez y seleccionar una razón de escasez adecuada para la cantidad acortada. Se llama a la API getCommonCodeList con CodeType como YCD_PACK_SHORT_RESOL, para recuperar las razones de escasez. De forma predeterminada, solo se proporciona Escasez de inventario como razón de escasez. Cuando el empleado de tienda pulsa Aceptar, se llama a la API recordShortageForPack para registrar la escasez del producto.
  • El empleado de tienda puede pulsar el icono de información de un producto para ver las instrucciones de embalaje.
Pantalla Orden de embalaje: panel Paquetes
  • Se llama a la API getShipmentContainerList para visualizar el recuento de paquetes, la lista de paquetes para el envío y el paquete actual. Si el envío no tiene ningún paquete, se llama a la API generateSCM para generar SCM y crear un contenedor de borrador.
  • Después de añadir productos al contenedor de borrador, un empleado de tienda puede optar por añadir los productos restantes a los paquetes nuevos. Cuando el empleado de tienda pulsa Añadir paquete, se llama a la API generateSCM para generar SCM y el nuevo paquete se considera como el paquete actual.
  • Esta API se utiliza para pintar la lista de paquetes/contenedores en el envío. Se llama a esta API en varios lugares para obtener la lista actualizada de contenedores después de realizar una acción específica en la pantalla

  • El empleado de tienda puede explorar los productos o especificar el ID de producto manualmente para añadir los productos a un paquete. Si el producto explorado no pertenece al envío o el código de barras no es válido, se visualiza un mensaje de error adecuado. La API registerbar codeForPacking valida si el producto explorado forma parte del envío y tiene una cantidad empaquetable o no. Si es así, el producto se añade al contenedor seleccionado actualmente. La registerbar codeForPacking API llama internamente a las translatebar code API changeShipment y. La translatebar code API traduce el código de barras a los detalles del producto. La API changeShipment actualiza los detalles del paquete utilizando SCM para un nuevo paquete, y ShipmentContainerKey para un paquete existente.
  • Durante el embalaje, el empleado de tienda puede explorar un producto una vez y puede optar por actualizar manualmente la cantidad restante especificando la cantidad o utilizando los botones - y + . Si se especifica una cantidad no válida en el campo de cantidad, se muestra un mensaje de error adecuado. El botón Actualizar sólo se muestra cuando se especifica o se modifica manualmente una cantidad válida. Cuando el empleado de tienda pulsa Actualizar, se llama a la API changeShipment para actualizar la cantidad del producto en el paquete. Del mismo modo, el empleado de tienda puede repetir el procedimiento para embalar los productos uno a uno.
  • El empleado de tienda puede pulsar Embalar todo para embalar todos los productos en el paquete a la vez. Se llama a la API changeShipment para embalar todos los productos en el paquete actual. No obstante esta acción sólo la puede realizar un empleado de tienda que tenga los permisos de recurso adecuados.
  • Para un paquete determinado, el campo Peso se visualiza con la UdM de peso predeterminada del entorno local de la tienda. El empleado de tienda puede especificar el peso de cada paquete. Cuando se especifica o se modifica el peso, el empleado de tienda debe pulsar Actualizar. Se llama a la API changeShipment para guardar el peso del paquete.
    Nota: Cuando se añade o elimina un nuevo producto o se cambia la cantidad de un producto en un paquete, se restablece el peso del paquete.
  • Número de seguimiento y generación de etiquetas
    • El botón Generar etiqueta se visualiza para un paquete, sólo cuando un transportista está integrado con la aplicación. Después de especificar el peso del paquete y actualizar, el empleado de tienda puede pulsar Generar etiqueta. Se llama al servicio StoreContainerLabel_94 , que a su vez llama a la API getTrackingNoAndPrintLabel que se comunica con el servidor de transportista para recuperar el número de seguimiento y las etiquetas del paquete. Si la API getTrackingNoAndPrintLabel devuelve el elemento FailedContainers, no se genera el número de seguimiento para el paquete, y se visualiza el mensaje adecuado.

      Siempre que se realiza un cambio en un contenedor como, por ejemplo, añadir un nuevo producto, cambiar la cantidad de un producto en el contenedor, suprimir el contenedor, actualizar el peso, etc., se llama a la API voidTrackingNumber para anular el número de seguimiento generado anteriormente. Se llama a la API changeShipment para actualizar el envío e indicar que el proceso de embalaje no ha finalizado.

      Cuando el empleado de tienda pulsa Finalizar embalaje, se llama a la API getShipmentContainerList para recuperar una lista de paquetes y así garantizar que el embalaje se complete, y la salida de la API se utiliza para llevar a cabo las validaciones siguientes:
      • Determine si el envío se ha embalado, no se ha embalado o se ha embalado parcialmente y visualice un mensaje adecuado.
      • Determinar si el envío se ha registrado con un transportista que se haya integrado, o no, en la aplicación.
      • Si el número total de paquetes que devuelve la API es cero, se llama a la API changeShipmentStatus para cambiar el estado del envío por Embalado, y se llama a la API changeShipment para actualizar los atributos del envío y marcar el proceso de embalaje como completado.
    • El botón Generar etiqueta no se visualiza para un paquete cuando el transportista no está integrado. Cuando el empleado de tienda especifica el peso de un paquete y guarda los cambios, se llama a la API changeShipment para guardar el peso del paquete. Cuando el empleado de tienda pulsa Finalizar embalaje, se llama a la API getShipmentContainerList para recuperar una lista de paquetes y así garantizar que el embalaje se complete, y la salida de la API se utiliza para llevar a cabo las validaciones siguientes:
      • Determine si el envío se ha embalado, no se ha embalado o se ha embalado parcialmente y visualice un mensaje adecuado.
      • Si el número total de paquetes que devuelve la API es cero, se llama a la API changeShipmentStatus para cambiar el estado del envío por Embalado, y se llama a la API changeShipment para actualizar los atributos del envío y marcar el proceso de embalaje como completado.
    • Volver a imprimir etiqueta: si se genera el número de seguimiento y las etiquetas de envío se imprimen correctamente, el botón Generar etiqueta no se visualiza. En su lugar, se muestra el botón Volver a imprimir etiqueta . Cuando el empleado de tienda pulsa Volver a imprimir etiqueta, se llama al servicio StoreLabelReprint_94 , que a su vez llama a la API reprintCarrierLabel para volver a imprimir las etiquetas.
    • Imprimir lista de embalaje: Cuando el empleado de tienda pulsa Imprimir lista de embalaje, se llama al servicio StorePackSlip_173 para imprimir el contenido del contenedor actual.
    • Desempaquetar: cuando el empleado de tienda pulsa el botón Actualizar , se muestra una solicitud para confirmar el desempaquetado. Si el empleado de tienda pulsa , se llama a la API unpackShipment para suprimir el paquete. El paquete creado más recientemente es considerado como el paquete actual. Si no hay paquetes, un paquete nuevo se considera como el paquete actual.

    Se llama a la API getShipmentContainerList siempre que un empleado de tienda realiza acciones como, por ejemplo, añadir y suprimir paquetes. Además, antes de que se complete el empaquetado, se llama a la API para recuperar paquetes que no tienen peso y número de seguimiento, si la integración del transportista está habilitada.

    Nota: A partir del release 9.4 de la aplicación, se admiten las básculas de peso conectadas a través de USB y que pasan la información de peso idéntica a los datos introducidos utilizando un teclado. El empleado de tienda debe establecer el foco en el campo de peso antes de que se envíe la información de peso. Consulte la documentación de escala específica para configurar la salida de los datos de peso de la escala.

Implementación

  • El empleado de tienda debe tener los permisos de recurso siguientes:
    • Orden de embalaje: permite a un empleado de tienda realizar el proceso de embalaje.
    • Desembalar productos: permite a un empleado de tienda desembalar un envío.
    • Imprimir lista de embalaje: permite a un empleado de tienda imprimir la lista de embalaje para el paquete actual.
    • Embalar todo: permite a un empleado de tienda embalar todos los productos restantes en un envío a la vez.
    • Actualizar manualmente la cantidad durante el embalaje: permite a un empleado de tienda especificar manualmente la cantidad del paquete y utilizar los botones - y + para editar la cantidad del paquete.
    Para obtener más información sobre la administración de permisos de grupos de usuarios, consulte Administración de permisos de grupos de usuarios.
  • Debe habilitar los siguientes tipos de modificación para envíos en el estado Embalaje en curso y Embalado.
    • Añadir o eliminar contenedor
    • Embalar envío
    • Eliminar envío
    • Desembalar envío
    • Eliminar línea
    • Cambiar otros atributos
    Para obtener más información sobre la configuración de Tipos de modificación, consulte Definición de reglas de modificación de estado.
  • Configure Preferencias de transportista de paquete de la forma adecuada. Para obtener más información, consulte Gestionar preferencias de transportista de paquete.
  • Debe configurar los indicadores de nivel de servicio para las órdenes de envío. Para obtener más información, consulte Configurar indicadores de nivel de servicio.
  • Debe habilitar Integración de nivel de paquete para un servicio de transportista. Para obtener más información, consulte Definición de servicios de transportista para envíos de paquetes. No debe alternar entre Integración de nivel de envío e Integración de nivel de paquete ya que el comportamiento de la característica cambia totalmente, y que no podrá enviarlos paquetes satisfactoriamente.
  • Puede configurar las instrucciones de embalaje a nivel de producto, o a nivel de línea de envío. La instrucción de embalaje de línea de envío tiene prioridad sobre la instrucción del producto. El Tipo de instrucción debe ser Embalar. Si hay varias instrucciones, se visualiza la última instrucción de embalaje. Para obtener más información sobre la gestión de instrucciones, consulte IBM Descripción general de la administración de elementos de Sterling Business Center.
  • Configure Resolución de escasez de envío de paquetes de la forma adecuada. De forma predeterminada, Escasez de inventario está disponible como resolución de escasez para la organización predeterminada. Si desea utilizar la misma resolución de escasez para una nueva empresa, debe heredar las propiedades de la organización predeterminada o utilizar los valores siguientes para crear resoluciones de escasez utilizando Sterling Business Center.
    • Escasez de inventario
      • Resolución de escasez: inventoryShortage
      • Nombre de resolución de escasez: Escasez de inventario
    Para obtener más información, consulte Gestionar resoluciones de escasez de envíos de paquetes. Para heredar las propiedades de la organización predeterminada, consulte Definición de la información principal de una empresa. Si crea resoluciones de escasez personalizadas, también deberá tener la implementación correspondiente.
  • De forma predeterminada se proporcionan los siguientes servicios de impresión:
    • El servicio StorePackSlip_173 utiliza plantillas StorePackSlip_173_multiApi.xsl.sample y StorePackSlip_173_output.xsl.sample para imprimir listas de embalaje.
    • El servicio StoreContainerLabel_94 utiliza las plantillas StoreContainerLabel_94_input.xsl.sample y StoreContainerLabel_94_output.xsl.sample para imprimir las etiquetas de envío.
    • El servicio StoreLabelReprint_94 utiliza las plantillas StoreLabelReprint_94_input.xsl.sample y StoreLabelReprint_94_output.xsl.sample para volver a imprimir las etiquetas de envío.

    Los XSL de entrada o de varias API se utilizan para llamar a varias API que recuperan la información que va a imprimirse, mientras que los XSL de salida se utilizan para dar formato a la salida de la API como contenido HTML. Las plantillas están presentes en el directorio /template/prints/ycd/xsl/. Las plantillas se proporcionan como implementación de ejemplo, y se les añade el sufijo .sample. Puede seguir utilizando las plantillas de ejemplo o renombrarlas para eliminar el sufijo .sample de los nombres de archivo, y personalizarlos según sea necesario.

  • Para obtener información sobre la integración de transportistas, consulte Definición de servicios de transportista para envíos de paquetes.

    Para implementar la integración del operador, consulte Integración del servidor del operador.

Configuración de tipos de código de barras

Debe configurar tipos de código de barras para la organización de la tienda. En la aplicación se utilizan los siguientes tipos de código de barras:
  • Item para convertir el código de barras del producto en ID de producto.
  • Store Outbound Shipment. Se utiliza en el portlet de órdenes de embalaje para buscar el envío o pedido coincidente. El código de barras debe tener configurados los siguientes orígenes:
    • Shipment: Servicio externo. El origen de validación de código de barras es YCD_Translate_bar code_InboundShipment.
    • Order: Servicio externo. El origen de validación de código de barras es YCD_Translate_bar code_OrderNo.
De forma predeterminada, se proporcionan tipos de código de barras para la organización predeterminada. Al configurar una nueva empresa, estos tipos de código de barras deben volver a crearse o copiarse de la organización predeterminada. Para más información, consulte Configuración de códigos de barras.

Para obtener más información sobre las API, consulte IBM® Sterling Order Management System: Javadoc™.