Feeds  ›  Mobile Phones format

Mobile Phones feed format

The MobilePhonesParser handles any feed whose Category column resolves to the Mobile Phones 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 fail the whole feed if missing; optional columns can be omitted without breaking ingest.

Required columns

ColumnRule
Device IDUnique per marchant, 1–128 characters. Duplicates within a single CSV are rejected.
BrandNon-empty. Matched against the catalogue (Apple, Samsung, …).
ModelNon-empty. Becomes the product title.
CategoryMust match one of the Category aliases below.
ConditionMust resolve to one of the 5 base conditions (whitelist below).
NetworkMust be on the whitelist below.
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
mobile phonesmobile phone, smartphone, smartphones, phone, phones, cellular

Networks (whitelist)

Network values are case-insensitive. Aliases are resolved to the canonical slug on ingest. Anything not in this table is rejected with invalid_network.

CanonicalAccepted aliases
unlockedunlocked
otherother
eeee
o2o2
threethree, 3
vodafonevodafone
giffgaffgiffgaff
tesco mobiletesco, tesco mobile
virginvirgin, virgin mobile, virgin media
orangeorange
t-mobilet-mobile, tmobile

Conditions (5 base)

Every row must resolve to one of the five base conditions. Supply your own label in the CSV — PriceFirst maps it via the alias table. Rows that don't resolve are rejected with invalid_condition.

CanonicalAccepted aliases
newnew, brand new, pristine, mint
excellentexcellent, very good, like new
goodgood, fair, average
poorpoor, faulty, damaged
brokenbroken, beyond economic repair, ber

Storage

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

Sample CSV

Device ID,Brand,Model,Category,Condition,Network,Storage,Price,Image,Status,Last Updated
PF-MOB-0001,Apple,iPhone 16e,Mobile Phone,Excellent,Unlocked,128GB,350.00,,active,2025-03-24T11:40:44Z
PF-MOB-0002,Apple,iPhone 16e,Mobile Phone,Excellent,Unlocked,256GB,410.00,,active,2025-03-24T11:40:44Z
PF-MOB-0003,Samsung,Galaxy S24,Mobile Phone,Good,EE,256GB,285.50,,active,2025-03-24T11:40:44Z

Attribute normalisation (what's stored)

Each accepted row is stored with the following normalised attributes. The marchant's raw labels are not retained beyond the marchants price record.

AttributeSource columnNormalisation
storageStorageUppercase, GB appended when the value is a plain number.
networkNetworkLowercased and resolved against the network whitelist above.
conditionConditionLowercased and resolved to one of the 5 base conditions.

Always validate your Mobile Phones feed with the Feed Validator before enabling recurring resync. It runs this parser in dry-run mode and returns per-row errors with line numbers and codes.