🚫 Merchant Exclude Vehicles (excluir productos prohibidos)
Archivo: agentes/marketing/merchant-exclude-vehicles.ts · Plist: _(ninguno)_ · Horario: Manual / one-shot
Qué hace
Excluye del feed de Google Shopping los productos que violan la política vehicles_policy (motos eléctricas, productos con potencia tipo "1000W infantil", "M41 Tank", etc., que Google clasifica como vehículos de motor prohibidos). Para cada producto detectado por título, le añade el metafield oficial google.excluded_destination=["Shopping_ads"] (con un fallback a custom_label_0) y le pone tags google_excluded y vehicles_policy para identificarlo.
Cómo funciona
1. Carga .env.
2. GET /products.json?status=active (una página de 250).
3. Filtra por coincidencias de título: "mini moto cross", "moto cross eléctrica", "m41 tank", "1000w infantil", "ecoxtrem m41".
4. Por target: POST metafields con excluded_destination; si falla, fallback custom_label_0=excluded_vehicles_policy.
5. Añade tags google_excluded + vehicles_policy vía PUT /products/{id}.
Datos/APIs
- Shopify Admin API (
2024-10): products read, metafields POST, products PUT. - Vars .env:
SHOPIFY_STORE,SHOPIFY_ACCESS_TOKEN.
Cómo probarlo
cd /Users/user/rifai-agents && npx tsx agentes/marketing/merchant-exclude-vehicles.ts
Espera: lista de productos a excluir y "N/N productos excluidos del feed Google". Escribe en Shopify (metafields + tags). El re-crawl de Google quita el issue en 24–72h.
Si se rompe / recuperar
- Sin plist (acción puntual cuando aparecen estos productos).
- Nota: la lista de títulos prohibidos está hardcodeada; si entran nuevos productos-vehículo hay que ampliarla.
- Logs: stdout (redirigir a
/Users/user/rifai-agents/logs/merchant-exclude-vehicles.log).
Cómo replicarlo
- Lista de patrones de título prohibidos.
- Metafield
google.excluded_destination=["Shopping_ads"](con fallback) + tags identificadores. - Alternativa "reparar en vez de excluir": ver
merchant-final-cleanup.ts.