# Bigscreen Store (Shopify)

The Shopify storefront at store.bigscreenvr.com: this theme plus the custom
data (metaobjects/metafields) that drives it. The glossary below is the
canonical vocabulary; the field-by-field inventory lives on the
[website wiki](https://github.com/BigscreenVR/website/wiki/Shopify-%E2%80%90-Metafields-&-Metaobjects).

## Language

### Custom data

**Metafield**:
A typed custom field attached to one Shopify resource (a product, a variant, a
customer), addressed `namespace.key` (e.g. variant `store.addon_groups`).
_Avoid_: custom field, property

**Metaobject**:
A standalone custom record with its own type and handle, referenced by
metafields or read directly by the theme (`shop.metaobjects.<type>.<handle>`).
_Avoid_: content object

**Definition**:
The schema of a metafield or metaobject type — its fields, types, and
validations. Changing a definition changes structure for every entry;
definition changes must be mirrored to the wiki.
_Avoid_: schema (ambiguous with `{% schema %}` in sections)

**Entry**:
One instance of a metaobject type (e.g. the `cart` type's single `live` entry).
_Avoid_: instance, record

**Product property**:
Umbrella term, defined narrowly: metafields on products/variants, variant
options, and product tags. Nothing broader.

**Text collection**:
A metaobject type existing purely as a hub for store copy (`header`, `footer`,
`cart`, `product_misc`, `rx_insert_form`), each with a single entry whose
handle is `live` — so copy is centrally editable and translatable.

### Configurator

**Addon**:
A product variant offered on another product's page (straps, cushions,
lens inserts) and added to the order alongside it.
_Avoid_: accessory, upsell

**Addon Group**:
A metaobject listing the addon variants offered together in one section of a
product page, ordered, with checked/disabled/ephemeral sub-lists. Assigned to
a product via the variant metafield `store.addon_groups`. The configurator
renders exactly what the groups say — addon sections are never hardcoded.

**Addon Type**:
A metaobject deciding how an Addon Group presents (header text, UI style,
cart presentation, line-item property key).

**Ephemeral variant**:
An addon selectable in the UI but never added as a line item or priced (e.g.
the included Soft Strap); it survives only as a hidden line-item property.

### ETA

**ETA Part**:
An entry of the `localized_string` metaobject type: one reusable, translated
fragment of ETA wording (a range like "1-2", a unit like "business days", a
one-off like "Summer 2026"). ETA text is composed from an ordered list of
parts, never written free-form.
_Avoid_: string, snippet, token

**ETA Override**:
An entry of the `eta_override` metaobject type: a targeted ETA for one model
variant, optionally scoped to an addon combination. A matching override
replaces the bundle's computed estimate outright.
_Avoid_: exception, rule

**Composition**:
Joining an ordered list of ETA Parts into display text, applying each part's
own spacing flag between neighbors. Done in Liquid, per locale, at render.

**Bundle estimate**:
The single ETA shown for a configured order (model plus its same-box addons):
the matching ETA Override if any, else the latest-date fold of the
constituents' own ETAs.
_Avoid_: ship date (that's the raw date field)

### Translation

**Translate & Adapt**:
Shopify's translation app; the store ships English and Japanese. A string is
translatable only if Translate & Adapt can see it.

**Data-attached translation**:
A translation on a metafield/metaobject — attached to the data, survives theme
publishes, visible in Translate & Adapt immediately. The preferred surface.

**Theme-scoped translation**:
A translation on theme content (locale files, JSON template settings) — scoped
to one theme, invisible to Translate & Adapt until that theme is published,
lost on theme replacement.

**Live entry**:
The single entry (handle `live`) of a text-collection metaobject; what the
published storefront reads.
