🔎 Google Shopping Audit (auditoría de feed)
Archivo: agentes/marketing/google-shopping-audit.ts · Plist: _(ninguno)_ · Horario: Manual / one-shot (sólo lee, no escribe)
Qué hace
Escanea todos los productos activos de Shopify y detecta las razones probables por las que Google Merchant Center podría rechazarlos, sin tocar Google directamente (audita el lado Shopify). Comprueba imagen, descripción, precio, stock, marca/vendor, product_type, SKU/barcode, palabras prohibidas en el título y longitud del título. Genera un ranking de problemas por frecuencia, lo guarda como JSON en reportes/ y avisa a Iván (intel) si hay más de 10 productos con issues.
Cómo funciona
1. Carga .env y pagina TODOS los productos activos (hasta 20 páginas de 250).
2. checkProduct() aplica reglas heurísticas Merchant: no_image, short_desc, no_price, oos, no_brand, no_category, no_gtin, banned_words, long_title, cada uno con severidad high/medium/low.
3. Agrupa por código de issue, cuenta y ordena por frecuencia, imprime el desglose.
4. Escribe reportes/google-shopping-audit-YYYY-MM-DD.json.
5. Si totalIssues > 10, notifica con evento intel_competitor.
Datos/APIs
- Shopify Admin API (
2024-10): products (paginado por Link header). - notify-router → evento
intel_competitor. - Vars .env:
SHOPIFY_STORE,SHOPIFY_ACCESS_TOKEN.
Cómo probarlo
cd /Users/user/rifai-agents && npx tsx agentes/marketing/google-shopping-audit.ts
Espera: nº de productos cargados, "Productos sin issues", tabla de problemas por frecuencia con severidad (🔴🟡🟢) y ruta del reporte en reportes/. No modifica nada (solo lectura).
Si se rompe / recuperar
- Sin plist. Acción de lectura; volver a ejecutar.
- Logs: solo stdout (redirigir a
/Users/user/rifai-agents/logs/google-shopping-audit.logsi se quiere). - Reportes:
/Users/user/rifai-agents/reportes/google-shopping-audit-*.json.
Cómo replicarlo
- Parser
.env+ paginación de productos por Link header. - Conjunto de reglas heurísticas Merchant (imagen/desc/precio/stock/marca/categoría/GTIN/palabras prohibidas/título).
- Agregación por código + severidad, reporte JSON, notificación condicional.
- Es la fase "diagnóstico"; el "fix" lo hace
google-shopping-autofix.ts.