Skip to content

8. Bolsa de Pedidos

Se entiende por pedido un documento que puede contener una lista de items

Este modulo es el encargado de gestionar los pedidos del sistema.

Método Endpoint Descripción
GET /api/orders Lista de pedidos registrados
POST /api/orders Crear un pedido
GET /api/orders/{orderId} Detalles de pedido
PATCH /api/orders/{orderId} Modificación de datos de un pedido
DELETE /api/orders/{orderId} Eliminación de un pedido
PATCH /api/orders/{orderId}/status Cambio de estado de pedido
GET /api/search-order/{code} Detalle de pedido (Widget)

8.1 Parámetros Pedidos

El campo code debe de ser único en el sistema."

Nombre Modo Tipo Descripción
code Required String Admite letras, números, guiones y guiones bajos pero no espacios
description Optional String Descripción del pedido
client_id Optional si existe: client_name,client_address o client_lat,client_lng Numeric El id del cliente registrado en el maestro de clientes.
client_name Optional String Nombre de cliente final
client_document Optional String Documento del cliente final
client_email Optional String - Email Email de cliente final donde recibirá notificaciones
client_phone Optional Numeric Número de Telefono cliente final
time_window Optional Array Ventana Horaria ejm: 08:30-12:00
service_time Optional Numeric Numero de minutos de tiempo de servicio
notes Optional String Notas para el conductor
price Optional Numeric Precio total del pedido
weight Optional Numeric Peso total del pedido
volume Optional Numeric Volumen total del pedido
location_id Optional Numeric Código de ubicación existente en maestro.
client_address Optional String Dirección del cliente se recomienda sea un formato legible tipo "dirección, dristrito, provincia, país"
client_lat Optional Numeric Latitud
client_lng Optional Numeric Longitud
state Required String Longitud
user_responsible_id Optional Numeric ID de usuario responsable
location_start_id Optional Numeric Id de ubicación.
start_address Optional String Dirección de inicio
start_lat Optional Numeric Coordenada latitud de inicio
start_lng Optional Numeric Coordenada longitud de inicio
extra_data Optional Array Propiedades personalizadas
is_overtime_notify Required Integer Notificacion por sobre tiempo
tags_array Optional Array Lista de etiquetas informativas de orden
custom_properties Optional Object Propiedades custom
items Optional Array Lista de items pertenecientes a la orden
items.*.code Required String Admite letras, números, guiones y guiones bajos pero no espacios
items.*.name Required String Nombre de item
items.*.brand Optional String Marca de item
items.*.weight Optional Numeric Peso de item
items.*.volume Optional Numeric Volumen de item
items.*.price Optional Numeric Precio de item
items.*.measurement_unit_id Required Numeric Id de unidades de medida existentes
items.*.quantity Required Numeric Cantidad de items

8.4 Ejemplo de Registro

Ejemplo de registro de orden básico, en este ejemplo registraremos una orden simple.

La dirección de destino se obtendrá del registro interno del sistema es decir, debe de existir una ubicación registrada relacionada con el cliente que se le va a enviar, en caso contrario

POST /api/orders

{
  "code": "ORD001",
  "client_code": "CL1253"
}

Respuesta: HTTP 201 OK

{
    "code": "n003",
    "description": null,
    "client_id": 13,
    "client_name": "Tarazona Norma",
    "client_document": "12344555",
    "client_email": "norma@gmail.com",
    "client_phone": "21548546",
    "time_window": null,
    "service_time": 18,
    "notes": null,
    "price": null,
    "weight": null,
    "volume": null,
    "location_id": null,
    "client_address": "Naranjal, Ecuador",
    "client_lat": "-2.6689787",
    "client_lng": "-79.6221368",
    "state": "pending",
    "user_responsible_id": 3,
    "location_start_id": null,
    "start_address": null,
    "start_lat": null,
    "start_lng": null,
    "extra_data": null,
    "is_overtime_notify": 0,
    "items": [],
    "tags_array": [],
    "custom_properties": {}
}

Ejemplo Full

POST /api/orders

{
  "code": "BP001",
    "description": null,
    "client_id": 51,
    "client_name": "WAYKI EN GOLOSINAS S.A.C.",
    "client_document": null,
    "client_email": "wayki@gmail.com",
    "client_phone": "1564564845",
    "time_window": null,
    "service_time": "20",
    "notes": null,
    "price": 0,
    "weight": 0,
    "volume": 0,
    "location_id": null,
    "client_address": "Piura Cercado, Piura 20001, Perú",
    "client_lat": -5.1972268,
    "client_lng": -80.62852900000001,
    "state": "pending",
    "user_responsible_id": 6,
    "location_start_id": null,
    "start_address": null,
    "start_lat": null,
    "start_lng": null,
    "extra_data": null,
    "is_overtime_notify": 0,
    "items": [
        {
            "code": "01656",
            "name": "Item 1",
            "brand": "Items",
            "weight": "20",
            "volume": "22",
            "measurement_unit_id": 1,
            "quantity": "6"
        }
    ],
    "tags_array": [
        "bolsa urgente",
        "varios pedidos"
    ],
    "custom_properties": {
        "custom_36": "1",
        "custom_1": "Transferencia",
        "custom_2": "30",
        "custom_3": "BCP",
        "custom_4": "250",
        "custom_12": "s3://box/aSAr2ULJtFDqEHPjB2dSYjrrDo6nFamYFi9lfMeS.png",
        "custom_18": "s3://box/MUUevKPlq5pRA5uVLxgguXkINQBUXkfXn36hj3B2.png",
        "custom_22": "2021-12-23T05:00:00.000Z",
        "custom_26": "31",
        "custom_27": "Buen estado",
        "custom_28": "s3://box/dYmjxXRpX1XdqUKKcxOuKX93r5EEUizujwYnoVHb.png",
        "custom_29": "2",
        "custom_30": "s3://box/QU5vCbudNTyGvWmhRG9bMBQ85CqLrBZ9yaBHtZTs.png",
        "custom_31": "26",
        "custom_32": "s3://box/o5aJ997LXiP1I4jNqEEfgUzuiOV5UR1UnsRZsLtB.png",
        "custom_33": "5",
        "custom_37": "s3://box/QnK0ATEcFHUkbYuRPeWoZykDzx0W5IbUPFGSgGNV.png"
    }