Saltar al contenido principal

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[];
}