{"version":1,"fields":[{"key":"id","group":"identity","label":"ID del ítem","source":"catalog","sourcePath":"products.id + products.variants.id","transform":"Una fila por variante visible: `<id de producto>-<id de variante>` de Tiendanube. Estable entre syncs y sin `:` (Google lo usa de separador).","needs":null,"openai":{"name":"item_id","requirement":"required","rule":"único y estable","keys":["item_id"]},"google":{"name":"id","requirement":"required","rule":"≤ 50 caracteres","keys":["id"]}},{"key":"group","group":"identity","label":"Grupo de variantes","source":"catalog","sourcePath":"products.id · products.name","transform":"Sólo si el producto tiene más de una variante visible: el id de producto agrupa a sus variantes (distinto del id de cada fila).","needs":null,"openai":{"name":"group_id","requirement":"conditional","rule":"+ listing_has_variations","keys":["group_id","listing_has_variations"]},"google":{"name":"item_group_id","requirement":"conditional","rule":"+ item_group_title","keys":["item_group_id","item_group_title"]}},{"key":"variant","group":"identity","label":"Opciones de la variante","source":"catalog","sourcePath":"products.variants.options","transform":"Las opciones de Tiendanube tal cual (`Color: Hueso`, `Talle: 36`).","needs":null,"openai":{"name":"variant_dict","requirement":"conditional","rule":null,"keys":["variant_dict"]},"google":{"name":"variant_option","requirement":"optional","rule":"≤ 30 pares nombre:valor","keys":["variant_option"]}},{"key":"gtin","group":"identity","label":"GTIN (código de barras)","source":"missing","sourcePath":"products.variants.barcode (no sincronizado)","transform":"Se mandaría tal cual, validando el dígito verificador.","needs":"Tiendanube guarda un código de barras por variante: sumarlo al sync (`variants.barcode`) y que el merchant lo cargue. Sin GTIN, Google pide `mpn` + `brand`.","openai":{"name":"gtin","requirement":"optional","rule":"8, 12, 13 o 14 dígitos","keys":["gtin"]},"google":{"name":"gtin","requirement":"recommended","rule":"GS1 válido","keys":["gtin"]}},{"key":"mpn","group":"identity","label":"MPN","source":"catalog","sourcePath":"products.variants.sku","transform":"El SKU de la variante. Es un MPN legítimo cuando la marca es la propia tienda (fabricante); para un revendedor hace falta el GTIN.","needs":null,"openai":{"name":"mpn","requirement":"optional","rule":null,"keys":["mpn"]},"google":{"name":"mpn","requirement":"conditional","rule":"si no hay GTIN · ≤ 70","keys":["mpn"]}},{"key":"title","group":"content","label":"Título","source":"catalog","sourcePath":"products.name + variants.options","transform":"El nombre sin mayúsculas gritadas y, si hay variantes, las opciones de esta (`Sábana 2 plazas - Hueso / 36`). Cortado en ≤ 150 por palabra.","needs":null,"openai":{"name":"title","requirement":"required","rule":"≤ 150 caracteres","keys":["title"]},"google":{"name":"title","requirement":"required","rule":"≤ 150 caracteres","keys":["title"]}},{"key":"description","group":"content","label":"Descripción","source":"llm","sourcePath":"content.products[id].answer","transform":"La respuesta corta de la PDP (≤ 150 palabras), escrita por IA sobre la ficha del merchant y validada; texto plano. Si no hay, la descripción de Tiendanube sin HTML.","needs":null,"openai":{"name":"description","requirement":"required","rule":"≤ 5.000, texto plano","keys":["description"]},"google":{"name":"description","requirement":"required","rule":"≤ 5.000, texto plano","keys":["description"]}},{"key":"brand","group":"content","label":"Marca","source":"catalog","sourcePath":"products.brand → stores.name","transform":"La marca de Tiendanube; si está vacía o es un placeholder (`SI`, `N/A`), el nombre de la tienda: casi todas venden marca propia.","needs":null,"openai":{"name":"brand","requirement":"required","rule":"una marca real","keys":["brand"]},"google":{"name":"brand","requirement":"required","rule":"≤ 70 caracteres","keys":["brand"]}},{"key":"condition","group":"content","label":"Condición","source":"derived","sourcePath":"política","transform":"Siempre `new`: las 14 tiendas venden productos nuevos.","needs":null,"openai":{"name":"condition","requirement":"optional","rule":null,"keys":["condition"]},"google":{"name":"condition","requirement":"optional","rule":"obligatorio sólo si es usado","keys":["condition"]}},{"key":"category","group":"content","label":"Categoría (taxonomía de Google)","source":"derived","sourcePath":"departamento + products.categories + products.name","transform":"Reglas por rubro sobre el nombre y las categorías del merchant → un nodo de la taxonomía de Google (2021-09-21). Google recibe el id; OpenAI, la ruta en inglés.","needs":null,"openai":{"name":"product_category","requirement":"optional","rule":"ruta con `>`","keys":["product_category"]},"google":{"name":"google_product_category","requirement":"optional","rule":"id de la taxonomía","keys":["google_product_category"]}},{"key":"productType","group":"content","label":"Tipo de producto (del merchant)","source":"catalog","sourcePath":"products.categories","transform":"Las categorías del merchant que describen el producto (sin promociones ni «Todos los productos»), unidas con `>`.","needs":null,"openai":null,"google":{"name":"product_type","requirement":"optional","rule":"≤ 750 caracteres","keys":["product_type"]}},{"key":"material","group":"content","label":"Material","source":"llm","sourcePath":"content.products[id].attributes (Material, Composición, Tejido)","transform":"El atributo que la IA extrajo de la ficha del merchant (nunca inventado: si la ficha no lo dice, no hay atributo).","needs":null,"openai":{"name":"material","requirement":"optional","rule":null,"keys":["material"]},"google":{"name":"material","requirement":"optional","rule":"≤ 200 caracteres","keys":["material"]}},{"key":"color","group":"content","label":"Color","source":"catalog","sourcePath":"products.variants.options[Color]","transform":"La opción `Color` de la variante.","needs":null,"openai":{"name":"color","requirement":"optional","rule":null,"keys":["color"]},"google":{"name":"color","requirement":"conditional","rule":"en indumentaria","keys":["color"]}},{"key":"size","group":"content","label":"Talle","source":"catalog","sourcePath":"products.variants.options[Talle|Número|Tamaño|Medida|Plazaje]","transform":"La opción de talle o medida de la variante.","needs":null,"openai":{"name":"size","requirement":"optional","rule":null,"keys":["size"]},"google":{"name":"size","requirement":"conditional","rule":"en indumentaria · ≤ 100","keys":["size"]}},{"key":"gender","group":"content","label":"Género","source":"derived","sourcePath":"products.categories + products.name","transform":"Sólo en indumentaria: `male`/`female`/`unisex` cuando el merchant lo dice en una categoría o en el nombre (`Hombre`, `Mujer`, `Unisex`); si no, no se manda.","needs":null,"openai":{"name":"gender","requirement":"optional","rule":null,"keys":["gender"]},"google":{"name":"gender","requirement":"conditional","rule":"en indumentaria","keys":["gender"]}},{"key":"adult","group":"content","label":"Contenido para adultos","source":"derived","sourcePath":"departamento","transform":"`yes` para el rubro Lencería y juguetes (+18). En OpenAI esos productos van con `is_eligible_search: false`: su política no los admite.","needs":null,"openai":null,"google":{"name":"adult","requirement":"conditional","rule":"obligatorio si es +18","keys":["adult"]}},{"key":"details","group":"content","label":"Características","source":"llm","sourcePath":"content.products[id].attributes","transform":"Los atributos que la IA extrajo de la ficha (material, medidas, cuidados…), como `Características:Nombre:Valor`.","needs":null,"openai":null,"google":{"name":"product_detail","requirement":"optional","rule":"≤ 100 · conversacional","keys":["product_detail"]}},{"key":"faq","group":"content","label":"Preguntas y respuestas","source":"llm","sourcePath":"content.products[id].faq","transform":"Las 3–5 preguntas frecuentes de la PDP, respondidas con la ficha del merchant.","needs":null,"openai":null,"google":{"name":"question_and_answer","requirement":"optional","rule":"≤ 30 · conversacional","keys":["question_and_answer"]}},{"key":"dimensions","group":"content","label":"Medidas y peso","source":"missing","sourcePath":"products.variants.{weight,width,height,depth} (no sincronizado)","transform":"Se mandarían como `dimensions` + `weight` (OpenAI) y `product_length/width/height/weight` (Google).","needs":"Tiendanube guarda peso y medidas por variante para cotizar envíos: sumarlos al sync.","openai":{"name":"dimensions + weight","requirement":"optional","rule":null,"keys":["dimensions","weight","item_weight_unit"]},"google":{"name":"product_weight + product_length…","requirement":"optional","rule":null,"keys":["product_weight","product_length","product_width","product_height"]}},{"key":"link","group":"media","label":"Link al producto","source":"derived","sourcePath":"stores.slug + products.handle","transform":"La PDP de Agentplace (`agentplace.crossup.ai/<tienda>/<handle>`): el dominio que reclamamos nosotros. En el feed de cada tienda (CrossUp) va la PDP del merchant en Tiendanube (`canonicalUrl`).","needs":null,"openai":{"name":"url","requirement":"required","rule":"https, pública","keys":["url"]},"google":{"name":"link","requirement":"required","rule":"en el dominio reclamado","keys":["link"]}},{"key":"image","group":"media","label":"Imagen principal","source":"catalog","sourcePath":"products.variants.imageUrl → products.images[0]","transform":"La foto de la variante o, si no tiene, la primera del producto, en el CDN de Tiendanube (1024 × 1024).","needs":null,"openai":{"name":"image_url","requirement":"required","rule":"JPEG o PNG","keys":["image_url"]},"google":{"name":"image_link","requirement":"required","rule":"≥ 500 × 500 px","keys":["image_link"]}},{"key":"images","group":"media","label":"Imágenes adicionales","source":"catalog","sourcePath":"products.images[1…]","transform":"El resto de la galería, sin repetir la principal, hasta 10.","needs":null,"openai":{"name":"additional_image_urls","requirement":"optional","rule":null,"keys":["additional_image_urls"]},"google":{"name":"additional_image_link","requirement":"optional","rule":"hasta 10","keys":["additional_image_link"]}},{"key":"price","group":"offer","label":"Precio","source":"catalog","sourcePath":"products.variants.price · stores.currency","transform":"El precio de lista de la variante en la moneda de la tienda, con punto decimal y sin separador de miles: `24999.00 ARS`.","needs":null,"openai":{"name":"price","requirement":"required","rule":"`79.99 USD`","keys":["price"]},"google":{"name":"price","requirement":"required","rule":"`15.00 USD`","keys":["price"]}},{"key":"salePrice","group":"offer","label":"Precio de oferta","source":"catalog","sourcePath":"products.variants.promotionalPrice","transform":"Sólo si la tienda tiene un precio promocional menor al de lista.","needs":null,"openai":{"name":"sale_price","requirement":"optional","rule":"< price","keys":["sale_price"]},"google":{"name":"sale_price","requirement":"optional","rule":null,"keys":["sale_price"]}},{"key":"availability","group":"offer","label":"Disponibilidad","source":"catalog","sourcePath":"products.variants.stock","transform":"`in_stock` si la variante tiene unidades o no lleva control de stock (`null`); `out_of_stock` si está en 0.","needs":null,"openai":{"name":"availability","requirement":"required","rule":"in_stock · out_of_stock · …","keys":["availability"]},"google":{"name":"availability","requirement":"required","rule":"in_stock · out_of_stock · …","keys":["availability"]}},{"key":"seller","group":"seller","label":"Vendedor","source":"store","sourcePath":"stores.name · stores.storeUrl","transform":"La tienda que vende y despacha, con su sitio. Agentplace no vende: la compra es en la tienda.","needs":null,"openai":{"name":"seller_name + seller_url","requirement":"required","rule":null,"keys":["seller_name","seller_url"]},"google":null},{"key":"searchable","group":"seller","label":"Elegible para búsqueda","source":"derived","sourcePath":"política + departamento","transform":"`true`: queremos que ChatGPT lo muestre. `false` para +18, que la política de OpenAI no admite.","needs":null,"openai":{"name":"is_eligible_search","requirement":"optional","rule":"default true","keys":["is_eligible_search"]},"google":null},{"key":"checkout","group":"seller","label":"Checkout en ChatGPT","source":"derived","sourcePath":"política","transform":"`false`: la compra, el pago y el envío son de cada tienda (ChatGPT manda al link). Activarlo pide ACP y las políticas de abajo.","needs":null,"openai":{"name":"is_eligible_checkout","requirement":"conditional","rule":"pide privacidad + TyC","keys":["is_eligible_checkout"]},"google":null},{"key":"policies","group":"seller","label":"Privacidad y términos de la tienda","source":"missing","sourcePath":"páginas de la tienda (no sincronizadas)","transform":"Las URLs de política de privacidad y términos de cada tienda.","needs":"Sólo hacen falta para checkout dentro de ChatGPT. Tiendanube no las expone por API: se piden en el onboarding.","openai":{"name":"seller_privacy_policy + seller_tos","requirement":"conditional","rule":null,"keys":["seller_privacy_policy","seller_tos"]},"google":null},{"key":"shipping","group":"seller","label":"Envío","source":"catalog","sourcePath":"products.freeShipping","transform":"Si el producto tiene envío gratis: costo 0 a Argentina. Si no, se omite (OpenAI lo lee como desconocido, no gratis).","needs":"Las tarifas de envío de la tienda: Tiendanube las cotiza por código postal en el checkout. Con una tabla por zona del merchant se llena para todos.","openai":{"name":"shipping_price","requirement":"optional","rule":null,"keys":["shipping_price"]},"google":{"name":"shipping","requirement":"optional","rule":"no obligatorio en AR","keys":["shipping"]}},{"key":"returns","group":"seller","label":"Devoluciones","source":"derived","sourcePath":"Ley 24.240, art. 34","transform":"Toda compra a distancia en Argentina se puede revocar en 10 días corridos: es el piso legal. Si la tienda ofrece más, se toma de su política.","needs":"La URL de la política de cambios y devoluciones de cada tienda (`return_policy`), que se pide en el onboarding.","openai":{"name":"accepts_returns + return_deadline_in_days","requirement":"optional","rule":null,"keys":["accepts_returns","return_deadline_in_days"]},"google":null},{"key":"reviews","group":"seller","label":"Reseñas","source":"missing","sourcePath":"—","transform":"Cantidad de reseñas y promedio de estrellas del producto.","needs":"Una fuente real de reseñas (la app de reseñas de cada tienda). Nunca se inventan.","openai":{"name":"review_count + star_rating","requirement":"optional","rule":null,"keys":["review_count","star_rating"]},"google":{"name":"product ratings (programa aparte)","requirement":"optional","rule":null,"keys":[]}},{"key":"market","group":"seller","label":"País de la tienda","source":"store","sourcePath":"stores.country","transform":"`AR`. OpenAI pide configurar el mercado: la carga estándar hoy es sólo para Estados Unidos.","needs":null,"openai":{"name":"store_country + target_countries","requirement":"optional","rule":"requiere habilitar el mercado","keys":["store_country","target_countries"]},"google":null},{"key":"related","group":"graph","label":"Productos relacionados","source":"storegraph","sourcePath":"storegraph/<tienda>.jsonl · aristas (from = este producto)","transform":"Las relaciones del Storegraph con su tipo de #139 (complementario → `often_bought_with`, sustituto → `substitute`, set y pack → `part_of_set`), primero las curadas, después las fuertes; hasta 30, apuntando a la variante por defecto del vecino.","needs":null,"openai":{"name":"related_product_id + relationship_type","requirement":"retired","rule":"retirado entre el 28-ago y el 13-sep-2026","keys":["related_product_id","relationship_type"]},"google":{"name":"related_product","requirement":"optional","rule":"≤ 30 · conversacional (AI Mode)","keys":["related_product"]}}]}
