Crear una orden
POST {{url}}/moovin-retail/api/v1/order/create
Se cuenta con la posibilidad de poder crear una orden asociada a un cliente.
Observaciones:
- Se debe conocer el número de perfil al cual se debe asociar la orden, el sistema procederá a realizar un análisis del perfil.
- Se debe conocer de antemano la sede de dónde la orden va a ser despachada al cliente.
Estados
- SUCCESS: se ejecutó de forma correcta.
- NOEXISTSCEDI: el cedi enviado no existe.
- LONGTEXTPRODUCT: en caso de que el nombre o la descripción del producto supera los 256 caracteres.
- NOEXISTSCURRENCY: no existe le tipo de moneda que se solicita.
- NOEXISTSPAYMENTMETHODTYPE: se solicita un método de pago no permitido.
- NOEXISTSTASKTYPE: se envía un tipo de tarea no permitida.
- CEDILOCATIONNOTEXIST: alguna de las CEDIs con las que se esta creando la orden ya no existe.
- ERRORPAYMENTNOTAVAILABLE: el perfil no esta habilitado para crear órdenes con cobros en el momento de entrega
Cobro contra entrega de la orden
Para configurar los cobros o cambio de dinero se tiene los siguientes parámetros:
currency
- colones
- dollars
method
- cash: cobro en efectivo
- creditCard: cobro en tarjeta
- collectMoneyExchange: cambio a recoger(se debe recoger en el primer punto).
amount
- monto a cobrar
Ejemplo del manejo de dinero
Escenarios de cobro
Crear una orden con cobro en efectivo
Se debe agregar a las orden en el parámetro lisPayment 2 elementos
cash: Indicando el monto a cobrar al cliente.
collectMoneyExchange: Indicado el monto de dinero que le debe entregar la cede al Moover para poder utilizar como cambio.
Observaciones que se debe considerar en el flujo: No se debe colocar el monto a retornar a la sede ya que se puede presentar los siguientes escenarios de forma dinámica que realizan la variación del monto:
Escenario #1
El cliente realiza una cancelación de monto exacto por lo que no se requiere que el Mover(Mensajero) deba recolectar cambio para poder realizar la entrega.
Escenario #2
El Moover(Mensajero) recolecta el monto indicado como dinero para vuelto(collectMoneyExchange) y la entrega se da de forma efectiva.
Por lo que el mensajero tendrá que retorna a la sede el monto de cash + collectMoneyExchange
Escenario #3
El Moover(Mensajero) recolecta el monto indicado como dinero para vuelto(collectMoneyExchange) y no se llega a dar la entrega de forma efectiva.
Posibles causas:
El cliente no es localizado
No cuenta con el dinero
Los productos enviados no son los deseados
En este caso el Moover debe retornar el monto collectMoneyExchange y los productos de la orden.
Escenario #4
El Moover(Mensajero) recolecta el monto indicado como dinero para vuelto(collectMoneyExchange) y se permite el cambio de método de pago.
Posibles causas:
No tiene dinero en ese momento.
Decide pagar con tarjeta de crédito.
En este caso el Moover debe retornar el monto collectMoneyExchange.
Nota: se debe considerar si el cliente permite el cambio de método de pago.
Una vez expuesto los escenarios anteriores y buscando poder aclarar los mismos nos apoyamos de un siguiente ejemplo.
El cliente realiza una compra por 18000 colones
Escenario | Cash | collectMoneyExchange | Monto a devolver | |
---|---|---|---|---|
Escenario #1 | 18000 | 18000 | ||
Escenario #2 Paga con 20000 | 18000 | 2000 | 20000 | |
Escenario #3 Paga con 20000 | 18000 | 2000 | 2000 | |
Escenario #4 Paga con 20000 | 18000 | 2000 | 2000 |
Crear una orden cobro con tarjeta
Se debe agregar a las orden en el parámetro lisPayment 1 elemento
creditCard: donde se indica el monto a cobrar por el cliente.
En este caso el Moover no debe regresar para entregar dinero ya que no existe dinero físico.
Request Body
{"name"=>"Javier Hernandez 1", "phone"=>"60500849", "locationDelivery"=>{"name"=>"Casa Javier 1 ", "address"=>"direccion a la casa ", "latitude"=>9.936372, "longitude"=>-84.156485}, "listPackage"=>[{"fkIdCEDILocation"=>1, "listProduct"=>[{"name"=>"Medicina 1", "quantity"=>4}, {"name"=>"Medicina 2", "quantity"=>2}, {"name"=>"Medicina 3", "quantity"=>1}]}], "listPayment"=>[{"amount"=>18000, "currency"=>"colones", "method"=>"cash", "description"=>"Cobrar factura "}, {"amount"=>2000, "currency"=>"colones", "method"=>"collectMoneyExchange", "description"=>"Vuelto de la factura "}], "listTask"=>[{"name"=>"Prueba tarea 1", "type"=>"do"}]}
RESPONSES
status: OK
{"status":"NOEXISTSCEDI","message":"Associating one with a CEDI that does not exist"}