Skip to main content
CMS in Fire spark is not a website builder. It is a way to define reusable content templates — the fields marketing needs (headlines, images, short copy) — and attach them to commercial objects like a brand or a store. Operations data (menus, prices, hours) still comes from your POS or RMS; CMS handles presentation and storytelling on top.

Templates and entities

Every CMS template belongs to exactly one entity type. That type tells you where the template can be assigned and where the content will appear in customer-facing channels.
Entity typeWhat it representsTypical marketing use
BRANDSA customer-facing brandTagline, brand story, logo treatments, tone for multi-brand groups
STORESA physical locationStore hero, local promotions, pickup instructions with personality
MENUSA menu as customers see itMenu intro, seasonal campaign banner, legal or allergen disclaimers
CATEGORIESA menu sectionSection header, category image, “chef’s picks” copy
PRODUCTSA sellable itemLong description, lifestyle photo, badges (“new”, “spicy”) beyond catalog sync
You create the template once (which fields exist and their type). Your team fills values per brand, store, menu, category, or product in the dashboard. Channels read that content through the API when a template is linked.

Field types (what marketers actually edit)

TypeWhat you use it for
TEXTShort copy — titles, subtitles, taglines, one-line promos
SELECTControlled choices — layout variant, campaign theme, yes/no toggles presented as options
IMAGEHero banners, logos, category art, product photography for the channel (not the kitchen ticket image)
LISTBullet lists — features, ingredients highlights, “why order here” points
Fields can be required or optional and support localized labels so the same template works in more than one language.

How assignment works

  1. Define a template for an entity type (for example “Store landing — summer”).
  2. Link it to a record by setting cms_template_id on that brand, store, menu, category, or product.
  3. Fill field values in the dashboard for each record.
  4. Channels consume cms — when cms_template_id is set, APIs return a resolved cms object with the template structure and current values. When it is null, cms is also null.
Today, brands and stores expose this in the Storefront and Integrations APIs. Templates for menus, categories, and products follow the same model as those surfaces gain richer merchandising.
CMS does not replace menu sync from your POS. Use it for content your POS does not own: brand voice, campaign creative, and channel-specific merchandising.

When CMS helps commercial teams

SituationWhy templates help
Multi-brand operatorEach brand gets its own story and visuals without duplicating store or menu setup
Seasonal campaignsSwap or update hero copy and images on stores or categories without engineering
Aggregator vs owned appSame kitchen, different headline and imagery on your app versus a marketplace listing
Local marketingStore managers or regional teams customize location pages within a fixed template
Future loyalty and promosCampaign and offer pages can reuse the same field types (text, image, list) for consistent creative

When you can start without CMS

If one brand, one look, and minimal copy on channels is enough, you can run on menus, stores, and channels alone. Add CMS when non-operational content becomes a bottleneck — when marketing asks for frequent copy or image changes that should not go through menu or POS updates.

Brands

Brand-level templates and identity

Stores

Location pages and local content

Menus

Catalog structure from your POS

Channels

Where filled CMS content is shown