Skip to main content

Ó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#

paramsOBJECT[] OBLIGATORIO
Mostrar propiedadesexternal_idSTRING OPCIONAL

Identificador o código de la orden de compra.

Valores de ejemplo: 1015, ORDER-8454


itemsOBJECT[] OBLIGATORIO

Listado de los productos pertenecientes a la orden de compra.

Mostrar propiedadesexternal_idSTRING OPCIONAL

Identificador o código de un producto en orden de compra.

Valores de ejemplo: 3105, SKU-845-G54


imageSTRING OPCIONAL

Url de la imagen principal del producto.

Valores de ejemplo: https://domain.com/images/products/product/product_image.jpg


nameSTRING OBLIGATORIO

Nombre del producto.

Valores de ejemplo: Crema facial


descriptionTEXT OPCIONAL

Descripción del producto.

Valores de ejemplo: Este es el detalle de la crema facial


quantityINTEGER OBLIGATORIO

Cantidad del producto en la orden de compra.

Valores de ejemplo: 1, 5


priceDECIMAL OBLIGATORIO

Precio del producto

Valores de ejemplo: 2990, 39000.00, 0.99


unit_priceBOOLEAN OPCIONAL

Precio 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 OBLIGATORIO

Moneda utilizada en la orden de compra.

Valores posibles: CLP, USD, EUR


include_taxBOOLEAN OPCIONAL

Define si el precio del producto incluye el impuestos o no.

Valores posibles: true, false

DEFAULT true


discount_typeCHAR OPCIONAL

Define si el descuento del producto es un porcentaje o un monto absoluto.

Valores posibles: percent amount

DEFAULT amount


discountDECIMAL OPCIONAL

Descuento 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[] OPCIONAL

Variantes del producto en la orden de compra.

DEFAULT []

Mostrar propiedadesnameSTRING OBLIGATORIO

Nombre de la variante del producto.

Valores de ejemplo: Talla, Medidas, Volumen


valueSTRING OBLIGATORIO

Valor de la variante del producto.

Valores de ejemplo: Negro, XL, 30cm x 30cm, 30ml


categoriesARRAY[] OPCIONAL

Categorias del producto.

DEFAULT []

Mostrar propiedadescategoriesARRAY OPCIONAL

Arreglo de las categorias a las cuales puede pertenecer el producto.

Valores de ejemplo: [Atención Online, Bussines]


Ejemplo de Parámetros#

params
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#

paramsOBJECT OBLIGATORIO
Mostrar propiedadesexternal_idSTRING OPCIONAL

Identificador o código de la orden de compra.

Valores de ejemplo: ORDER-8454


payment_statusINTEGER OBLIGATORIO

Estado del pago de la orden de compra.

Valores de permitidos: 0 (success), 1 (declined)


Ejemplo de parámetros#

params
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#

Crear una orden de compra
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)