La sincronización de productos mediante API permite automatizar la creación y actualización de los productos de tu catálogo de Connectif desde un sistema externo. Puedes sincronizar productos individualmente o realizar actualizaciones masivas mediante un fichero CSV.
En este artículo, aprenderás cómo importar productos de forma automática mediante la API de Connectif.
Antes de empezar: casos de uso
Esta API cubre los siguientes casos de uso:
- Si quieres crear o actualizar productos individualmente desde un sistema externo.
- Si quieres automatizar periódicamente la sincronización de todos o gran parte de tus productos mediante un fichero CSV.
PASO 1. Creación de la clave API
1. Accede a Configuración de tienda en el menú lateral izquierdo.
2. En el selector de pestaña, ve a "API y accesos IP" y haz clic en API Keys.
3. Haz clic en el botón Crear nueva API Key.
4. En la sección Importaciones y productos del panel de creación, habilita los permisos para "Leer", "Escribir" y "Borrar" de forma masiva.
5. Guarda la clave API y cópiala para, más tarde, utilizarla en tu script de automatización.
PASO 2. Elección del método de sincronización
(En este paso escogerás cómo enviar la información de los productos a Connectif según el volumen y la forma en que necesites actualizar tu catálogo).
6. Escoge el método de sincronización que mejor se adapte a tu caso:
- API de Productos: Crear o actualizar productos individualmente.
- API de Importaciones: Crear o actualizar grandes cantidades de productos mediante un fichero CSV.
2.1. Sincronización individual de productos
(En este apartado configurarás las llamadas a la API de Productos).
7. Crea el script de automatización desde tu sistema e incluye en él la API Key generada en el paso anterior.
8. Configura en el script una petición HTTP PATCH para crear o actualizar el producto en Connectif: https://api.connectif.cloud/products/product-id/{id}
En la petición, indica:
- La API Key para autenticar la llamada.
- El tipo de contenido application/json.
- La información del producto en el cuerpo de la petición.
9. Incluye en el cuerpo de la petición los siguientes atributos obligatorios:
- name: nombre del producto.
- productDetailUrl: URL de detalle del producto, que debe ser accesible.
- unitPrice: precio unitario del producto.
Ejemplo 1
Una vez creada, la petición tendrá un aspecto similar a este:
const apiKey = "TU_API_KEY";
const productId = "SKU-12345";
const url = `https://api.connectif.cloud/products/product-id/${productId}`;
const product = {
name: "Zapatilla Running",
productDetailUrl: "https://www.midominio.com/productos/SKU-12345",
unitPrice: 39.95
};
async function main() {
const response = await fetch(url, {
method: "PATCH",
headers: {
"Authorization": `apiKey ${apiKey}`,
"Content-Type": "application/json"
},
body: JSON.stringify(product)
});
const result = await response.json();
console.log(result);
}
main();
2.2. Sincronización masiva de productos
(En este apartado configurarás una importación mediante API para crear o actualizar productos de forma masiva).
10. Crea y verifica que tu fichero CSV de importación cumpla las siguientes condiciones:
- Utiliza encoding “UTF-8”.
- La primera fila contiene las cabeceras de los campos.
- Los datos de productos deben utilizar los mismos nombres de campo que se indican en este artículo.
productDetailUrl,productId,name,unitPrice,availability,inStockUnits,brand
https://www.midominio.com/productos/SKU-12345,SKU-12345,Zapatilla Running,39.95,instock,25,Marca Ejemplo
https://www.midominio.com/productos/SKU-67890,SKU-67890,Zapatilla Trail,49.95,outofstock,0,Marca Ejemplo11. Crea el script de automatización desde tu sistema e incluye en él la API Key generada en el PASO 1.
12. Configura en el script una petición HTTP POST al siguiente endpoint: https://api.connectif.cloud/imports/
13. Configura la petición con los datos necesarios para realizar la importación:
- Indica products como tipo de importación.
- Indica el delimitador utilizado en el fichero CSV.
- Establece si quieres sobrescribir los datos existentes de los productos.
- Establece si quieres actualizar únicamente los campos que estén vacíos.
- Incluye el fichero CSV que contiene los productos que quieres importar.
14. Ejecuta la petición para iniciar la importación
Ejemplo 2
Una vez creada, la petición tendrá un aspecto similar a este:
const fetch = require('node-fetch');
const fs = require('fs');
const FormData = require('form-data');
const apiKey = process.env.API_KEY;
const filePath = process.env.FILE_PATH;
async function main() {
const form = new FormData();
form.append('type', 'products');
form.append('delimiter', ',');
form.append('overrideExisting', 'true');
form.append('updateOnlyEmptyFields', 'false');
form.append('file', fs.createReadStream(filePath));
const response = await fetch('https://api.connectif.cloud/imports', {
method: 'POST',
headers: {
'Authorization': `apiKey ${apiKey}`,
...form.getHeaders()
},
body: form
});
if (!response.ok) {
console.error(response.status, await response.json());
process.exit(1);
}
const { id, total } = await response.json();
while (true) {
const getResponse = await fetch(
`https://api.connectif.cloud/imports/${id}`,
{
method: 'GET',
headers: {
'Authorization': `apiKey ${apiKey}`
}
}
);
const { success, errors, status } = await getResponse.json();
console.log(`completed ${success + errors} of ${total}`);
if (status === 'finished') {
console.log('Success');
process.exit(0);
}
await new Promise(resolve => setTimeout(resolve, 2000));
}
}
main().catch(error => {
console.error(error);
process.exit(1);
});
El script crea una importación de productos a partir del fichero CSV cuya ruta se establece mediante la variable de entorno FILE_PATH. Para ello, establece products como tipo de importación, utiliza , como delimitador, sobrescribe los productos existentes y mantiene updateOnlyEmptyFields como false.
Preguntas frecuentes
¿Puedo consultar desde Connectif las importaciones realizadas mediante API?
Sí, el motor de importación es el mismo que utiliza la aplicación Connectif. Por tanto, podrás consultar en el listado de importaciones tanto las realizadas mediante API como las realizadas desde Connectif.
¿Cuántas importaciones se pueden encolar a la vez?
Es posible encolar un máximo de 10 importaciones a la vez. Cuando alcances este límite, deberás esperar a que se complete una importación antes de añadir otra a la cola.
¿Cuál es el tamaño máximo del fichero CSV?
El fichero CSV puede tener un tamaño máximo de 50 MB.
¿Puedo eliminar una importación mediante API?
Actualmente, es posible borrar el historial de importaciones solo en los estados finished o error.
¿Puedo cancelar una importación mediante API?
Una vez cargado el archivo desde la API, no es posible cancelar.
¡Sigue aprendiendo!
Para aprovechar todo el potencial de tu cuenta en Connectif, te recomendamos continuar con los siguientes artículos:
Sincronización de productos masiva, para conocer cómo funciona la sincronización masiva y las diferencias entre Scraping Web y Feed de Productos.
Métodos de sincronización y verificación de productos en Connectif, para conocer las diferentes formas de mantener actualizado tu catálogo.
Sincronización de Productos mediante Feed, para configurar una sincronización masiva mediante un Feed de Productos.
Sincronización de Productos mediante Scrapping Web, para configurar una sincronización masiva mediante Scraping Web.