Data Import
| Campo | Valor |
|---|---|
| Handler | admin/handlers/imports.go |
| Ruta base | /admin/imports |
| Modelo | import_jobs, import_logs |
| Estado | Implementado |
Descripción
El módulo de importación permite migrar datos desde otras plataformas (Shopify, WooCommerce, Magento, etc.) mediante un wizard de 3 pasos. Soporta importación de productos, colecciones, clientes, y pedidos con validación y dry-run.
Endpoints
| Método | Ruta | Acción |
|---|---|---|
| GET | /admin/imports | Historial de importaciones |
| GET | /admin/imports/new | Wizard paso 1: selección de plataforma |
| GET | /admin/imports/new/step2 | Wizard paso 2: credenciales |
| POST | /admin/imports | Crear y ejecutar job |
| GET | /admin/imports/:id | Detalle del job |
| GET | /admin/imports/:id/logs | Logs del job |
| POST | /admin/imports/:id/cancel | Cancelar job |
| POST | /admin/imports/:id/retry | Reintentar job |
| GET | /admin/imports/:id/export-errors | Exportar errores CSV |
Campos
ImportJob
| Campo | Tipo | Descripción |
|---|---|---|
id | UUID | Identificador único |
tenant_id | UUID | Tenant propietario |
platform | enum | Plataforma origen |
status | enum | Estado del job |
shop_url | string | URL de la tienda origen |
credentials | json | API keys/tokens (encriptados) |
total_items | int | Total de items a importar |
processed_items | int | Items procesados |
success_items | int | Items exitosos |
error_items | int | Items con error |
dry_run | bool | Modo simulación |
started_at | timestamp | Inicio de ejecución |
completed_at | timestamp | Fin de ejecución |
created_at | timestamp | Fecha de creación |
ImportLog
| Campo | Tipo | Descripción |
|---|---|---|
id | UUID | Identificador único |
job_id | UUID | Job padre |
level | enum | info, warning, error |
message | string | Mensaje del log |
item_id | string | ID del item origen |
item_type | string | Tipo (product, collection, etc.) |
created_at | timestamp | Timestamp del log |
Plataformas Soportadas
| Platform | Valor | Descripción |
|---|---|---|
| Shopify | shopify | Importación vía Admin API |
| WooCommerce | woocommerce | Importación vía REST API |
| Magento | magento | Importación vía REST API |
| CSV | csv | Archivo CSV subido |
| XML | xml | Archivo XML subido |
Estados del Job
pending → running → completed
→ failed
→ cancelled
Wizard Flow
Paso 1: Selección de Plataforma
- Selector visual de plataforma
- Opción de subir archivo CSV/XML
Paso 2: Credenciales
- Para plataformas online: URL, API Key, API Secret
- Para archivos: upload del archivo
Paso 3: Confirmación
- Resumen de lo que se importará
- Opción de dry-run (simular sin crear datos)
- Botón de ejecución
Notas
- Los credentials se almacenan encriptados en la BD
- El dry-run valida todo sin crear registros reales
- Los errores se exportan como CSV para análisis
- Se puede cancelar un job en ejecución
- El retry re-ejecuta desde el último item procesado
- Soporta importación incremental (no duplica existentes)