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
| Column | Rule |
|---|---|
| Device ID | Unique per marchant, 1–128 characters. Duplicates within a single CSV are rejected. |
| Brand | Non-empty. Apple is the only brand today. |
| Model | Non-empty. Becomes the product title. |
| Category | Must match one of the Category aliases below. |
| Condition | Must resolve to one of the 7 base conditions (whitelist below). |
| Network | Whitelisted carrier for cellular iPads, or blank / none for Wi-Fi-only iPads. |
| Storage | Normalised to NNGB / NNTB uppercase. |
| Price | Numeric, greater than 0, rounded to the nearest 50p. |
| Status | active or inactive. |
Optional columns
| Column | Notes |
|---|---|
| Image | URL to a product image. HTTPS recommended. |
| Last Updated | ISO-8601 timestamp. Informational only today. |
Accepted Category values
The parser matches case-insensitively on the following aliases. Anything else is rejected with malformed.
| Canonical | Accepted aliases |
|---|---|
| ipad | ipad, 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
Networkvalue. Matched exactly (case-insensitive) against the whitelist below. Anything else is rejected withinvalid_network. - Wi-Fi-only iPads — leave the
Networkcell blank, or writenone. The row is then stored with nonetworkattribute at all. The mapping job will only try to match it against system variants whose attributes arestorage + 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
GBappended. - Use
TBexplicitly 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:44ZAttribute 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.
| Attribute | Source column | Normalisation |
|---|---|---|
| storage | Storage | Uppercase, GB appended when the value is a plain number. |
| network | Network | Carrier slug from the whitelist for cellular iPads. Omitted entirely when blank or none. |
| condition | Condition | Lowercased 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.