Feeds  ›  iPad format

iPad feed format

The IPadParser handles any feed whose Category column resolves to the iPad category. 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.

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. Apple is the only brand today.
ModelNon-empty. Becomes the product title.
CategoryMust match one of the Category aliases below.
ConditionMust resolve to one of the 7 base conditions (whitelist below).
NetworkWhitelisted carrier for cellular iPads, or blank / none for Wi-Fi-only iPads.
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
ipadipad, ipads, tablet

Networks (whitelist + optional)

iPads come in two flavours and the iPad parser handles them differently from the Mobile Phones parser:

  • Cellular iPads — 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 iPads — leave the Network cell blank, or write none. The row is then stored with no network attribute at all. The mapping job will only try to match it against system variants whose attributes are storage + condition — i.e. PriceFirst's Wi-Fi iPad variants, which carry no network.
Allowed values for cellular iPads
other
ee
o2
three
vodafone
giffgaff
tesco mobile
virgin
orange
t-mobile

Don't send unlocked for Wi-Fi-only iPads — 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 (whitelist)

Values are case-insensitive but matched exactly — there is no alias map. Send one of the strings below verbatim or the row is rejected with invalid_condition. The row also stays Unmapped if the catalogue does not carry that condition for the product.

Allowed values
new
excellent
very good
good
fair
poor
broken

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 iPads (note the empty Network cell on row 1 and none on row 2 — both are accepted). Row 3 is a cellular iPad on EE.

Device ID,Brand,Model,Category,Condition,Network,Storage,Price,Image,Status,Last Updated
PF-IPAD-0001,Apple,iPad Air 11in (M2),iPad,Excellent,,128GB,450.00,,active,2025-03-24T11:40:44Z
PF-IPAD-0002,Apple,iPad Air 11in (M2),iPad,Excellent,none,256GB,520.00,,active,2025-03-24T11:40:44Z
PF-IPAD-0003,Apple,iPad Pro 12.9in,iPad,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 iPads, 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 iPads. Omitted entirely when blank or none.
conditionConditionLowercased and resolved to one of the base conditions.

Example variant signatures

The mapping job builds a sorted key:value|key:value signature for each row. For a Wi-Fi iPad row with no network:

condition:excellent|storage:128gb

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

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

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

Future categories

Watches, consoles, laptops and other hardware will each get their own page with their own column spec (for example, a Watches feed may use Case Size and Band Colour instead of Storage). They will all continue to share the core feed rules — see Recycling Feeds.