Prepara tu feed de productos
Guía exhaustiva sobre cómo estructurar los datos de tus productos, campos obligatorios, convenciones de nomenclatura y reglas de validación para The Comparator.
Prepara tu feed de productos
Esta guía explica cómo dar formato a los datos de tus productos para The Comparator. Un feed limpio y preciso garantiza que tus ofertas se emparejen correctamente con los componentes de hardware en nuestra base de datos normalizada.
1. Qué es un feed de productos
Un feed de productos es un archivo de datos estructurado que contiene el inventario actual, precios y disponibilidad de stock de tu tienda.
- Un registro = una oferta: Cada fila u objeto representa una variante específica de un componente de hardware.
- Identificadores estables: El SKU o ID de tus productos no debe cambiar entre actualizaciones del feed. Esto permite a nuestro sistema rastrear el historial de precios y disponibilidad sin generar registros duplicados.
- Independencia del Motor de Valor: Enviar un feed registra tu tienda en nuestros bloques de comparación de “Dónde Comprar”. No altera la Puntuación de Valor ni la posición orgánica de ningún producto, las cuales se calculan de manera estrictamente algorítmica.
2. Métodos de envío compatibles
Actualmente, la integración de una nueva tienda requiere un proceso de incorporación asistida. Proporcionas la URL o el archivo del feed y nuestro equipo de integración configura el mapeo de importación.
| Método de Envío | ¿Compatible? | Formato | Autenticación | Tamaño Máximo | Frecuencia de Actualización | Notificación de Errores |
|---|---|---|---|---|---|---|
| URL Pública de Feed | Sí (Preferido) | CSV / JSON / XML | HTTP Basic Auth o Ninguna | 50 MB | Programada (Diaria/Horaria) | Informe de Mapeo por Email |
| XML Google Merchant | Sí | RSS 2.0 XML | Ninguna | 50 MB | Programada | Informe de Mapeo por Email |
| Red de Afiliación | Sí | Feed de Red | Autenticación de Red | Según la Red | Diaria | Informe de Mapeo por Email |
| API Autoservicio | Planificada | REST / Webhooks | Bearer Token | N/A | Tiempo Real | Respuesta de API |
Nota Operativa: Si tu feed requiere autenticación o autorización de IP, incluye los detalles en tu solicitud en /retailers/apply/.
3. Referencia exacta de campos
Nuestro pipeline de importación acepta los siguientes campos. Asegúrate de que las columnas de tu feed o las claves JSON correspondan con estas definiciones.
| Campo | Estado Obligatorio | Tipo de Dato | Ejemplo | Regla de Validación | Uso Principal |
|---|---|---|---|---|---|
id |
Obligatorio | String | GPU-4070S-01 |
No vacío, único por artículo, máx. 64 caracteres | Seguimiento de SKU e historial de precios |
title |
Obligatorio | String | ASUS TUF Gaming GeForce RTX 4070 Ti SUPER OC 16GB |
Debe contener marca y modelo de hardware | Mapeo de modelo y visualización en interfaz |
link |
Obligatorio | URL | https://example.com/gpu-4070 |
URL HTTP/HTTPS válida, accesible sin inicio de sesión | Redirección de compradores a la compra |
price |
Obligatorio | Decimal | 599.99 |
Número positivo, 2 decimales | Cálculo de valor y visualización |
currency |
Obligatorio | String | USD |
Debe ser USD (mercado estadounidense activo) |
Normalización de precios |
availability |
Obligatorio | String | in_stock |
Debe coincidir con los estados de stock aceptados | Filtrado de ofertas activas |
condition |
Obligatorio | String | New |
New, Refurbished o Used |
Agrupación en el Motor de Valor |
brand |
Obligatorio | String | ASUS |
Nombre de fabricante no vacío | Identificación por Hardware Fingerprinting |
gtin |
Condicionalmente Obligatorio | String | 4711387450889 |
Dígitos válidos EAN/UPC (12-14 dígitos) | Emparejamiento exacto de producto |
mpn |
Condicionalmente Obligatorio | String | 90YV0J80-M0NA00 |
Número de pieza exacto del fabricante | Emparejamiento exacto de producto |
image_link |
Recomendado | URL | https://example.com/img.jpg |
URL de imagen directa válida (HTTPS) | Elementos visuales de respaldo |
shipping |
Opcional | Decimal | 9.99 |
Decimal no negativo | Costo Total de Propiedad (TCO) |
Requisito de Identificadores: Debes proporcionar un gtin o un mpn válido (o ambos) para un emparejamiento fiable. Los feeds basados únicamente en títulos tienen una tasa de rechazo un 35% mayor por ambigüedad.
4. Reglas para IDs de producto estables
Tu campo id es la clave principal que vincula tu oferta con nuestra base de datos.
- No cambies el ID cuando cambie el precio o el estado de stock de un producto.
- No reutilices un ID antiguo para un modelo de hardware diferente.
- No uses números de fila ni generes UUIDs aleatorios en cada exportación.
- Caracteres permitidos: Alfanuméricos, guiones y guiones bajos (
[A-Za-z0-9_-]). Máximo 64 caracteres.
5. Títulos de productos de hardware
El emparejamiento de hardware recurre al análisis de títulos cuando no se dispone de GTIN o MPN. Redacta títulos técnicos y precisos en lugar de eslóganes publicitarios.
GPU (Tarjetas Gráficas)
Incluye ensamblador (AIB), modelo exacto del chip GPU, capacidad de VRAM y sufijos (Ti, SUPER, XT, XTX).
- Correcto:
ASUS TUF Gaming GeForce RTX 4070 Ti SUPER OC 16GB - Incorrecto:
Increíble Tarjeta Gráfica Gamer RTX 4070 - ¡Mejor Oferta!
CPU (Procesadores)
Incluye Marca, número exacto de modelo y sufijos (K, KF, F, X, X3D).
- Correcto:
AMD Ryzen 7 7800X3D Boxed - Incorrecto:
Procesador Rápido AMD de 8 Núcleos para PC
SSD (Discos de Estado Sólido)
Incluye Marca, Serie/Modelo, Capacidad, Factor de Forma e Interfaz.
- Correcto:
Samsung 990 PRO 2TB NVMe M.2 PCIe 4.0 SSD - Incorrecto:
Disco Duro Interno Ultrarrápido de 2TB
RAM (Memoria)
Incluye Marca, Serie, Capacidad Total, Número de Módulos, Generación y Velocidad.
- Correcto:
G.SKILL Trident Z5 RGB 32GB (2x16GB) DDR5 6000MHz CL30 - Incorrecto:
Kit de Memoria RAM de Alta Velocidad de 32GB
Placas Base
Incluye Marca, Modelo, Chipset, Socket y revisión de conectividad Wi-Fi.
- Correcto:
MSI MAG B650 TOMAHAWK WIFI ATX AM5 Motherboard - Incorrecto:
Placa Base Gamer MSI AM5
6. Identificadores de producto (GTIN, MPN, Marca)
- GTIN (EAN / UPC): Deben ser identificadores GS1 válidos. No introduzcas SKUs internos en el campo GTIN.
- MPN: Incluye el número de parte exacto del fabricante (ej.
100-100000910WOF). No elimines guiones ni sufijos. - Marca: Nombre canónico del fabricante (ej.
ASUS,Gigabyte,MSI,AMD,Intel,NVIDIA,Western Digital).
7. Precio y moneda
- Formato: Número decimal simple sin símbolos de moneda (ej.
599.99, no$599.99). - Moneda: Actualmente solo se admite
USD. - Coincidencia con la Página de Destino: El precio en el feed debe coincidir con el precio mostrado en tu página de producto. Los precios ocultos condicionados a cupones en el checkout están prohibidos.
8. Mapeo de disponibilidad
Normalizamos la disponibilidad de tu tienda en estados internos estandarizados:
| Valor en el Feed | Estado Interno Normalizado | ¿Se Publica en el Sitio? | Notas |
|---|---|---|---|
in_stock, available, instock |
in_stock |
Sí | Visible en la tabla de comparación activa. |
out_of_stock, sold_out, unavailable |
out_of_stock |
No | Oculto de la vista por defecto (archivado). |
preorder, backorder |
preorder |
No | Pausado temporalmente hasta la llegada de stock. |
9. Estándares de condición
The Comparator clasifica las ofertas en tres categorías de condición:
New: Producto nuevo a estrenar, precintado de fábrica con garantía total del fabricante.Refurbished: Reacondicionado por el fabricante o la tienda. Debe indicarse explícitamente.Used: Producto de segunda mano o usado.
No etiquetes artículos reacondicionados o usados como New. El etiquetado incorrecto conlleva la suspensión permanente de la tienda.
10. Requisitos de URLs de producto
- Deben dirigir directamente a la página individual del producto (no a páginas de búsqueda o categorías).
- Deben ser accesibles públicamente sin inicio de sesión, cookies obligatorias ni bloqueos por captcha.
- Deben utilizar URLs HTTPS canónicas y limpias.
11. Requisitos de URLs de imágenes
- URL directa al archivo de imagen (
.jpg,.png,.webp) mediante HTTPS. - No deben dirigir a visores HTML ni requerir autenticación.
12. Variantes, kits y paquetes
- Kits de RAM y SSDs: Indica la capacidad total exacta y el desglose de módulos (ej.
32GB (2x16GB)). - Combos de Componentes y PCs Premontados: NO COMPATIBLES. Nuestro pipeline (
isComboListing) rechaza automáticamente combos de CPU+Placa, cajas y PCs completos. Envía únicamente componentes individuales.
13. Políticas de actualización y eliminación
- Intervalo de Sincronización: Sincronización estándar cada 24 horas. Cuentas prioritarias sincronizan cada hora.
- Filas Faltantes: Si un SKU de producto desaparece en 2 descargas consecutivas, se marca como
out_of_stock. - Feeds Inactivos: Si la descarga de un feed falla durante más de 48 horas, todas las ofertas de la tienda se ocultan temporalmente hasta restablecer el servicio.
14. Etapas del proceso de validación
Nuestro sistema valida los datos a través de 3 niveles de severidad:
[Descarga del Feed] ➔ [Procesamiento] ➔ [Validación de Esquema] ➔ [Mapeo de Hardware] ➔ [Publicación]
- 🔴 Error (Bloqueante): SKU ausente, precio malformado o JSON/XML ilegible. La oferta es rechazada.
- 🟡 Advertencia (No bloqueante): Falta enlace de imagen o GTIN. La oferta se publica, pero se marca para revisión manual.
- 🔵 Información: Sugerencias para optimizar el formato de los títulos.
15. Solución de errores comunes
| Código de Error | Descripción del Problema | Ejemplo Incorrecto | Ejemplo Corregido | ¿Bloqueante? |
|---|---|---|---|---|
ERR_MISSING_ID |
El campo SKU está vacío | "" |
"GPU-4070-01" |
🔴 Sí |
ERR_INVALID_PRICE |
Símbolo de moneda en el precio | "$599.99" |
599.99 |
🔴 Sí |
ERR_UNSUPPORTED_CURRENCY |
La moneda no es USD | "EUR" |
"USD" |
🔴 Sí |
ERR_AMBIGUOUS_TITLE |
El título carece de datos del modelo | "Tarjeta NVIDIA RTX" |
"ASUS RTX 4070 SUPER 12GB" |
🔴 Sí |
ERR_COMBO_REJECTED |
Combo de componentes detectado | "Combo Ryzen 7 + B650" |
Excluir del feed | 🔴 Sí |
WARN_MISSING_GTIN |
Sin GTIN ni MPN proporcionado | gtin: "" |
gtin: "4711387450889" |
🟡 No |
16. Lista de comprobación previa al envío
- Los IDs de producto (SKUs) son estables, únicos y no están vacíos.
- Los precios son números decimales sin símbolos como
$. - La moneda está configurada explícitamente en
USD. - La disponibilidad de stock es precisa (
in_stock/out_of_stock). - Los títulos contienen especificaciones exactas (VRAM, Modelo, Sufijos).
- Se proporciona al menos un identificador (
gtinompn) por fila. - Se excluyen combos y equipos premontados.
- Las URLs de producto abren directamente sin autenticación.
17. Archivos de ejemplo listos para usar
Descarga nuestros feeds de muestra validados para comprobar tu configuración:
- 📄 Descargar Feed CSV de Ejemplo
- 📄 Descargar Feed JSON de Ejemplo
- 📄 Descargar Feed XML de Google Merchant de Ejemplo
Puedes validar tus feeds de muestra localmente ejecutando:
node scripts/test_sample_feeds.js
Prepare your product feed
This guide explains how to format your product data for The Comparator. A clean, accurate feed ensures that your offers are mapped to the correct hardware components in our normalized database.
1. What a product feed is
A product feed is a structured data file containing your store’s current inventory, prices, and stock availability.
- One record = one offer: Each row or object represents one specific variant of a hardware component.
- Stable IDs: Your product SKU/ID must not change between feed updates. This allows our system to track price history and availability without creating duplicate records.
- Value Engine independence: Submitting a feed registers your store in our “Where to Buy” comparison blocks. It does not alter the Value Score or organic ranking of any product, which is calculated strictly algorithmically.
2. Supported submission methods
Currently, integrating a new retailer requires an assisted onboarding process. You provide the feed URL or file, and our integration team configures the import mapping.
| Submission Method | Supported? | Format | Authentication | Max File Size | Refresh Frequency | Error Notification |
|---|---|---|---|---|---|---|
| Public Feed URL | Yes (Preferred) | CSV / JSON / XML | HTTP Basic Auth or None | 50 MB | Scheduled (Daily/Hourly) | Email Mapping Report |
| Google Merchant XML | Yes | RSS 2.0 XML | None | 50 MB | Scheduled | Email Mapping Report |
| Affiliate Network | Yes | Network Feed | Network Auth | Dependent on Network | Daily | Email Mapping Report |
| Self-Service API | Planned | REST / Webhooks | Bearer Token | N/A | Real-time | API Response |
Operational Note: If your feed requires authentication or IP allowlisting, provide the details during your application at /retailers/apply/.
3. Exact field reference
Our import pipeline accepts the following fields. Ensure your feed columns or JSON keys map to these definitions.
| Field | Required Status | Data Type | Example | Validation Rule | Used For |
|---|---|---|---|---|---|
id |
Required | String | GPU-4070S-01 |
Non-empty, unique per item, max 64 chars | Tracking SKU & price history |
title |
Required | String | ASUS TUF Gaming GeForce RTX 4070 Ti SUPER OC 16GB |
Must contain brand & hardware model | Model matching & UI display |
link |
Required | URL | https://example.com/gpu-4070 |
Valid HTTP/HTTPS URL, reachable without login | Directing buyers to purchase |
price |
Required | Decimal | 599.99 |
Positive number, 2 decimal places | Value calculation & display |
currency |
Required | String | USD |
Must be USD (US market active) |
Price normalization |
availability |
Required | String | in_stock |
Must match accepted stock strings | Filtering active offers |
condition |
Required | String | New |
New, Refurbished, or Used |
Value Engine grouping |
brand |
Required | String | ASUS |
Non-empty manufacturer name | Hardware Fingerprinting |
gtin |
Conditionally Required | String | 4711387450889 |
Valid EAN/UPC digits (12-14 digits) | Exact product matching |
mpn |
Conditionally Required | String | 90YV0J80-M0NA00 |
Exact Manufacturer Part Number | Exact product matching |
image_link |
Recommended | URL | https://example.com/img.jpg |
Valid direct image URL (HTTPS) | Fallback UI visuals |
shipping |
Optional | Decimal | 9.99 |
Non-negative decimal | Total Cost of Ownership (TCO) |
Identifier Requirement: You must provide either a valid gtin or an mpn (or both) for reliable hardware matching. Feeds relying solely on titles have a 35% higher rejection rate due to ambiguity.
4. Stable product ID rules
Your id field is the primary key linking your offer to our database.
- Do not change the ID when a product’s price or stock status updates.
- Do not reuse an old ID for a different hardware model.
- Do not use row numbers or generate random UUIDs on every export.
- Allowed characters: Alphanumeric characters, hyphens, underscores (
[A-Za-z0-9_-]). Max 64 characters.
5. Hardware product titles
Hardware matching relies on title parsing when GTIN/MPN are missing. Write clear, technical titles rather than marketing slogans.
GPU (Graphics Cards)
Include Board Partner, exact GPU chip model, VRAM capacity, and suffixes (Ti, SUPER, XT, XTX).
- Good:
ASUS TUF Gaming GeForce RTX 4070 Ti SUPER OC 16GB - Poor:
Awesome Gaming Graphics Card RTX 4070 - Best Deal!
CPU (Processors)
Include Brand, exact model number, and suffixes (K, KF, F, X, X3D).
- Good:
AMD Ryzen 7 7800X3D Boxed - Poor:
Fast 8-Core AMD Processor for PC
SSD (Solid State Drives)
Include Brand, Series model, Capacity, Form Factor, and Interface.
- Good:
Samsung 990 PRO 2TB NVMe M.2 PCIe 4.0 SSD - Poor:
Super Fast 2TB Internal Hard Drive
RAM (Memory)
Include Brand, Series, Total Capacity, Module Count, Generation, and Speed.
- Good:
G.SKILL Trident Z5 RGB 32GB (2x16GB) DDR5 6000MHz CL30 - Poor:
32GB High Speed RAM Kit
Motherboards
Include Brand, Model, Chipset, Socket, and Wi-Fi revision.
- Good:
MSI MAG B650 TOMAHAWK WIFI ATX AM5 Motherboard - Poor:
MSI AM5 Gaming Mainboard
6. Product identifiers (GTIN, MPN, Brand)
- GTIN (EAN / UPC): Must be valid GS1 GTINs. Do not put internal SKUs into the GTIN field.
- MPN: Include exact manufacturer part numbers (e.g.,
100-100000910WOF). Do not strip hyphens or trailing suffixes. - Brand: Canonical manufacturer name (e.g.,
ASUS,Gigabyte,MSI,AMD,Intel,NVIDIA,Western Digital).
7. Price and currency
- Formatting: Plain decimal number without currency symbols (e.g.,
599.99, not$599.99). - Currency: Currently, only
USDis supported. - Landing Page Match: The price in the feed must match the price on your product page. Hidden prices unlocked only via checkout promo codes are prohibited.
8. Availability mapping
We normalize store availability into standardized internal states:
| Retailer Feed Value | Normalized Internal State | Published on Site? | Notes |
|---|---|---|---|
in_stock, available, instock |
in_stock |
Yes | Displayed in active comparison table. |
out_of_stock, sold_out, unavailable |
out_of_stock |
No | Hidden from default view (archived). |
preorder, backorder |
preorder |
No | Temporarily held until stock arrives. |
9. Condition standards
The Comparator categorizes offers into three distinct condition buckets:
New: Factory sealed, brand new item with full manufacturer warranty.Refurbished: Factory or seller refurbished. Must be explicitly flagged.Used: Second-hand or pre-owned item.
Do not list refurbished or used items as New. Mislabeled conditions result in permanent store suspension.
10. Product URL requirements
- Must lead directly to the individual product page (no search results or category pages).
- Must be publicly accessible without login, cookies, or captcha blocks.
- Must use clean, canonical HTTPS URLs.
11. Image URL requirements
- Direct image file URL (
.jpg,.png,.webp) over HTTPS. - Must not lead to HTML viewer pages or require authentication.
12. Variants, kits and bundles
- RAM Kits & SSDs: List exact total capacity and module breakdown (e.g.,
32GB (2x16GB)). - Component Bundles & Pre-built PCs: UNSUPPORTED. Our matching pipeline (
isComboListingfilter) automatically rejects CPU+Motherboard combos, PC cases, and pre-built systems. Submit individual components only.
13. Refresh and deletion semantics
- Sync Interval: Default sync occurs every 24 hours. Priority accounts sync hourly.
- Missing Rows: If a product SKU is missing from 2 consecutive feed fetches, it is marked
out_of_stock. - Stale Feeds: If a feed fetch fails for >48 hours, all offers from the store are temporarily hidden until the feed recovers.
14. Validation process stages
Our import pipeline validates data through 3 severity levels:
[Feed Retrieval] ➔ [Parsing] ➔ [Schema Validation] ➔ [Hardware Matching] ➔ [Publication]
- 🔴 Error (Blocking): Missing SKU, malformed price, or unparseable XML/JSON. Offer is rejected.
- 🟡 Warning (Non-blocking): Missing image link or missing GTIN. Offer is published, but flagged for manual review.
- 🔵 Info: Advice on improving title formatting.
15. Troubleshooting common errors
| Error Code | Issue Description | Bad Feed Example | Fixed Example | Blocking? |
|---|---|---|---|---|
ERR_MISSING_ID |
SKU field is empty | "" |
"GPU-4070-01" |
🔴 Yes |
ERR_INVALID_PRICE |
Currency symbol in price | "$599.99" |
599.99 |
🔴 Yes |
ERR_UNSUPPORTED_CURRENCY |
Currency is not USD | "EUR" |
"USD" |
🔴 Yes |
ERR_AMBIGUOUS_TITLE |
Title lacks model info | "NVIDIA RTX Card" |
"ASUS RTX 4070 SUPER 12GB" |
🔴 Yes |
ERR_COMBO_REJECTED |
Component bundle detected | "Ryzen 7 + B650 Bundle" |
Exclude from feed | 🔴 Yes |
WARN_MISSING_GTIN |
No GTIN or MPN provided | gtin: "" |
gtin: "4711387450889" |
🟡 No |
16. Pre-submission checklist
- Product IDs (SKUs) are stable, non-empty, and unique.
- Prices parse cleanly as decimals without
$symbols. - Currency is explicitly set to
USD. - Stock availability is accurate (
in_stock/out_of_stock). - Product titles contain exact hardware specs (VRAM, Model, Suffixes).
- At least one identifier (
gtinormpn) is provided per row. - Bundles and pre-built PCs are excluded.
- Product URLs open directly without authentication.
17. Working sample files
Download our validated sample feeds to test your export configuration:
You can validate your sample feeds locally using our validation command:
node scripts/test_sample_feeds.js