Delivering content

Recipes

Complete model sets you can build as they are. Each one has been shaped around what a retail team actually needs to publish.

Product catalogue

Three models working together. Category groups things, Product holds the detail, and Collection lets merchandisers group products across categories for a seasonal edit.

Category

API slug: category

text

Name required

text

Slug required

textarea

Description

media

Banner image

relation

Parent category

For nested navigation

number

Sort order

Product

API slug: product

text

Name required

text

SKU required

text

Slug required

richtext

Description

textarea

Short description

number

RRP

media_multiple

Gallery

media

Size guide

relation

Category

relation_multiple

Related products

boolean

Featured

date

Launch date

Collection

API slug: collection

text

Name required

"Autumn essentials"

text

Slug required

richtext

Intro copy

media

Hero image

relation_multiple

Products

Keep stock and live pricing in your commerce platform. Match on SKU at render time. Your CMS holds the words and pictures, which change weekly; your commerce platform holds the numbers, which change hourly.

Seasonal campaign pages

One flexible model that lets the marketing team assemble a landing page without a developer. Each entry is a section; your frontend renders them in order.

Page section

API slug: page-section

text

Page key required

"black-friday", "summer-sale"

text

Section ID required

"hero", "offer-grid", "terms"

number

Order

Position on the page

text

Heading

textarea

Subheading

richtext

Body

media

Background image

text

CTA label

text

CTA URL

relation_multiple

Featured products

Fetching one campaign page
GET /api/uk-store/content/model/page-section?per_page=100

// then, in your frontend:
const sections = data
  .filter(entry => entry.data.page_key === 'black-friday')
  .sort((a, b) => a.data.order - b.data.order);

Combine this with scheduling and the whole campaign appears and retires on its own.

Store locator

Physical locations, opening hours and the details customers ring up to ask about.

Store

API slug: store

text

Name required

text

Slug required

textarea

Address

text

Postcode

text

Latitude

Stored as text for precision

text

Longitude

text

Phone

richtext

Opening hours

media

Storefront photo

boolean

Click and collect

There is no dedicated location field type, so hold coordinates as text and parse them in your frontend. Text avoids the rounding you can get from a numeric field.

Editorial and buying guides

Content marketing that links back into the catalogue — the pattern behind most "how to choose a…" pages.

Author

API slug: author

text

Name required

textarea

Bio

media

Avatar

Article

API slug: article

text

Title required

text

Slug required

richtext

Body

textarea

Excerpt

media

Hero image

relation

Author

relation_multiple

Featured products

Shoppable links back to the catalogue

date

Publish date

Building these quickly

Create referenced models first — Category before Product, Author before Article — so the relation fields have something to point at. Once one space is set up the way you want it, clone it rather than rebuilding the model for your next brand or region.