AlmondTill/G3N API

Storefront

object type

A Storefront — the ecom DTC PUBLISH-CONFIG document: which selling facility the site sells from, which canned theme renders it, which collections it merchandises, which browse tree and channel division frame it, and (optionally) the custom domain it claims. The lifecycle: born draft (claiming nothing) → publish (THE INVALID_CONFIG GATE re-validates every ref record-aware + the GLOBAL domain marker claims in the SAME transaction — CONFLICT/IDENTITY_TAKEN if another published site holds the name) → unpublish (the marker releases) → republish (the SAME gate + re-claim). published NEVER dooms — unpublish first (the FSM forbids the edge). THE SERVING ESTATE IS DELIBERATELY ABSENT v1 (the map): publish flips state, claims the domain, validates config — it provisions NOTHING; this record is the control plane the DTC workstream will consume. SEO copy rides the Decoration attachment, never fields here.

Fields

FieldTypeNotes
idID ID!The record’s id — a UUID the platform assigned when the record was created; every reference to this record uses it.
sysIdString String!The group-scoped human-facing system id (SF-…).
typeString String!The kind of record — always Storefront here.
captionString String!The record’s display name — what people see it called.
statusString String!The FSM state: draft | published | unpublished | doomed.
parentIdID ID!The parent Organization; rootId = the org group; parentId!== rootId always.
rootIdID ID!The org-group family root.
createdAtString String!When the record was created, as a UTC timestamp.
updatedAtString String!When the record last changed, as a UTC timestamp.
revisionNumInt Int!How many times this record has been edited; the first save is 0.
revisionID ID!The OCC revision token — supply it on every mutation of this record; rotates on every write.
refCaptionsRefCaption [RefCaption!]!The server-composed captions of this record's declared references (the referenced-caption rule) — one row per referenced id; see RefCaption.
logicalFacilityIdID ID!The DESIGNATED SELLING facility — the LF whose stock/pricing context the site sells from; in-tenant + ACTIVE at set AND at publish; edit-locked while published (unpublish → edit → republish).
themeString String!The canned theme key (cannedStorefrontThemes lists the roster: almond-light · almond-dark · gallery · catalog-classic) — merchants pick, never author; edit-locked while published.
customDomainStringThe claimed custom domain (a bare lowercase hostname, at most 253 characters — no scheme/path/port/IP/localhost): the GLOBAL uniqueness marker holds it ONLY while published (claim at publish, release at unpublish); edit-locked while published; null = no custom domain (the default host is the serving workstream's business).
collectionIdsID [ID!]!The merchandised Collections (0..24, distinct; each in-tenant + ACTIVE) — edits replace the set WHOLESALE; a NON-doomed storefront blocks a referenced collection's doom.
categoryIdIDNo further notes.
divisionIdIDThe CHANNEL-type Division framing this site (optional — the channel slot’s FIRST consumer; in-tenant + ACTIVE + divisionType channel); null = unframed.

Used by