Todos nuestros productos Recursos
Desarrolladores

Ó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 valoresDescripción
completeCuando la orden ha sido marcada como completada
pendingCuando en la orden no se ha confirmado el pago
processingCuando la orden tiene pendiente el shipping action o envío. En este estado el pago ya se encuentra confirmado
canceledCuando la orden no ha sido pagada y es cancelada
closedCuando 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:

SistemaDescripción
avifyOrden originada en el sistema de Avify
wordpressOrden originada en la integración de WordPress
facebookOrden originada en el sistema de Avify con selección de canal Facebook
instagramOrden originada en el sistema de Avify con selección de canal Instagram
whatsappOrden 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

truesi 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,
		
	}

Inicia tu prueba gratis hoy mismo y acelera tus ventas.

Al momento de crear tu cuenta gratuita, nuestro equipo comercial te estará contactando por WhatsApp en los próximos minutos.

Iniciar mi prueba gratuita

No se requiere tarjeta para iniciar.