Órdenes de compras API javascript
En esta sección está el detalle de la API javascript de órdenes de compras para hacer la integración con los servicios de creación y actualización proporcionados por la API de orden de compra, a traves del widget de video atención de Ocular Solution:
Crear o editar una orden de compra
Este metodo permite enviar los datos necesarios para generar una orden de compra, este recibe como parametro principal un objeto, el cual se describe en la siguiente sección.
ocularOrderTrack.setBuyOrder(params)
Parámetros
params
OBJECT[]
OBLIGATORIO
Mostrar propiedades
external_idSTRING OPCIONALIdentificador o código de la orden de compra.
Valores de ejemplo: 1015, ORDER-8454
itemsOBJECT[] OBLIGATORIOListado de los productos pertenecientes a la orden de compra.
Mostrar propiedades
external_idSTRING OPCIONALIdentificador o código de un producto en orden de compra.
Valores de ejemplo: 3105, SKU-845-G54
imageSTRING OPCIONALUrl de la imagen principal del producto.
Valores de ejemplo: https://domain.com/images/products/product/product_image.jpg
nameSTRING OBLIGATORIONombre del producto.
Valores de ejemplo: Crema facial
descriptionTEXT OPCIONALDescripción del producto.
Valores de ejemplo: Este es el detalle de la crema facial
quantityINTEGER OBLIGATORIOCantidad del producto en la orden de compra.
Valores de ejemplo: 1, 5
priceDECIMAL OBLIGATORIOPrecio del producto
Valores de ejemplo: 2990, 39000.00, 0.99
unit_priceBOOLEAN OPCIONALPrecio del producto que se envía corresponde al precio unitario o al precio total.
El precio se calcula de la siguiente forma:
true: precio = price * quantity
false: precio = price
Valores posibles: true, false.
DEFAULT false
currencySTRING OBLIGATORIOMoneda utilizada en la orden de compra.
Valores posibles: CLP, USD, EUR
include_taxBOOLEAN OPCIONALDefine si el precio del producto incluye el impuestos o no.
Valores posibles: true, false
DEFAULT true
discount_typeCHAR OPCIONALDefine si el descuento del producto es un porcentaje o un monto absoluto.
Valores posibles: percent amount
DEFAULT amount
discountDECIMAL OPCIONALDescuento aplicado al producto.
Valores de ejemplo: 1990.00 (amount) 5.00 (percent = 5%) 30.00 (percent = 30%) 25.50 (percent = 25.5%)
DEFAULT 0.00
variantsOBJECT[] OPCIONALVariantes del producto en la orden de compra.
DEFAULT []
Mostrar propiedades
nameSTRING OBLIGATORIONombre de la variante del producto.
Valores de ejemplo: Talla, Medidas, Volumen
valueSTRING OBLIGATORIOValor de la variante del producto.
Valores de ejemplo: Negro, XL, 30cm x 30cm, 30ml
categoriesARRAY[] OPCIONALCategorias del producto.
DEFAULT []
Mostrar propiedades
categoriesARRAY OPCIONALArreglo de las categorias a las cuales puede pertenecer el producto.
Valores de ejemplo: [Atención Online, Bussines]
Ejemplo de Parámetros
const params = {
external_id: 'ORDER-8454',
items: [
{
external_id: 'SKU-845-G54',
image: 'https://domain.com/images/products/product/product_image.jpg',
name: 'Nombre del producto', // Obligatorio
description: 'Descripción del producto',
quantity: 2, // Obligatorio
include_tax: true,
unit_price: false,
discount_type: 'amount',
discount: 2990.00,
currency: 'CLP', // Obligatorio
price: 10000.00, // Obligatorio
variants: [
{
name: 'Color', // Obligatorio
value: 'Negro' // Obligatorio
},
{
name: 'Talla', // Obligatorio
value: 'XL' // Obligatorio
},
{
name: 'Medidas', // Obligatorio
value: '30cm x 30cm' // Obligatorio
}
],
categories: ["Atención Online", "Bussines"] // Opcional
},
]
}
Respuestas del servicio
Respuesta exitosa
{
statusCode: 0,
message: 'Success'
}
Respuesta fallida
{
statusCode: 1,
message: 'Error 500 - Internal server error'
}
Respuesta con errores de validación
{
statusCode: 2,
message: 'Field validation error',
detail: {
field_one: [
'SessionOrderControllerValidator: field_one is required.',
'SessionOrderControllerValidator: field_one must be an integer.',
...
],
field_two: [
'SessionOrderControllerValidator: field_two is required.',
'SessionOrderControllerValidator: field_two must be a string.',
'SessionOrderControllerValidator: field_two exceeds the maximum number of characters :max.',
...
],
...
}
}
Actualizar el estado de una orden
Este metodo permite actualizar el status de una orden de compra, este recibe como parametro principal un objeto.
ocularOrderTrack.setBuyOrderState(params)
Parámetros
params
OBJECT
OBLIGATORIO
Mostrar propiedades
external_idSTRING OPCIONALIdentificador o código de la orden de compra.
Valores de ejemplo: ORDER-8454
payment_statusINTEGER OBLIGATORIOEstado del pago de la orden de compra.
Valores de permitidos: 0 (success), 1 (declined)
Ejemplo de parámetros
const params = {
external_id: 'SKU-845-G54',
payment_status: 0
}
ocularOrderTrack.setBuyOrderState(params)
Respuestas del servicio
Respuesta exitosa
{
statusCode: 0,
message: 'Success'
}
Respuesta fallida
{
statusCode: 1,
message: 'Error 500 - Internal server error'
}
Respuesta con errores de validación
{
statusCode: 2,
message: 'Field validation error',
detail: {
field_one: [
'SessionOrderControllerValidator: field_one is required.',
'SessionOrderControllerValidator: field_one must be an integer.',
...
],
field_two: [
'SessionOrderControllerValidator: field_two is required.',
'SessionOrderControllerValidator: field_two must be a string.',
...
],
...
}
}
Ejemplo actualizar una orden de compra
- javascript
const params = {
external_id: 'ORDER-8454',
items: [
{
external_id: 'SKU-845-G54',
image: 'https://domain.com/images/products/product/product_image.jpg',
name: 'Nombre del producto',
description: 'Descripción del producto',
quantity: 2,
include_tax: true,
unit_price: false,
discount_type: 'amount',
discount: 2990.00,
currency: 'CLP',
price: 10000.00,
variants: [
{
name: 'Color',
value: 'Negro'
},
{
name: 'Talla',
value: 'XL'
},
{
name: 'Medidas',
value: '30cm x 30cm'
}
]
},
]
}
ocularOrderTrack.setBuyOrder(params)