Surtido en POS de un pedido (especificación funcional)
© 2024 Napse. Todos los derechos reservados.
Contenido
Nota Importante
Este manual contiene enlaces a documentos internos que refieren a contenidos específicos de uso restringido. Dichos contenidos han sido limitados y, por lo tanto, no están disponibles para el cliente final. En caso de necesitar más detalles o aclaraciones sobre los puntos referidos, se recomienda contactar con el equipo interno correspondiente.
Alcance
- v7.5
- Limitaciones del Sistema en Modo Offline: Este proceso no puede llevarse a cabo cuando el Punto de Venta (POS) se encuentra en modo offline en la tienda, ya que en esas circunstancias se utilizan los servicios REST de BCORE para las operaciones del POS.
- Requisitos para el Surtido de Pedidos en POS: Solo se podrán surtir en el POS aquellos pedidos que cumplan con el modelo de ORDER, es decir, aquellos que hayan sido enviados a través del servicio API
order/create
hacia BMC, y que tengan asignado el código de la tienda de surtido a nivel de ítem.La información de los pedidos se debe adecuar a lo especificado para el servicio BRIDGE API - REST - Importación de Pedidos (publicado en el espacio NAPSE)- Conformidad de la Información de Pedidos: La información de los pedidos debe estar alineada con las especificaciones del servicio BRIDGE API - REST para la Importación de Pedidos.
Diagrama de actividades
Funcionalidades
Precondición de configuración
- Debido a que desde el POS se requiere invocar a una operación de API (cambio de estado) la siguiente property debería setearse con la IP, ya no se podría dejar como LOCALHOST
Funcionalidad/ Configuración | Detalles de la funcionalidad / Configuración | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Funcionallidad_POS/BCORE: pantalla de listado de pedidos con configuración por terminal | a) Nuevo botón desde el menú de Operaciones
b) Nueva pantalla del "Listado de pedidos" Se requiere implementar una nueva pantalla para listar los pedidos (similar a la de CONSULTAR PRESUPUESTOS)
Mockup
Nuevo rol para la operación
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | Funcionalidad_POS/BCORE: consulta del servicio de BCORE del listado de pedidos | Consulta de Listado de Pedidos en el POS Para obtener el listado de pedidos en el POS, se debe realizar una consulta a través del servicio BCORE REST. Esta consulta se basa en el modelo de datos de la tabla "Order" y utiliza los siguientes parámetros de filtrado:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | Funcionalidad_POS/BCORE: consulta del servicio para obtener el detalle de un pedido | Servicio consulta de un pedido (tablas Order, OrderItem, OrderPayment, etc)
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
4 | Funcionalidad_POS/BCORE: flujo "seleccionar pedido" nuevo popUp de detalle del pedido | Flujo "SELECCIONAR PEDIDO" Al seleccionar un pedido con doble clic en el listado de pedidos, se obtendrán los datos del pedido a través del servicio BCORE. El detalle del pedido se mostrará en un pop-up o una nueva pantalla. Esta interfaz contará con botones de acción que dependerán del estado del pedido, así como secciones que contienen los datos del pedido, del cliente y de los artículos. Botones de Acción:
Los datos que se informarán en cada sección serán: 1) Encabezado: datos del pedido
2) Encabezado: datos del cliente
3) Lista de artículos - LABEL DE PANTALLA "ARTICULOS"
4) Información Adicional
5) Botones de acción Estos botones de acción van a depender del estado del pedido (evaluar como BCORE puede obtener esto del workflow)
MOCKUP - pantalla en modo ver pedido | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
5 | Funcionalidad_POS/BCORE: Flujo "Confirmar pedido", actualización de estado de un pedido. | Cuando desde el POS se selecciona una acción del popUp como CONFIRMAR, SURTIR PEDIDO, BCORE debe actualizar el estado del mismo.
Flujo "CONFIRMAR PEDIDO"
Según el workflow definido para estos pedidos, API al cambiar a CONFIRMADO tiene el pasaje automático a LISTO PARA SURTIR. Entonces el pedido una vez que se CONFIRMA, pasa a LISTO PARA SURTIR lo cual habilita el SURTIDO DEL PEDIDO desde el POS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
6 | Funcionalidad_POS/BCORE: Flujo "Cancelar pedido", actualización de estado de un pedido. | Cuando desde el POS se selecciona una acción del popUp como CONFIRMAR, CANCELAR PEDIDO, BCORE debe actualizar el estado del mismo.
Flujo "CANCELAR PEDIDO"
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
7 | Funcionalidad_POS/BCORE: Pantalla de detalle del pedido con botones de acción cuando está Listo para surtir | MOCKUP de pantalla - Pedido listo para surtir Botones de acción:
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
8 | Funcionalidad_POS/BCORE: pantalla de surtido de pedido. Flujo "Surtir pedido" |
Flujo "SURTIR PEDIDO" – cuando el estado del pedido es LISTO PARA SURTIR ("ReadyToPick") definido por workflow
Datos a mostrar en pantalla (mismos que de la acción ver, con posibilidad de marcar con un check el total de unidades o con los botones de o para ir indicando las cantidades surtidas del ítem)
MOCKUP DE PANTALLA de surtido de pedido | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
9 | Funcionalidad_BCORE: Flujo "bloquear pedido/desbloquear pedido" | Flujo "BLOQUEAR PEDIDO"
Ejemplo de un pedido bloqueado por un usuario o porque se encuentra facturado y se está procesando su tlog Flujo "DESBLOQUEAR PEDIDO"
Una vez procesado el tlog, se desbloquea y ya no queda visible el icono del candado NOTA: de requerir el desbloqueo forzado, se podrá utilizar el menú de Bridge Manager tienda Monitoreo/Adm de transacciones En el POS, se muestra con el candado y se concatena el nro de pedido externo - nro de pedido interno, con el usuario que lo tiene bloequeado, tienda, terminal y fecha
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
10 | Funcionalidad_BCORE: escuchar evento de scanner en surtido de pedidos. En la pantalla popUp de surtir pedido | EVENTO SCANNER
Ejemplo de dos ítems con código de barras a) Si se ingresa un código de barras de un artículo que no está en la orden original, al momento de surtir se informará: "No se corresponde con un artículo de la orden" b) Si se ingresa un código de barras de un item que no existe en el maestro, se informará: "El artículo no existe" c) Si se ingresa un código de barras de un ítem existente, se tomará como cantidad 1 del ítem ingresado. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
11 | Funcionalidad_BCORE: validar el surtido total de ítems del pedido original | VALIDACION TOTAL ITEMS SURTIDOS
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
12 | Funcionalidad_POS/BCORE: recuperar lista de artículos del pedido surtido y agregarlos a la venta. Flujo transformar pedido en venta | Flujo "TRANSFORMAR PEDIDO EN VENTA"
Ticket ejemplo Flujo alternativo RESTRINGIR CAMBIO DE CLIENTE
Restricciones con configuración "Admite la edición de items" = NO a) No se puede agregar artículos que no estaban en el pedido b) No se puede anular artículos del pedido c) Descuento manual a un articulo d) Descuento manual al total de la transacción e) Anular descuentos al total del pedido f) Anular descuento de un artículo del pedido | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
13 | Funcionalidad_POS: flujo cancelar surtido | Flujo alternativo - "CANCELAR SURTIDO" con botón VOLVER en popUp de surtido
Flujo alternativo - "CANCELAR SURTIDO" con botón "X"de la pantalla de venta
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
14 | Funcionalidad_POS/BCORE: pago de la venta que factura un pedido |
Se crea el medio de pago delivery (tipo cash, sin solicitud de datos adicionales) Se debe evaluar si creamos uno por cada canal con su propio nombre (Rappi, UberEats y PedidosYA) FINALIZAR
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
15 | Funcionalidad_POS/BCORE: flujo "Editar pedido" (sólo si no hay pagos) | El sistema debe tener configurado este parámetro = SI Flujo alternativo - "SURTIDO PARCIAL DEL PEDIDO"
Ejemplo del surtido parcial: Flujo alternativo - "SURTIDO PARCIAL DEL PEDIDO CON DESCUENTOS" Este escenario se da solo si en el pedido hay descuentos al total de la transacción o a un ítem surtido parcialmente y hay surtido parcial.
En el ejemplo, el articulo SPRITE354 tiene un descuento al ítem y se ingresó solo una unidad de las 2 pedidas. Al presionar el botón CONTINUAR, se informará con un popUp para que anule todos o agregue todas las cantidades de ese articulo.
Flujo alternativo - "EDITAR PEDIDO" Este escenario admitiría surtir una cantidad menor a la del pedido original previo a pasar a la venta
En la pantalla de surtido no se surte uno de ellos Al presionar Continuar, pasa a la pantalla de ventas y se muestra ese artículo como anulado Flujo alternativo - "AGREGAR/ANULAR ARTICULO AL PEDIDO"
Al editar un pedido se podrá agregar otros artículos También se podrá anular o agregar descuentos
No hay restricción de envío a PROMO (de no aplicar deberían restringirse por configuración de la promo) REGISTRO EN TLOG
ITEMS con magnitud
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
16 | Funcionalidad_POS/BCORE: agregar información del pedido al TLOG de la venta (proveniente de una order/pedido) |
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
17 | Funcionalidad_API: procesar TLOG de facturación de orden | TLOG de venta finalizada (cancelFlag=false)
Ejemplo de una venta facturada en forma automática donde en Order se asocia la misma
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
18 | Funcionalidad_API: procesar TLOG de cancelación de orden | TLOG de venta cancelada
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
19 | Reporte "Detalle de venta por items" | En el reporte "Detalle de venta por ítems"
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
20 | Funcionalidad_API: procesar TLOG de facturación de orden / auditoria del pedido con pagos, cuando el pedido recibido no tenia pagos asociados y se le agrega el pago dummy | REGISTRO EN TLOG - distribución y actualización de datos (pago)
Ejemplos de la implementación | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
21 | Funcionalidad_API: procesar TLOG de facturación de orden / auditoria de la edición del pedido artículos | REGISTRO EN TLOG - distribución y actualización de datos (ítems)
-------------------
Datos a actualizar del ítem order: order._id,
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
22 | Funcionalidad_API: agregar al request del pedido la posibilidad de enviar el partyRole para el cliente si no se envía, asume el que se haya definido como rol por defecto (por configuración del sistema) | Inclusión del partyRole en el request de pedido
a) Incluir en request de un pedido un campo asociado al party que permita recibir su partyRole
"partyRoleAssignment": [{ "partyRole": "EMPLE"} ], ---------- se podría recibir una lista con los códigos del tipo de cliente o partyRole.code
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
23 | Funcionalidad_API/POS: agregar la presentación o código de barras en request y pantalla del pedido | Incluir la presentación en el request del pedido y en el surtido Manejo de código de barras o presentaciones
El popUp del pedido y en la pantalla de ventas.
Ejemplo de como se ve en la consulta de artículos y luego como se agrega a la venta cuando tiene código de barras --------------------------
|
Alcance edición de pedidos con pagos asociados.
Funcionalidades
Funcionalidad / Configuración | Descripción | |||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | Reservas | Incorporación de Reservas del Pedido en el Proceso de Venta Durante el proceso de recuperación de un pedido en el POS, a partir de la acción del workflow de reserva, se debe incorporar el código de reserva ( Además, es fundamental considerar la cancelación automática de las reservas de aquellos ítems que no sean surtidos. Esta cancelación debe registrarse en el TLOG, específicamente en la etiqueta El API se encarga de realizar las reservas a través de las acciones del workflow, y el POS debe levantar el pedido con las reservas ya asignadas. Al surtir el pedido, el código de reserva debe ser agregado al ticket de venta. Escenarios a Considerar:
Se agrega un ejemplo de una venta hecha en el POS con reserva y anulación | ||||||||||||||||||||||||
2 | Pago del pedido | Asociación del Pago Original al Ticket al Facturar un Pedido Al momento de facturar un pedido, es necesario agregar el pago original al ticket de venta. En la pantalla de VENTA, se debe utilizar el botón "FINALIZAR" para evitar la selección de un nuevo medio de pago, asegurando que se asocie el medio de pago original del pedido. La implementación de esta funcionalidad puede apoyarse en la operación "billOperation" de BCORE, que permite recibir y procesar los datos del pago asociados a la orden. Se detallan los datos que se hayan recibido del pago en el pedido NOTA: para determinar si el pedido tiene un pago asociado, se evaluará con lo registrado en orderPayment. Se deberá validar que el medio de pago no sea el definido por configuración:
| ||||||||||||||||||||||||
3 | Escenarios factura y NC con surtido parcial y sustitutos | Generación de Nota de Crédito (NC) para Ítems No Surtidos Para los ítems que no hayan sido surtidos, se debe generar una Nota de Crédito (NC) por el valor correspondiente a esos ítems, según los escenarios especificados. Es crucial que el monto de la NC nunca supere el valor total del pedido original. Nota: El monto del pedido original debe extraerse del campo Escenarios de Surtido:
Mensaje de Validación al Finalizar: Si el total de la venta supera el monto del pedido original, el sistema debe mostrar un mensaje indicando: "El monto de la venta supera el monto del pedido original. Debe aplicar un descuento o modificar algún artículo." Ejemplo de Pedido Original:
Consideraciones/definiciones
-----------
{ "_id" : { "$oid" : "645915742145be0c662d07f4" }, "key" : "store.orderPartialPickupAutomaticNCTenderCode", "name" : "Sutido Parcial Ordenes: Medio de pago para la nota de crédito automática", "description" : "Sutido Parcial Ordenes: Medio de pago para la nota de crédito automática", "newValue" : "", "propertyType" : { "$oid" : "5ea556535604c8593c60273e" }, "propertyCategory" : { "$oid" : "608c56da82cb4435461ca125" }, "propertyModule" : { "$oid" : "5ea556535604c8593c60273d" }, "version" : 0 }, PropertyValue { "_id" : { "$oid" : "645cd75c2145be0c662d0814" }, "systemProperty" : { "$oid" : "645915742145be0c662d07f4" }, "newValue" : "NCC", "version" : 0 },
{ "_id" : { "$oid" : "645915852145be0c662d07f5" }, "key" : "store.orderPartialPickupAutomaticNCItemCode", "name" : "Sutido Parcial Ordenes: Item genérico para la nota de crédito automática", "description" : "Sutido Parcial Ordenes: Item genérico para la nota de crédito automática", "newValue" : "", "propertyType" : { "$oid" : "5ea556535604c8593c60273e" }, "propertyCategory" : { "$oid" : "608c56da82cb4435461ca125" }, "propertyModule" : { "$oid" : "5ea556535604c8593c60273d" }, "version" : 0 }, PropertyValue { "_id" : { "$oid" : "645cd76d2145be0c662d0815" }, "systemProperty" : { "$oid" : "645915852145be0c662d07f5" }, "newValue" : "ADJFINAN", "version" : 0 },
{ "_id" : { "$oid" : "645918122145be0c662d07f8" }, "ref" : 42, "code" : "ADJFINANCE", "name" : "Ajuste Financiero", "disabled" : false, "promoCatalog" : false, "version" : 0 } | ||||||||||||||||||||||||
4 | Configuración POS - configuración de validación del monto total del pedido | Validación del Monto Total del Pedido en el POS Se ha configurado una validación en el POS que asegura que el monto total de la factura no exceda el monto original del pedido al momento de facturarlo.
Funcionamiento: a) Sin pagos asociados: Si esta validación está habilitada (true), el sistema genera una alerta al finalizar o pagar el pedido si el monto total de la factura supera el monto del pedido original. b) Con pagos asociados: En escenarios con pagos asociados, la validación se aplica de forma obligatoria, asegurando que el monto total de la factura no exceda el monto del pedido original. | ||||||||||||||||||||||||
5 | Funcionalidad POS - datos del pedido en pantalla de ventas |
| ||||||||||||||||||||||||
6 | Actualizar orden con NC |
| ||||||||||||||||||||||||
7 | Funcionalidad_POS/CORE: devolución de ventas de pedidos con surtido parcial (con pagos) | v1.9 Una venta de un surtido parcial de un pedido con pagos puede tener incluido el ítem AJUSTE (ítem configurado en la property: "Sutido Parcial Ordenes: Ítem genérico para la nota de crédito automática")
REQUERIMIENTO
|
ANEXO - Datos de prueba: artículos
Código | Descripción | Categoría | Marca | Tipo de Artículo | Precio de Venta | Proveedor |
---|---|---|---|---|---|---|
CEPITA200 | Jugo Cepita Del Valle Naranja 200 Ml | BEBIDAS SIN ALCOHOL->JUGOS | CEPITA | Normal | $110,00 | FEM S.A. |
MANIKING120 | Maní pelado King 120 g | SNACKS | KING | Normal | $215,00 | FEM S.A. |
LAYS94 | Papas Lays 94gramos | SNACKS | LAYS | Normal | $495,00 | FEM S.A. |
SPRITE354 | Lata de Sprite 354ml | Bebidas | COCA | Normal | $210,00 | FEM S.A. |
COCA354 | Lata Coca Cola 354ml sin azúcar | Bebidas | COCA | Normal | $210,00 | FEM S.A. |
ANEXO - Workflow
Estado Inicial | Estado Final | Acciones API en el workflow | Acción Manual/auto | Acciones POS | ||
---|---|---|---|---|---|---|
1 | CREADO | CONFIRMADO | auditar cambio de estado (Rabbit) | manual | Opción: CONFIRMAR PEDIDO/CANCELAR PEDIDO/VOLVER. Interviene el operador (apretando botón CONFIRMAR PEDIDO) vuelve a la pantalla del listado de PEDIDOS | llamada StatusChange (API Tienda) directo BCORE API replicaría la order a BMC |
2 | CREADO | CANCELADO | auditar cambio de estado (Rabbit) | manual | Opción: CONFIRMAR PEDIDO/CANCELAR PEDIDO/VOLVER. Interviene el operador (apretando botón CANCELAR PEDIDO) | llamada StatusChange (API Tienda) directo BCORE |
3 | CONFIRMADO | LISTO PARA SURTIR | auto | |||
4 | LISTO PARA SURTIR | manual | Opción del popUp: SURTIR PEDIDO/CANCELAR PEDIDO/VOLVER Interviene operador (apretando botón SURTIR PEDIDO) pasa a popUp de surtido No cambia de estado |
| ||
5 | LISTO PARA SURTIR | manual | popUp de surtido con opciones: CONTINUAR/VOLVER SIN GUARDAR Interviene el operador (apretando CONTINUAR pasa a la pantalla de ventas, transforma la order en SALE) apretando VOLVER SIN GUARDAR se pierde el surtido realizado, se desbloquea la orden y vuelve a la pantalla del listado de pedidos (sin cambio alguno) |
| ||
6 | LISTO PARA SURTIR | manual | en pantalla de ventas, agrego ítems, anulo ítems y pasa a la pantalla de PAGOS |
| ||
7 | LISTO PARA SURTIR | FACTURADO | automático | proceso TLOG | Por distribución del TLOG
| |
8 | LISTO PARA SURTIR | CANCELADO | N/A |
Request de referencia
Cliente persona
Cliente empresa
Scripts utilizados para el channel, workflow y workflowStep
Ambos se agregan a BMT y BMC del entorno 7.5 QA
ANEXO Modelo de datos
Para mayor referencia de los conceptos del modelo de order, ver: https://share.linx.com.br/x/w3xnFQ (.pptx)
Order
Scripts para DIARCO
OrderWorflow para Diarco
Publicación de un artículo
Creación y surtido de un pedido