Integraciones de terceros
¿Qué son las integraciones de terceros?
NinoxNet permite que otras aplicaciones se integren a su plataforma mediante una comunicación que se realiza en la nube.
Estas aplicaciones pueden acceder al stock web de Ninox como también realizar preventas que reservan stock o pedidos de venta
¿Qué necesito para utilizarlo?
Tenés que dar de alta una integración, para eso comunicate con el sector de ventas para iniciar el proceso
Ya di de alta mi integración, ¿Cómo sigue?
Una vez iniciada el alta, nuestro equipo te enviará una clave llamada token que deberás usar en tu integración
Ejemplo de token: 14ed5133cbc8a215355c805c59c9805db7492753
API
El token debe estar incluido en cada solicitud HTTP dentro de la cabecera
{ "X-NX-TOKEN": "14ed5133cbc8a215355c805c59c9805db7492753" }
Los ejemplos a continuación se explicarán en Typescript
Obtener stock
Método: GET
URL: https://sync.ninox.com.ar/api/Terceros/GetData
Response:
interface Articulo[];
Obtener stock con curva
Método: GET
URL: https://sync.ninox.com.ar/api/Terceros/GetDataCurva
Response:
interface ArticuloConCurva[];
Crear pedido
Método: POST
URL: https://sync.ninox.com.ar/api/Terceros/Pedido
Payload:
interface PedidoTerceros;
Response:
interface Resultado;
Se validará que el total sea igual a la suma de los valores enviados
El total del pedido deberá ser la suma de: Subtotal + Envio + Recargo - Descuento
Cancelar pedido
Método: POST
URL: https://sync.ninox.com.ar/api/Terceros/Pedido/cancelar?facturaid={facturaId}
Query param:
facturaid
Response:
interface NxResultado;
Esquema de datos
Articulos
Objetos complejos, con arrays de variantes y etiquetas
export enum TipoTalleColor {
NINGUNO = 0,
TALLES = 1,
COLORES = 2,
TALLES_COLORES = 3,
}
export interface Articulo {
articuloId: number;
codigo: string;
descripcion: string;
descripcionWeb: string;
nombre: string; // se genera automatico segun codigo y descripcion
talleColor: TipoTalleColor;
precio1: number;
precio2: number;
precio3: number;
precio4: number;
precio5: number;
stockTotal: number;
curva: ArticuloCurva[];
tags: ArticuloTag[];
}
export interface ArticuloCurva {
articuloId: number;
colorId?: number;
talleId?: number;
colorNombre: string;
colorCodigo: string;
talleNombre: string;
talleCodigo: string;
unidades: number;
}
export interface ArticuloCurva {
articuloId: number;
colorId?: number;
talleId?: number;
colorNombre: string;
colorCodigo: string;
talleNombre: string;
talleCodigo: string;
unidades: number;
}
Con curva incluida
Objeto plano, con variantes en raiz
export interface ArticuloConCurva {
articuloId: number;
version: number;
codigo: string;
descripcion: string;
descripcionWeb: string;
nombre: string; // se genera automatico segun codigo y descripcion
talleColor: TipoTalleColor;
precio1: number;
precio2: number;
precio3: number;
precio4: number;
precio5: number;
colorId?: number;
talleId?: number;
colorNombre: string;
colorCodigo: string;
talleNombre: string;
talleCodigo: string;
unidades: number;
}
Tags
En ninox las Tags
son las Etiquetas y/o Categorias
export enum TipoTag {
TODAS = -1,
TAG = 0,
CATEGORIA,
MARCA,
TEMPORADA,
}
export interface ArticuloTag {
articuloId: number;
articuloTagId: number;
tipo: TipoTag;
tagId: number;
tagNombre: string;
padreId?: number;
destacada: boolean;
}
Pedido
Un pedido de tercero al enviarse a Ninox resultará en un Pedido de venta o una Preventa que reserva stock, esto dependerá de la configuración de la integración
enum CondicionIva {
SIN_CATEGORIA = 0,
CONSUMIDOR_FINAL = 1,
RESPONSABLE_INSCRIPTO = 2,
MONOTRIBUTO = 3,
EXENTO = 4,
RESPONSABLE_NO_INSCRIPTO = 5,
}
export interface PedidoTerceros {
ordenId: number;
numero: number;
detalle: string;
direccionEnvio: DireccionTerceros;
direccionFacturacion: DireccionTerceros;
productos: ArticuloTerceros[];
usuario: UsuarioTerceros;
subtotal: number;
descuento: number;
envio: number;
recargo: number;
total: number;
}
export interface DireccionTerceros {
provincia: string;
localidad: string;
direccion: string;
codigoPostal: string;
}
export interface UsuarioTerceros {
nombre: string;
email: string;
dni: string;
cuit: string;
telefono: string;
condicion: CondicionIva;
}
export interface ArticuloTerceros {
articuloId: number;
precio: number;
talleId?: number;
colorId?: number;
cantidad: number;
}
Pedido resultado
export interface PedidoResultado {
facturaId: number; // si llega en 0, no se realizó el pedido
numero: number;
pVNumero: number;
sref: string;
estado: number;
datos: { [key: string]: string };
electronica: boolean;
cae: string;
caevencimiento: string;
resultado: string;
observaciones: string;
errorFE: string;
saldo?: number;
errores: boolean;
}
Nx Resultado
export enum NxTipoResultado {
ERROR,
OK,
VALIDACION,
}
export class NxResultado {
tipo: NxTipoResultado;
id: number;
data: object;
valores: string[];
mensajes: string[];
errores: string[];
}