TC
The Comparator
Academy Wiki / Technical Guide

Prepare your product feed

A comprehensive guide on structuring your product data, required fields, naming conventions, and validation rules for The Comparator.

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
Note

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)
Important

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 USD is 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.
Warning

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 (isComboListing filter) 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 (gtin or mpn) 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