🧹 Merchant Final Cleanup (reparar en vez de excluir)
Archivo: agentes/marketing/merchant-final-cleanup.ts · Plist: _(ninguno)_ · Horario: Manual / one-shot
Qué hace
Cierre del trabajo de Merchant Center: en lugar de excluir, REPARA los productos que activan vehicles_policy renombrándolos (quita palabras-flag como "Moto Cross", "1000W", "Tank", "DGT") y moviendo el título original al cuerpo HTML para conservar SEO. Además verifica con peticiones HEAD una muestra de URLs reportadas como landing_page_error, excluye del feed un producto en árabe sin contexto, e imprime un reporte de estado final con los pendientes manuales (language_mismatch, mercados no traducidos, imágenes pequeñas).
Cómo funciona
1. Carga .env y pagina productos activos.
2. Recorre RENAMES (regex → nuevo título + razón); por match: construye newBody insertando el título original como <strong> y hace PUT /products/{id} con title+body_html.
3. Busca el producto en árabe (زي اليوم/Z10) y lo excluye (tag google_excluded + metafield excluded_destination).
4. Hace fetch HEAD (redirect manual) a una lista fija de URLs públicas en varios idiomas/mercados y clasifica 200/3xx/404.
5. Imprime reporte final y enlaces a Shopify Markets, Translate&Adapt y Merchant Center.
Datos/APIs
- Shopify Admin API (
2024-10): products read, products PUT, metafields POST. - HTTP público a
www.rifkings.com(verificación de landing pages). - Vars .env:
SHOPIFY_STORE,SHOPIFY_ACCESS_TOKEN.
Cómo probarlo
cd /Users/user/rifai-agents && npx tsx agentes/marketing/merchant-final-cleanup.ts
Espera: renombrados aplicados (original → nuevo), chequeo de URLs con ✅/↪️/❌ y un reporte "ESTADO FINAL MERCHANT CENTER". Escribe en Shopify (renombra productos reales).
Si se rompe / recuperar
- Sin plist. Acción de cierre puntual; las reglas
RENAMESyTEST_URLSestán hardcodeadas. - Logs: stdout (redirigir a
/Users/user/rifai-agents/logs/merchant-final-cleanup.log). - Los pendientes (language_mismatch, mercados) requieren admin Shopify manual.
Cómo replicarlo
- Tabla
RENAMES(regex → título nuevo, conservando SEO en el body). - Exclusión del producto sin contexto (árabe).
- Verificación HEAD de landing pages multimercado.
- Reporte final con URLs de admin. Complementa
merchant-exclude-vehicles.ts(enfoque opuesto: reparar vs excluir).