Ó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.
- 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 recuentoNo iniciado
se muestran los envíos que están en el estadoPreparado 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 codepara 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
oEmbalaje 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 APIgetShipmentListpara 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
getShipmentListpara 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.
- El empleado de tienda puede pulsar el recuento En curso para ver los envíos que están en el estado
- Orden de embalaje o Continuar embalaje
- Cuando el empleado de tienda pulsa Orden de embalaje, se llama a la API
changeShipmentStatuspara cambiar el estado del envío deListo para embalaje
aEmbalaje en curso
. Se llama a la APIchangeShipmentpara asignar el envío al usuario que haya iniciado la sesión. La APIgetShipmentDetailscapta 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 APIunpackShipmentpara eliminar cada uno de los paquetes existentes asociados con la orden. Se llama a la APIchangeShipmentpara 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
getShipmentLineListpara 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 APIgetCompleteItemList, 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 APIgetCommonCodeListconCodeTypecomoYCD_PACK_SHORT_RESOL, para recuperar las razones de escasez. De forma predeterminada, solo se proporcionaEscasez de inventario
como razón de escasez. Cuando el empleado de tienda pulsa Aceptar, se llama a la APIrecordShortageForPackpara 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.
- En la pantalla Orden de embalaje , se llama a la API
- Pantalla Orden de embalaje: panel Paquetes
- Se llama a la API
getShipmentContainerListpara 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 APIgenerateSCMpara generarSCMy 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
generateSCMpara generarSCMy 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 codeForPackingvalida 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. Laregisterbar codeForPackingAPI llama internamente a lastranslatebar codeAPIchangeShipmenty. Latranslatebar codeAPI traduce el código de barras a los detalles del producto. La APIchangeShipmentactualiza los detalles del paquete utilizandoSCMpara un nuevo paquete, yShipmentContainerKeypara 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
changeShipmentpara 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
changeShipmentpara 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
changeShipmentpara 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 APIgetTrackingNoAndPrintLabelque se comunica con el servidor de transportista para recuperar el número de seguimiento y las etiquetas del paquete. Si la APIgetTrackingNoAndPrintLabeldevuelve el elementoFailedContainers, 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
voidTrackingNumberpara anular el número de seguimiento generado anteriormente. Se llama a la APIchangeShipmentpara 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 APIgetShipmentContainerListpara 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
changeShipmentStatuspara cambiar el estado del envío porEmbalado
, y se llama a la APIchangeShipmentpara 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
changeShipmentpara guardar el peso del paquete. Cuando el empleado de tienda pulsa Finalizar embalaje, se llama a la APIgetShipmentContainerListpara 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
changeShipmentStatuspara cambiar el estado del envío porEmbalado
, y se llama a la APIchangeShipmentpara 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 APIreprintCarrierLabelpara volver a imprimir las etiquetas. - Imprimir lista de embalaje: Cuando el empleado de tienda pulsa Imprimir lista de embalaje, se llama al servicio
StorePackSlip_173para 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 Sí, se llama a la API
unpackShipmentpara 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
getShipmentContainerListsiempre 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.
- Se llama a la API
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.
- Debe habilitar los siguientes tipos de modificación para envíos en el estado
Embalaje en curso
yEmbalado
.- Añadir o eliminar contenedor
- Embalar envío
- Eliminar envío
- Desembalar envío
- Eliminar línea
- Cambiar otros atributos
- 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 entreIntegración de nivel de envío
eIntegració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
- Escasez de inventario
- De forma predeterminada se proporcionan los siguientes servicios de impresión:
- El servicio
StorePackSlip_173utiliza plantillasStorePackSlip_173_multiApi.xsl.sampleyStorePackSlip_173_output.xsl.samplepara imprimir listas de embalaje. - El servicio
StoreContainerLabel_94utiliza las plantillasStoreContainerLabel_94_input.xsl.sampleyStoreContainerLabel_94_output.xsl.samplepara imprimir las etiquetas de envío. - El servicio
StoreLabelReprint_94utiliza las plantillasStoreLabelReprint_94_input.xsl.sampleyStoreLabelReprint_94_output.xsl.samplepara 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.samplede los nombres de archivo, y personalizarlos según sea necesario. - El servicio
- 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
Itempara 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 esYCD_Translate_bar code_InboundShipment.Order: Servicio externo. El origen de validación de código de barras esYCD_Translate_bar code_OrderNo.
Para obtener más información sobre las API, consulte IBM® Sterling Order Management System: Javadoc™.