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:
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ónAnalizar 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/