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 7 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)

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_network.

Allowed values
unlocked
other
ee
o2
three
vodafone
giffgaff
tesco mobile
virgin
orange
t-mobile

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 in question.

Allowed values
new
excellent
very good
good
fair
poor
broken

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.