treedevs / novacontent-connect
Módulo de integración con Novacontent Commerce para enriquecimiento asistido de atributos del catálogo Magento 2
Package info
github.com/iposada3dadv/magento2-novacontent-connect
Type:magento2-module
pkg:composer/treedevs/novacontent-connect
Requires
- php: ^8.1 || ^8.2 || ^8.3
- magento/framework: ^103.0
This package is not auto-updated.
Last update: 2026-05-30 19:06:06 UTC
README
Módulo de integración entre Magento 2 y Novacontent Commerce
Versión: 1.0.0
Autor: TreeDevs
Licencia: Proprietary
Descripción
TreeDevs_NovacontentConnect permite la integración bidireccional entre Magento 2 y la plataforma Novacontent Commerce para el enriquecimiento automático de atributos de productos mediante inteligencia artificial.
Funcionalidades principales
- Envío de productos: Selección individual o masiva de productos desde el catálogo para envío a Novacontent
- Enriquecimiento automático: Generación de atributos (descripciones, meta tags, etc.) mediante IA
- Polling asincrónico: Recuperación automática de resultados mediante cron
- Revisión y aprobación: Interface administrativa para revisar atributos generados antes de aplicarlos
- Aplicación al catálogo: Actualización automática de productos con atributos aprobados
- Trazabilidad completa: Logging estructurado de todas las operaciones
- Gestión de estados: Máquina de estados para tracking del ciclo de vida de requests
Requisitos
- Magento: 2.4.x
- PHP: 8.1 o superior
- Extensiones PHP: curl, json
- Permisos: Acceso a cron, acceso a API externa (Novacontent Commerce)
Instalación
Método 1: Instalación manual
# 1. Copiar el módulo al directorio de código cp -r TreeDevs/NovacontentConnect app/code/TreeDevs/ # 2. Habilitar el módulo bin/magento module:enable TreeDevs_NovacontentConnect # 3. Ejecutar setup bin/magento setup:upgrade # 4. Compilar DI (producción) bin/magento setup:di:compile # 5. Limpiar caché bin/magento cache:flush
Método 2: Composer (si está registrado)
composer require treedevs/novacontent-connect bin/magento setup:upgrade bin/magento setup:di:compile bin/magento cache:flush
Configuración
1. Configuración básica
Navega a: Stores > Configuration > TreeDevs > Novacontent Connect
Sección: Connection
- Enable Module:
Yespara activar el módulo - API Endpoint: URL base de Novacontent Commerce (ej:
https://api.novacontent.com) - API Key: Token de autenticación proporcionado por Novacontent (campo obscured)
Sección: Enrichment
- Attributes to Send: Multiselección de atributos EAV que se enviarán a Novacontent
- Seleccionar solo atributos necesarios (ej:
name,description,short_description,meta_title,meta_description)
- Seleccionar solo atributos necesarios (ej:
Sección: Polling
- Cron Frequency: Frecuencia de polling para recuperar resultados
*/5 * * * *(cada 5 minutos)*/15 * * * *(cada 15 minutos) — recomendado*/30 * * * *(cada 30 minutos)0 * * * *(cada hora)
2. Permisos ACL
Asignar permisos a roles de usuario en: System > Permissions > User Roles
Recursos disponibles:
TreeDevs_NovacontentConnect::novacontent(acceso general)TreeDevs_NovacontentConnect::config(configuración)TreeDevs_NovacontentConnect::requests(gestión de requests)TreeDevs_NovacontentConnect::logs(visualización de logs)
Uso
Envío de productos a Novacontent
Opción 1: Desde el grid de productos (mass action)
- Ir a Catalog > Products
- Seleccionar productos (solo simples y configurables)
- En Actions, seleccionar Send to Novacontent
- Confirmar el envío
Opción 2: Desde el detalle de producto
- Abrir un producto para edición
- Click en botón Send to Novacontent (arriba a la derecha)
- El producto se enviará inmediatamente
Revisión y aprobación de atributos generados
- Ir a TreeDevs > Novacontent > Integration Requests
- Localizar requests con estado
COMPLETED - Click en View para ver detalles
- Click en Revisar y Aprobar
- Revisar tabs:
- Información del Request: Datos generales
- Atributos Generados: Tabla de productos y atributos
- Cambios Propuestos: Comparación antes/después
- Click en ✓ Aprobar y Aplicar al Catálogo para aplicar cambios
- Los atributos se aplicarán automáticamente a los productos
Consulta de logs operativos
- Ir a TreeDevs > Novacontent > Operational Logs
- Filtrar por:
- Request ID
- Layer (capa: controller, manager, adapter, cron, etc.)
- Phase (fase del proceso)
- Result (success, warning, error)
- Fecha
Arquitectura
Componentes principales
TreeDevs/NovacontentConnect/
├── Api/ # Interfaces de datos y servicios
│ ├── Data/ # Interfaces de entidades
│ └── Adapter/ # Interface del adapter HTTP
├── Model/
│ ├── Manager/ # Orquestadores de flujo
│ │ ├── IntegrationRequestManager.php
│ │ └── ResultPollingManager.php
│ ├── Service/ # Servicios de negocio
│ │ ├── RequestPreparationService.php
│ │ └── ApplicationService.php
│ ├── Adapter/ # Adapter HTTP a Novacontent
│ │ └── NovacontentCommerceAdapter.php
│ └── Repository/ # Repositorios de datos
├── Controller/Adminhtml/ # Controllers admin
│ ├── Request/ # Gestión de requests
│ └── Product/ # Envío de productos
├── Cron/ # Jobs programados
├── Logger/ # Logger operativo
└── view/adminhtml/ # UI administrativa
Flujo de datos
-
Envío (Manual o automático):
- User selecciona productos
IntegrationRequestManager::createAndSendRequest()RequestPreparationService::buildRequestPayload()NovacontentCommerceAdapter::createRequest()→ API Novacontent- Estado:
PENDING_SEND→PENDING
-
Polling (Cron cada 15 min):
PollRemoteResults(cron job)ResultPollingManager::run()- Para cada request
PENDING/PROCESSING:Adapter::getRequestStatus()→ verifica estado- Si
COMPLETED:Adapter::getRequestResult()→ obtiene atributos - Persiste
IntegrationResponsecon JSON íntegro
- Estado:
PENDING→PROCESSING→COMPLETED
-
Revisión y Aplicación (Manual):
- Admin revisa atributos en UI
- Click "Aprobar"
ApplicationService::applyAttributesToCatalog()- Validación allowlist de atributos (seguridad)
- Actualización productos vía
ProductRepository - Persistencia
IntegrationApplicationEvidence - Estado:
COMPLETED→APPLIED
Persistencia
Tablas creadas:
novacontent_integration_request— Requests de enriquecimientonovacontent_integration_request_item— Items por request (productos)novacontent_integration_response— Respuestas de Novacontentnovacontent_integration_application_evidence— Evidencia de aplicaciónnovacontent_integration_operational_log— Logs operativos
Estados de Integration Request
| Estado | Descripción |
|---|---|
PENDING_SEND |
Creado localmente, aún no enviado a Novacontent |
PENDING |
Enviado a Novacontent, esperando procesamiento |
PROCESSING |
En procesamiento por Novacontent |
COMPLETED |
Procesamiento completado, atributos disponibles |
FAILED |
Error en Novacontent |
CANCELLED |
Cancelado por Novacontent |
APPLIED |
Atributos aplicados al catálogo exitosamente |
APPLICATION_FAILED |
Fallo al aplicar atributos al catálogo |
REJECTED |
Rechazado manualmente por admin |
PERMANENTLY_FAILED |
Falló después de máximo de reintentos (3) |
Seguridad
Reglas implementadas
- SEC-NCC-01: API Key nunca se expone en logs, UI ni excepciones
- SEC-NCC-03: Contexto de logs sanitizado (sin secrets)
- SEC-NCC-05: ACL en todos los controllers administrativos
- SEC-NCC-06: Solo atributos en allowlist se aplican al catálogo
Recomendaciones
- Usar HTTPS para endpoint de Novacontent
- Rotar API Key periódicamente
- Limitar permisos ACL al mínimo necesario
- Revisar logs operativos regularmente
Troubleshooting
El módulo no aparece en configuración
# Verificar que el módulo está habilitado bin/magento module:status TreeDevs_NovacontentConnect # Si está deshabilitado: bin/magento module:enable TreeDevs_NovacontentConnect bin/magento setup:upgrade bin/magento cache:flush
Cron no ejecuta polling
# Verificar configuración de cron bin/magento cron:run --group default # Ver logs de cron tail -f var/log/system.log | grep novacontent
Error al enviar productos
- Verificar que el módulo está enabled en configuración
- Verificar API Endpoint y API Key correctos
- Verificar conectividad:
curl -I https://api.novacontent.com - Revisar logs: TreeDevs > Novacontent > Operational Logs
Atributos no se aplican al catálogo
- Verificar que los atributos están en la allowlist (Config > Attributes to Send)
- Verificar que el request está en estado
COMPLETED - Revisar logs de layer
catalog_apply - Verificar permisos de escritura en base de datos
Soporte
Para soporte técnico, contactar:
- Email: support@treedevs.com
- Documentación: [Internal Wiki]
Changelog
v1.0.0 (2026-04-23)
- Release inicial
- Funcionalidades core completas:
- Envío manual/masivo de productos
- Polling asincrónico de resultados
- Revisión y aprobación de atributos
- Aplicación al catálogo con validaciones
- Logging operativo completo
- UI administrativa completa
Licencia
Proprietary - TreeDevs © 2026