# Integraciones no estándar

Aquellas integraciones que no se adapten a la modalidad estándar definida en las secciones de arriba, deberán sí cumplir con ciertos requisitos mínimos que se detallan a continuación.

## Consideraciones generales

### Conexión <a href="#conexion" id="conexion"></a>

* La autenticación de las conexiones deberá realizarse restringiendo el acceso por IP y/o token de seguridad (tipo api key) a incluirse en el header de la petición.
* No se implementarán conexiones a través de VPN.
* Los servicios se deberán disponibilizar a través de nombres de dominio fijos (no se admitirán conexiones por dirección IP o dominios dinámicos tipo DynDNS).

### Ambiente de testing <a href="#ambiente-de-testing" id="ambiente-de-testing"></a>

Es necesario que el comercio brinde un ambiente de testing al cual puedan estar conectados todos los servicios necesarios de Fenicio y que puedan efectuarse pruebas sin alterar la operativa normal. Este ambiente de testing debe ser un reflejo del ambiente de producción, ya que de esa manera se asegura replicar el flujo real de la integración.

### SKUs <a href="#skus" id="skus"></a>

El SKU debe seguir un criterio uniforme para todos los productos, tal que permita a Fenicio pueda identificar el código del producto base, la variante y la presentación. El comercio deberá indicar el criterio utilizado para codificar los productos.

Ejemplo: **`123456_AZ_LG`**.

En este ejemplo, el criterio sería que los primeros 6 dígitos son el código del producto, los 2 siguientes el color y los 2 últimos el talle, separados por guión bajo.

### Carga de imágenes <a href="#carga-de-imagenes" id="carga-de-imagenes"></a>

En los casos de integración completa, las imágenes de los productos deberán cargarse a través de FTP, siguiendo lo indicado en la sección [**Carga de imágenes**](/developers/integracion-de-comercios/carga-de-imagenes.md).&#x20;

En caso de integración parcial (precio y stock), las imágenes deben cargarse directamente en el backoffice de Fenicio.

## Servicios

### Productos <a href="#productos" id="productos"></a>

El servicio que retorna los productos deberá estar paginado para evitar *timeouts* o sobrecarga en el procesamiento (sugerimos 100 items por página).

Fenicio puede procesar hasta dos servicios distintos con información de los productos (por ejemplo uno para información general y otro para precio y stock). En ese caso, ambos servicios deben indicar el código del producto (SKU) para que Fenicio realice correctamente la asociación, además de estar ambos paginados según lo indicado arriba.

Fenicio deberá recibir los siguientes datos en los servicios de productos:

* SKU\*
* Precio\*
* Stock\*
* Nombre
* Marca
* Categoría
* Atributos

En caso de integraciones parciales (precio y stock), solo deberán incluirse los campos marcados con **`*`**.

### Stock en tiempo real <a href="#stock-en-tiempo-real" id="stock-en-tiempo-real"></a>

El servicio de stock en tiempo real debe permitir que mandar un array de SKUs en la misma consulta. Este servicio se usa para control de stock al agregar al carrito y al momento de comprar.

### Registro de orden <a href="#registro-de-orden" id="registro-de-orden"></a>

El servicio de registro de orden debe aceptar todos los datos de la orden en una única consulta:

* Productos incluidos
* Datos del comprador
* Datos de entrega
* Descuentos
* Información de los productos
* Etc.

Revisar la documentación del servicio estándar de [**registro de orden**](/developers/integracion-de-comercios/servicios/registro-de-orden.md) como referencia de los datos a incluirse.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://guia.fenicio.help/developers/integracion-de-comercios/integraciones-no-estandar.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
