Órdenes V1
Para poder crear una compra en Avify el objeto Order es necesario, es el encargado de generar reducciones en el inventario y también el objeto encargado de permitir un pago.
Haciendo uso del API de ordenes se puede hacer un listado de las órdenes del sistema. Las órdenes se encuentran indentificadas por un id de orden.
Atributos
id string
Indentificador único de la orden. Este puede ser autogenerado, de nuestro sistema o proveniente de algún canal.
status string
Estado de la orden. Este valor puede encontrarse en posibles valores, pero también podrían existir otros valores dependiendo de las integraciones conectadas.
Posibles valores | Descripción |
---|---|
complete | Cuando la orden ha sido marcada como completada |
pending | Cuando en la orden no se ha confirmado el pago |
processing | Cuando la orden tiene pendiente el shipping action o envío. En este estado el pago ya se encuentra confirmado |
canceled | Cuando la orden no ha sido pagada y es cancelada |
closed | Cuando la orden ha sido pagada, se hizo el refund y cancelación |
channel string
Canal de ventas utilzado para la orden. Algunos de estos pueden ser:
Sistema | Descripción |
---|---|
avify | Orden originada en el sistema de Avify |
wordpress | Orden originada en la integración de WordPress |
Orden originada en el sistema de Avify con selección de canal Facebook | |
Orden originada en el sistema de Avify con selección de canal Instagram | |
Orden originada en el sistema de Avify con selección de canal WhatsApp |
channelPublicId string
Id de la orden proveniente del canal de ventas o de Avify
created Date
Fecha de creación de la orden en formato ISO-8601 String
createdTimestamp string
Fecha de creación de la orden en formato Unix Epoch Timestamp
updated Date
updatedTimestamp string
Fecha de actualización de la orden en formato Unix Epoch Timestamp
details object
Detalle de la orden
Mostrar atributos hijos
hasVirtualProducts boolean
true
Si la orden posee productos virtuales como: cursos, entradas, capacitaciones, ebooks
isVirtual boolean
true
Si la orden posee únicamente productos viruales. Esto quiere decir que la orden no va a contener el objeto Shipping
isGift boolean
true
Si la orden es marcada como regalo
usedMagicLink boolean
true
Si la orden fué realizada utilizando un magic link
avify object
Contiene información relacionada con el sistema de Avify
Mostrar atributos hijos
store object
Mostrar atributos hijos
name string
Nombre de la tienda
uuid string
Identificador UUID V4, el cual es un valor único para cada tienda
customer CustomerV1
Cliente asignado a la orden
shipping object
Detalle de dirección y entrega asignado a la orden y al customer
Mostrar atributos hijos
id string
| null
Indentificador único para autogenerado o autoincrementado para el detalle de envío
latitude float
| null
Punto cardinal geográfico de latitud usualmente proporcionado por google maps
longitude float
| null
Punto cardinal geográfico de longitud usualmente proporcionado por google maps
country string
alpha-2 Código de país
state string
Region, Provincia o Estado depende del country asignado
city string
Ciudad, Cantón o Municipio depende del country y state asignado
district string
Distrito depende country,state y city asignados
label string
| null
Etiqueta para almacenar la dirección con un texto representativo
details string
| null
Notas del envío o cualquier dato importante como por ejemplo :
- “Cuidado con el perro”
- “Es la casa de portón Negro”
- “Dejar en la puerta del depa A32”
company string
| null
Nombre de negocio o comercio en caso de ser requerido
method string
The selection of shipping made by the user or sales channel
methodCode string
The method code selection of shipping made by the user or sales channel.
Posibles valores:
'redlogistic_urbano'
'redlogistic_rural'
'redlogistic_especial'
'moovin_ondemand'
'moovin_route'
'correoscr_rural'
'correoscr_urbano'
'nuevenuevemin_1'
'nuevenuevemin_2'
'nuevenuevemin_3'
'nuevenuevemin_4'
'enviaya_delivery'
'freeshipping_freeshipping'
'freeshipping_freeshipping0'
'flatrate_flatrate'
'flatrate_flatrate0'
'flatrate_flatrate1'
'flatrate_flatrate2'
'lalamove_MOTORCYCLE'
'pos_pos'
dni string
Identificador único de gobierno depende del país y si es requerido por alguna integración
Costa Rica: 116640278
México: CUPU800825569
hasGeneratedDocument boolean
true
Si la guía de envío o etiqueta de entrega ya fué generada en caso de que la integración de envío lo requiera
document string
| null
Si hasGeneratedDocument = true
entonces el url del documento se encontrará en este atributo comunmente el documento generado es un PDF
telephone string
Telephone number asigned to the shipping address
deliveryDay string
Day of the week that the order was delivered
Posibles valores:
'Lunes'
'Martes'
'Miércoles'
'Jueves'
'Viernes'
'Sábado'
'Domingo'
billing object
Detalle de facturación asignado a la orden y al customer
Mostrar atributos hijos
id string
| null
Indentificador único para autogenerado o autoincrementado para el detalle de facturación
latitude float
| null
Punto cardinal geográfico de latitud usualmente proporcionado por google maps
longitude float
| null
Punto cardinal geográfico de longitud usualmente proporcionado por google maps
country string
alpha-2 Código de país
state string
Region, Provincia o Estado depende del country asignado
city string
Ciudad, Cantón o Municipio depende del country y state asignado
district string
Distrito depende country,state y city asignados
label string
| null
Etiqueta para almacenar la dirección con un texto representativo
details string
| null
Notas del envío o cualquier dato importante generado por el comercio como por ejemplo :
- “Facturación de compañía”
- “Orden empresarial”
company string
| null
Nombre de negocio o comercio en caso de ser requerido
dni string
Identificador único de gobierno depende del país y si es requerido por alguna integración de facturación
Costa Rica: 116640278
México: CUPU800825569
government object
Mostrar atributos hijos
documents object array []
Lista de documentos generados en sistemas de facturación o gobierno
Mostrar atributos hijos
id string
Identificador único del documento en el sitema de facturación este puede ser un número consecutivo
date string
Fecha de creación del documento
document string
metadata string
| null
Datos retornados por el sistema de Avify o externo de facturación almacenados en formato JSON stringified
log: string
Log de eventos a la hora de interactuar con los sistemas de facturación este campo puede mostrar los diferentes errores o documentos generados para esa orden.
telephone string
Telephone number asigned to the shipping address
discount object
Mostrar atributos hijos
id string
Identificador único para el descuento creado
total float
Total a descontar de la orden en el descuento
code string
Código único para el descuento ejemplo: DIADELPADRE,BLACKFRIDAY
Cost object
Mostrar atributos hijos
subtotal float
Suma total productos en la orden antes de impuestos, envío y descuentos.
total float
Costo total de la orden incluyendo impuestos, envío y descuentos
baseCurrencyCode string
Código de moneda base del comercio o tienda en formato ISO 4217
orderCurrencyCode string
Código de moneda utilizado en la orden en formato ISO 4217
baseToOrderRate float
Tipo de cambio utilizado para la orden en caso de que baseCurrencyCode y orderCurrencyCode sean iguales entonces baseToOrderRate será igual a 1
tax objeto
En caso de tener impuestos este atributo muestra el total a rebajar del subtotal
Mostrar atributos hijos
total float
Total deduction when tax is applied
hasFreeShippingProducts boolean
true
si en los productos alguno fué marcado como freeShipping true
handlingFee float
Si el sistema de envío lo permite puede existir un handlingFee que describe el costo de manejo de paquete usualmente para envíos de tipo carga pesada
shipping object
Objeto que describe los costos de shipping o envío de la orden
Mostrar atributos hijos
total float
Costo total de shipping o envío asignado a la orden usualmente depende del sistema o integración de envío
subtotal float
Costo total antes
tax object
Mostrar atributos hijos
total float
Costo total de la rebaja de impuestos sobre el total del costo de envío
percentage float
| null
Porcentaje de rebaja sobre el costo de envío
id string
| null
Identificador único de impuesto
name string
| null
Nombre o etiqueta para identificar el impuesto
deductions object
| null
En caso de utilizar el sistema o gateway de pagos de Avify algunas deducciones pueden aplicar así también como algún costo extra de orden por el plan asignado a la suscripción de la cuenta utilizada
Mostrar atributos hijos
flatFee float
Costo fijo por transacción
percentageFee float
Porcentaje de rebaja sobre el total de la orden
isOverFlowOrder boolean
true
si la orden excede el límite de ordenes permitidas en el plan
overflowFee float
Costo único sobre la orden en caso de que isOverFlowOrder = true
Payment object
Mostrar atributos hijos
method string
Método de pago utilizado para la orden
status string
Estado del pago en la orden
wasRefunded float
true
si hubo algún retorno de pago
refund float
En caso de wasRefunded = true
la cantidad a retornar al customer de la orden
bankTransferMethod string
| null
En caso de ser una transacción por transferencia bancaria el método de transferencia se mostrará en este campo
reference string
Identificador del pago que hace referencia al sistema de pagos utilizado.
hasReceipt boolean
true
si existe un recibo de pago adjuntado a la orden
receipt object
| null
Mostrar atributos hijos
id string
Identificador único del recibo
url string
Dirección url que permite visualizar el recibo de pago
notes objects
Mostrar atributos hijos
wasNotified boolean
true
si al crear la nota esta fué notificada al customer
comment string
Texto o comentario asignado a la orden
created Date
Fecha de creación de la nota en formato ISO-8601 String
createdTimestamp string
Fecha de creación de la nota en formato Unix Epoch Timestamp
posMode string
Indica si es una orden de tipo POS puede venir vacío o con la palabra “pos”
“posOnline”
isPOS boolean
Indica si fué una orden realizada desde el módulo de pos
products object array []
Todos los productos que incluye la orden por el momento este objecto no se encuentra documentado pero pronto estará en su propia hoja de documentación
ProductV1
metadata object
| null
Un objeto enviado por el comercio este atributo se mostraría cuando la orden fué realizada por medio del API y se agregaron atributos al objeto puede ser de máximo 100kb.
Los atributos hijos solo pueden ser de los tipos de datos string
boolean
float
o int
por ejemplo:
{
...,
"metadata":{
"id":123,
"ticketReference":"4GBSDFG13",
"oldPrice":"300.50",
"wasUpdated":"true"
}
}
Esquema
Si necesita algún schema para otro lenguaje en esta documentación puede solicitarlo en el chat de la plataforma de Avify.
Typescript Schema
export interface OrderAdressV1 {
id?: string;
latitude?: number;
longitude?: number;
country: string;
state: string;
city: string;
district: string;
street: string;
postcode: string;
label?: string;
details?: string;
company?: string;
dni?: string;
}
export interface OrderShippingV1 extends OrderAdressV1 {
hasGeneratedDocument: boolean;
document?: string;
}
export interface OrderBillingV1 extends OrderAdressV1 {
goverment: {
documents: {
id: string;
document: string;
metadata?: string;
}[];
log: string;
};
}
export interface TaxV1 {
total: number;
percentage?: number;
id?: string;
name?: string;
}
export interface OrderV1 {
id: string;
status: string;
channel: string;
created: Date;
createdTimestamp: string;
updated: Date;
updatedTimestamp: string;
details: {
hasVirtualProducts: boolean;
isVirtual: boolean;
isGift: boolean;
usedMagicLink: boolean;
};
avify: {
store: {
name: string;
uuid: string;
};
};
customer: {
id?: string;
email: string;
firstName: string;
lastName: string;
gender?: string;
telephone?: string;
company?: string;
};
shipping?: OrderShippingV1;
billing?: OrderBillingV1;
discount: {
total: number;
id?: string;
code?: string;
};
costs: {
subtotal: number; //before taxes, discounts and shipping
total: number;
tax: {
total: number;
};
hasFreeShippingProducts: boolean;
shipping: {
subtotal: number;
total: number;
tax: TaxV1;
handlingFee: number;
};
baseCurrencyCode: string; // Currency used back in the store
orderCurrencyCode: string; // Currency used in the order
baseToOrderRate: number; // If BCC and OCC are the same BTR is 1
deductions?: {
flatFee: number; // Cost per transaction
percentageFee: number; // Percentage of the subtotal if payment method is credit card
isOverflowOrder: boolean; // If you pass your order limit you will be charged an extra fee
overflowFee: number; //The total fee charge in that specific time frame
};
};
payment: {
method: string;
status: string;
wasRefunded: boolean;
refund: number;
hasReceipt: boolean;
bankTransferMethod?: string;
reference?: string;
receipt?: {
id?: string;
url: string;
};
};
notes: {
wasNotified: boolean;
comment: string;
createdTimestamp: string;
created: Date;
}[];
products: any[];
metadata?: { [key: string]: number | string | boolean }; // Max 100kb
}
Ejemplo
{
"version": "1.0.0",
"id": "4853d29f-536a-417b-8ab2-d83045c8e0a6",
"status": "complete",
"channel": "avify",
"channelPublicId":"001",
"created": "2022-07-12T02:39:46.907Z",
"createdTimestamp": "1657256631000",
"updated": "2022-07-12T02:39:46.907Z",
"updatedTimestamp": "1657256631000",
"details": {
"hasVirtualProducts":false,
"isVirtual": false,
"isGift": false,
"usedMagicLink": false
},
"avify": {
"store": {
"name": "Cobijas Store",
"uuid": "9e06f96d-fb59-4c47-a051-d8ee120835b7"
}
},
"customer": {
"id": null,
"email": "ccfa6435-2f0d-4797-9dcf-1a04f51edac0@avify.com",
"firstName": "John",
"lastName": "Doe",
"gender": "Male",
"telephone": "+50684020061",
"company": "Avify"
},
"shipping": {
"id": null,
"latitude": null,
"longitude": null,
"country": "CR",
"state": "Heredia",
"city": "San Rafael",
"district": "San Rafael",
"street": "Avenida 10, Calle 15",
"postcode": "40501",
"label": null,
"details": null,
"company": null,
"method":"",
"dni": null,
"hasGeneratedDocument": false,
"document": null,
"telephone":"+5068436782",
"deliveryDay":"Lunes"
},
"billing": {
"id": null,
"latitude": null,
"longitude": null,
"country": "CR",
"state": "Heredia",
"city": "San Rafael",
"district": "San Rafael",
"street": "Avenida 10, Calle 15",
"postcode": "40501",
"label": null,
"details": null,
"company": null,
"telephone":"+5068436782"
"government": {
"documents": [
{
"id": "1234",
"document":"https://documents.com?id=1234",
"metadata": null
}
],
"log": ""
},
},
"discount": {
"total": 0,
"id": null,
"code": null
},
"costs": {
"subtotal": 500,
"total": 1000,
"tax": {
"total": 0,
},
"hasFreeShippingProducts": false,
"handlingFee": 0,
"shipping": {
"total": 500,
"subtotal": 500,
"tax": {
"total": 0,
"percentage": null,
"id": null,
"name": null
},
},
"baseCurrencyCode": "CRC",
"orderCurrencyCode": "CRC",
"baseToOrderRate": 1,
"deductions": null
},
"payment": {
"method": "banktransfer",
"status": "pending",
"wasRefunded": false,
"refund": 0,
"hasReceipt": false,
"receipt": null,
"bankTransferMethod": "p2p"
},
"notes": [],
"isPOS": true,
"posMode": "pos",
"products": [],
"metadata": null,
}