© 2024 Napse. Todos los derechos reservados.

REVISIONES


FechaVersiónDescripciónAutorJira

 

1.0Creación del documentoN/A

 

1.1Se actualiza json del request de un pedido N/A

 

1.2Se agregan notas sobre el relevamiento para el armado del workflowN/A


CONTENIDO


Alcance

 Modelos PAE - SPOT TO GO  -  DEMO 7

  • 7.5.0 para PAE


Entorno instalado por SAC

v7.5.0

API   "version": "7.5.0-beta.0",
        "build": "18.08.2023.14.10.21",
        "jenkins": "44",

BMT: Nombre:bridgeVersión:7.5.0-SNAPSHOTNúmero de compilación:53Fecha del WAR:23/08/2023 - 07:15:23

      --------------------------------

STSPAEBMC 10.4.105.53
Bridge:
API: https://10.4.105.53:8081/

CORE: https://10.4.105.53:8082/bridge-server-rest
MANAGER: https://10.4.105.53:8443/login/auth (suser / suser123)

Base: paebmc (stsmongodb 10.4.117.55)

Usuario: paebmc            
Clave: Nosotros123


STSPAEBMT 10.4.105.54
Bridge:
API: https://10.4.105.54:8081/
CORE: https://10.4.105.54:8082/bridge-server-rest
MANAGER: https://10.4.105.54:8443/login/auth (suser / suser123)

Base: paebmt (stsmongodb 10.4.117.55)
usuario: paebmt
clave: Nosotros123

Código: 100
Nombre de la tienda: SPOT TO GO


Requerimiento

  • Configuración de lab con un workflow de referencia
  • Workflow definido con EduardoS
  • Scripts 


Doc de referencia 


Ayuda para el relevamiento 

Para la definición del workflow 

  • Los pedidos vendrán CON o SIN PAGOS asociados
    • CON PAGOS: surtido en POS genera una NC automática
    • SIN PAGOS: surtido parcial facturando solo lo que se surte del pedido 
  • Los pedidos pueden ser surtidos: PARCIAL o solo TOTAL
    • PARCIAL: solo en POS
  • Los pedidos pueden tener un único flujo o se requiere de estados diferentes según el tipo de entrega? (delivery o pickup en tienda) 
  • Se requiere que los pedidos generen reserva de los items?
  • Con que servidor de factura electrónica se van a validar las ventas?
  • Se requiere que ante cancelación de pedidos ya facturados se genere una Nota de crédito?
  • Cuales son los posibles estados que soporta la integración (con el ecommerce)?

Se adjunta un workflow a modo de referencia 

Consideraciones para envío de request

Envío del request


   "externalNumber":"SPOT_1002",
   "creationDate":"2023-08-29T10:33:34.280Z",
   "channelCode":"SPOT",
   "currencyCode":"ARS",
   "manualDiscountAmount":0,
   "netAmount":1800.00,
   "orderTypeCode":"web",
   "isPaid":true,
   "party":{
      "code":"99705069",
      "firstName":"Susana",
      "lastName":"Perez",
      "email":"contacto@gmail.com",
      "typeCode":"Person",
      "identificationType":1,
      "identifier":"99705069",
      "partyContactMethods":[
         {
            "name":"Facturacion",
            "address":{
               "firstLine":"Av. La Rioja 882",
               "countryCode":"ARG",
               "cityCode":"CRR_0027",
               "stateCode":"BSAS"
            },
            "emailAddress":"[email protected]",
            "telephone":{
               "telephoneNumber":"011 4990900"
            },
            "principalForDelivery":true,
            "principalForBilling":true
         }
      ]
   },
   "detail":[
      {
         "itemCode":"Doritos",
         "description":"Doritos",
         "storeCode":"100",
         "locationCode":"DEP1",
         "unitPrice":600.00,
         "orderedQty":2,
         "deliveryOrPickup":"pickup",
         "pickupLocationCode":"100",
         "deliveryCompany":"",
         "packageId":"0",
         "partyContactMethodName":"Facturacion",
         "pickupInformation":"Info: Cliente retira por tienda."
      },
      {
         "itemCode":"Coca Cola",
         "description":"Coca Cola",
         "storeCode":"100",        
         "unitPrice":600.00,
         "locationCode":"DEP1",
         "orderedQty":1,
         "deliveryOrPickup":"pickup",
         "deliveryCompany":"",
         "packageId":"0",
         "pickupLocationCode":"100",
         "partyContactMethodName":"Facturacion",
         "pickupInformation":"Info: Cliente retira por tienda."
               }
   ],
    "payments": [
        {
            "tender""Peso",
            "amount"1800.0
        }
    ]
    
}


Validaciones sobre el request que hace API

  • No se puede repetir el nro de pedido externo para el mismo canal (externalNumber)
  • ChannelCode: “SPOT”
  • Se puede enviar un cliente existente o un nuevo cliente
  • Se puede enviar con o sin pagos
  • En la facturación del pedido no se aplica PROMO 
  • A nivel item:
    • storeCode, pickupLocationCode: “100”
      • todos los items tienen que tener misma tienda y punto de retiro (no hay split)
    • los precios enviados son los que se utilizarán para facturar
    • si se cambian items por otros, tomará el precio de lista de la tienda/canal
    • "deliveryOrPickup":"pickup"  (retiro entienda) 
    • "deliveryOrPickup":"delivery"  (envío)
      • para esto tiene que ser informado el campo "deliveryCompany": "SPOT"
  • API valida
    • que el monto total del pedido ("netAmount")
      • se igual a la suma de los items ("unitPrice" x "orderedQty") 
      • sea igual a la suma de todos los payments
      • si hay un descuento a la transacción se resta del netAmount (campo "manualDiscountAmount")

Datos de laboratorio 

  • Channel: SPOT



  • Operador logístico: SPOT



  • Tienda de retiro:100


  • Workflow: SPOT 
    • Definido por EduardoS



DescripciónEstado inicialEstado finalIsInitialIsFinalisAutomaticpriorityAccionesnombre del botónconfirmStep

Componente que ejecuta

(executors)

1

Creado

(open)

Confirmado

(confirmed) 

truefalsefalse1
Confirmar

2

Creado

(open) 

Cancelado

(cancelled)

falsetruefalse2
Cancelar pedidotrue
3Cambiar el nombre del estado negotiation de "En negociación" por "Pendiente de elaboración"

Confirmado

(confirmed)

Pendiente de elaboración

(negotiation)

falsefalsefalse1
A elaborar

4Cambiar el nombre del estado "inproc" de "Surtiendo" a  "En elaboración"

Pendiente de elaboración

(negotiation)

En elaboración

(inproc)

falsefalsefalse1
Elaborando

5

En elaboración 

(inproc)

Listo para surtir

(readyToPick)

falsefalsefalse1
Listo para surtir

6

Confirmado

(confirmed)

Listo para surtir

(readyToPick)

falsefalsefalse2
Listo para surtir

7

Confirmado

(confirmed)

Cancelado

(cancelled) 

falsetruefalse3
Cancelar pedidotrue
8

Listo para surtir

(readyToPick)

Facturado

(invoiced)

falsefalsefalse1



9

Listo para surtir

(readyToPick)

Anulado

(voided)


falsetruefalse2
Anular pedidotrue
10

Facturado

(invoiced) 

Listo para retirar

(readyToPickup)

falsefalsetrue1



11

Facturado 

(invoiced) 

Anulado

(voided)

falsetruefalse2NC?Anular pedidotrue
12

Listo para retirar

(readyToPickup)

Entregado

(transit)

falsetruefalse1
Entregar pedido


Workflow generado con los scripts adjuntos


Scripts

CHANNEL
    "_id" : ObjectId("64e7544afedef010f0790a47"),
    "code" : "SPOT",
    "name" : "SPOT TO GO",
    

Channel.json


WORKFLOW

//Worflow SPOT TO GO
db.getCollection("OrderWorkflow").insert({
    "_id": ObjectId("64e7544afedef010f0790a47"),
    "code": "spotToGo",
    "name": "SPOT",
    "orderType": ObjectId("5f105c882a3a154318888731"),
    "disabled": false,
    "channel":
})

Script update PAE SPOT TO GO.js



Configuraciones por puerto seguro

  • https para BCORE REST

  • API

Para la instalación del POS



DEMO 7

  • Workflow


  • Script para el armado de este workflow

script ONLINE_POS.rar


  • Entidades creadas en Demo 7
    • Workflow
  •  
    • CANAL: online2

  • Punto de retiro

  • Ítems:




  • Request de ejemplo enviado a Demo 7


{
   "externalNumber":"ONLINE_05",
   "creationDate":"2023-08-30T10:33:34.280Z",
   "channelCode":"online2",
   "currencyCode":"ARS",
   "manualDiscountAmount":0,
   "netAmount":56.00,
   "orderTypeCode":"web",
   "isPaid":true,
   "party":{
      "code":"25705069",
      "firstName":"Felipe",
      "lastName":"Rodriguez",
      "email":"contacto2@gmail.com",
      "typeCode":"Person",
      "identificationType":1,
      "identifier":"25705069",
      "partyContactMethods":[
         {
            "name":"Facturacion",
            "address":{
               "firstLine":"Av. Perú 325",
               "countryCode":"ARG",
               "cityCode":"CRR_0027",
               "stateCode":"BSAS"
            },
            "emailAddress":"[email protected]",
            "telephone":{
               "telephoneNumber":"011 4990900"
            },
            "principalForDelivery":true,
            "principalForBilling":true
         }
      ]
   },
   "detail":[
      {
         "itemCode":"111",
         "description":"Combo vitamina c textura ligera",
         "storeCode":"10",
         "locationCode":"DEP1",
         "unitPrice":12.00,
         "orderedQty":3,
         "deliveryOrPickup":"pickup",
         "pickupLocationCode":"10",
         "deliveryCompany":"",
         "packageId":"0",
         "partyContactMethodName":"Facturacion",
         "pickupInformation":"Info: Cliente retira por tienda."
      },
      {
         "itemCode":"110",
         "description":"Topron NIFUROXAZIDA",
         "storeCode":"10",        
         "unitPrice":10.00,
         "locationCode":"DEP1",
         "orderedQty":2,
         "deliveryOrPickup":"pickup",
         "deliveryCompany":"",
         "packageId":"0",
         "pickupLocationCode":"10",
         "partyContactMethodName":"Facturacion",
         "pickupInformation":"Info: Cliente retira por tienda."
               }
   ],
    "payments": [
        {
            "tender""Peso",
            "amount"56.0
        }
    ]
    
}




  • Sem rótulos