Saltar a contenido

Integración por Carga de Archivos

Este método de integración permite importar y exportar datos de la tienda online mediante archivos. Es útil para sistemas que no usan APIs.

Flujo de trabajo

  • 1) Los sistemas de información del cliente generan un fichero de carga y lo suben al servidor de archivos en la ruta especificada.
  • 2) El proceso de carga se ejecuta de forma manual o planificada (CRON)
  • 3) El proceso lee y procesa el fichero
  • 4) El proceso mueve el fichero a la carpeta de archivos procesados
  • 5) Envia un Email con el resultado de la carga

Estructura de carpetas

La ruta de almacenamiento contiene una estructura de carpetas concreta para poder organizar de forma sencilla los ficheros. Dicha ruta puede ser personalizada pero se recomienda tener el valor por defecto:

/tol/$BRAND_ID/$ENV_ID/out
El ID de la marca es proporcionado por Aktios y el ID de entorno puede ser uno de los siguientes valores: - pro: Entorno de producción (Obligatorio) - pre: entorno de preproducción (Obligatorio) - test: entorno de test - int : entorno de integración

Analizar errores de la carga

A través del backoffice (Visor de logs) es posible consultar los mensajes que generan las cargas y exportarlos como xls.

Cargas Programadas

Se pueden programar cargas automáticas de archivos para mantener los datos sincronizados.

Archivos de verificación

Las cargas Batch soportan que además del fichero de datos, se cargue un fichero de verifación, para no procesar el fichero de datos hasta que el de verificación exista (Para sistemas que generan ficheros de forma incremental).

Servidor de archivos en Google Cloud Storage

El servidor de archivos utiliza un bucket de Google Cloud Storage (GCS) para la subida de ficheros de integración.

Datos de acceso

Los siguientes datos de acceso serán proporcionados por Aktios para cada entorno:

Dato Descripción
Nombre del bucket Identificador único del bucket de GCS asignado al proyecto
Ruta de subida de ficheros JSON Ruta dentro del bucket donde se deben subir los archivos de datos (surtido, promociones, etc.)
Ruta de subida de imágenes Ruta dentro del bucket donde se deben subir las imágenes de producto
Cuenta de servicio Cuenta de servicio de GCP con permisos de escritura sobre los objetos del bucket
API Key (JSON) Clave de autenticación en formato JSON asociada a la cuenta de servicio

Autenticación

El acceso al bucket se realiza mediante una cuenta de servicio de Google Cloud Platform. La cuenta de servicio proporcionada tiene permisos de escritura sobre los objetos del bucket.

La autenticación se realiza utilizando una API Key en formato JSON asociada a la cuenta de servicio. Para configurar la autenticación, consultar la documentación oficial de GCP:

Acceso programático

Para acceder programáticamente al bucket de GCS se pueden utilizar las librerías cliente oficiales de Google Cloud Storage, disponibles para múltiples lenguajes de programación (Java, Python, Node.js, Go, C#, entre otros):

Ejemplo de subida de archivo (Python)

from google.cloud import storage
import os

# Configurar autenticación con la API Key JSON proporcionada
os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "/ruta/a/api-key.json"

# Crear cliente de almacenamiento
client = storage.Client()

# Acceder al bucket (nombre proporcionado por Aktios)
bucket = client.bucket("nombre-del-bucket")

# Subir un fichero JSON
blob = bucket.blob("ruta/de/subida/fichero.json")
blob.upload_from_filename("/ruta/local/fichero.json")

# Subir una imagen
blob = bucket.blob("ruta/de/subida/imagenes/imagen.jpg")
blob.upload_from_filename("/ruta/local/imagen.jpg")

Ejemplo de subida de archivo (Java)

import com.google.cloud.storage.BlobId;
import com.google.cloud.storage.BlobInfo;
import com.google.cloud.storage.Storage;
import com.google.cloud.storage.StorageOptions;
import java.nio.file.Files;
import java.nio.file.Paths;

// Configurar la variable de entorno GOOGLE_APPLICATION_CREDENTIALS
// apuntando al fichero JSON de la API Key proporcionada

Storage storage = StorageOptions.getDefaultInstance().getService();

// Subir un fichero
BlobId blobId = BlobId.of("nombre-del-bucket", "ruta/de/subida/fichero.json");
BlobInfo blobInfo = BlobInfo.newBuilder(blobId).build();
storage.createFrom(blobInfo, Paths.get("/ruta/local/fichero.json"));

Ejemplo de subida de archivo (gsutil CLI)

# Autenticarse con la cuenta de servicio
gcloud auth activate-service-account --key-file=/ruta/a/api-key.json

# Subir un fichero JSON
gsutil cp /ruta/local/fichero.json gs://nombre-del-bucket/ruta/de/subida/

# Subir imágenes
gsutil cp /ruta/local/imagen.jpg gs://nombre-del-bucket/ruta/de/subida/imagenes/

# Subir múltiples archivos
gsutil -m cp /ruta/local/*.json gs://nombre-del-bucket/ruta/de/subida/