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 map to one of the 4 canonical conditions (alias map 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 |
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. 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 (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 |
|---|---|
| new | new, brand new |
| good | good, working, used, excellent, flawless |
| fair | fair, poor, moderate, average |
| broken | broken, cracked, faulty, non working, not working, damaged |
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 | Mapped 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 iPad 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 PriceFirst Wi-Fi-only iPad variant. A cellular row produces:
condition:good|network:ee|storage:128gb
and maps to a cellular system variant carrying the network attribute.
Related categories
Non-iPad tablets (Galaxy Tab, Surface, Lenovo Tab, …) are handled by the Tablets parser. They will all continue to share the core feed rules — see Recycling Feeds.