Feeds  ›  Tablets format

Tablets feed format

The TabletsParser handles any feed whose Category column resolves to the Tablets category — non-iPad tablets such as Samsung Galaxy Tab, Microsoft Surface, Lenovo Tab, Huawei MatePad, Amazon Fire Tablet, and Kindle. It inherits every shared feed rule (HTTPS, Device ID cap, status enforcement, 50p rounding, etc.) and adds the category-specific column schema and whitelists documented on this page.

Apple iPads are not part of this category. They are handled by the iPad parser, which only accepts rows whose Category is ipad / ipads.

Column schema

The header row is case-sensitive and column order is flexible.

Required columns

ColumnRule
Device IDUnique per marchant, 1–128 characters. Duplicates within a single CSV are rejected.
BrandNon-empty.
ModelNon-empty. Becomes the product title.
CategoryMust match one of the Category aliases below.
ConditionMust map to one of the 4 canonical conditions (alias map below).
NetworkWhitelisted carrier for cellular tablets, or blank / none for Wi-Fi-only tablets.
StorageNormalised to NNGB / NNTB uppercase.
PriceNumeric, greater than 0, rounded to the nearest 50p.
Statusactive or inactive.

Optional columns

ColumnNotes
ImageURL to a product image. HTTPS recommended.
Last UpdatedISO-8601 timestamp. Informational only today.

Accepted Category values

The parser matches case-insensitively on the following aliases. Anything else is rejected with malformed.

CanonicalAccepted aliases
tabletstablet, tablets, tab

Networks (whitelist + optional)

Tablets come in two flavours and the Tablets parser handles them the same way as the iPad parser:

  • Cellular tablets — send the carrier as the Network value. Matched exactly (case-insensitive) against the whitelist below. Anything else is rejected with invalid_network.
  • Wi-Fi-only tablets — leave the Network cell blank, or write none. The row is then stored with no network attribute at all. i.e. Wi-Fi tablet variants, which carry no network.
Allowed values for cellular tablets
other
ee
o2
three
vodafone
giffgaff
tesco mobile
virgin
orange
t-mobile

Don't send unlocked for Wi-Fi-only tablets — that's a cellular slug and would force the row to map to a cellular system variant. Instead leave the column blank or use none.

Vendor-supplied recognised "no network" values are empty cell and none (case-insensitive). Anything else — including n/a, wifi, - — is treated as a network value and rejected if not in the whitelist.

Conditions (canonical variants)

The parser maps the Condition cell to one of the four canonical PriceFirst conditions — new, good, fair, broken. Partner terminology varies, so the accepted aliases below are normalised case-insensitively (whitespace and hyphens are ignored, so EXCELLENT, Brand-New and non working all resolve). Anything not on the map — including a blank cell — rejects the row with invalid_condition. The row also stays Unmapped if the catalogue does not carry that canonical condition for the product.

Canonical (stored)Accepted partner values
newnew, brand new
goodgood, working, used, excellent, flawless
fairfair, poor, moderate, average
brokenbroken, cracked, faulty, non working, not working, damaged

Storage

  • Normalised to uppercase (128gb → 128GB).
  • Plain numbers get GB appended.
  • Use TB explicitly for larger values (1TB, 2TB).

Sample CSV

The first two rows are Wi-Fi-only tablets (note the empty Network cell on row 1 and none on row 2 — both are accepted). Row 3 is a cellular tablet on EE.

Device ID,Brand,Model,Category,Condition,Network,Storage,Price,Image,Status,Last Updated
PF-TAB-0001,Samsung,Galaxy Tab S9 Wi-Fi,Tab,Excellent,,128GB,450.00,,active,2025-03-24T11:40:44Z
PF-TAB-0002,Microsoft,Surface Pro 9,Tablet,Excellent,none,256GB,520.00,,active,2025-03-24T11:40:44Z
PF-TAB-0003,Samsung,Galaxy Tab S9 5G,Tablets,Good,EE,256GB,680.50,,active,2025-03-24T11:40:44Z

Attribute normalisation (what's stored)

The stored variant attributes drive mapping. For Wi-Fi-only tablets, network is not present at all so the variant signature is condition + storage only — which is exactly what's needed to match a Wi-Fi system variant.

AttributeSource columnNormalisation
storageStorageUppercase, GB appended when the value is a plain number.
networkNetworkCarrier slug from the whitelist for cellular tablets. Omitted entirely when blank or none.
conditionConditionMapped to a canonical condition and stored lowercased (excellent → good).

Example variant signatures

The mapping job builds a sorted key:value|key:value signature for each row. Aliases are canonicalised first, so a CSV Condition of Excellent is stored as good. For a Wi-Fi tablet row with no network:

condition:good|storage:128gb

This matches a system variant whose attributes are [{name: "condition", value: "Good"}, {name: "storage", value: "128GB"}] — i.e. a Wi-Fi-only tablet variant. A cellular row produces:

condition:good|network:ee|storage:128gb

and maps to a cellular system variant carrying the network attribute.