Theme Store Edition · v1.0.0
OPERATOR Theme Documentation
OPERATOR is a fast, app-free Shopify Online Store 2.0 theme with a dark, tactical aesthetic and a signature red accent. It ships a complete storefront system — mega menus, before/after sliders, countdowns, comparison tables, FAQ with rich results, lookbooks, wishlist, quick view, a compare page, predictive search, a cart drawer with upsells, 3D/AR product media, and native B2B volume pricing — all running natively with zero required apps.
120+Merchant sections
12Home presets
22Product layouts
8Collection layouts
0Required apps
What is new in this build
- 3D / AR product media — native
<model-viewer> with a "View in your space" AR button.
- Native B2B — reads
variant.quantity_price_breaks, enforces variant.quantity_rule (min/max/increment), and shows a company/location context banner for B2B buyers.
- Volume pricing widget — "buy more, save more" tiers with live per-unit price and active-tier highlighting.
- Wishlist (card + PDP + header count +
/pages/wishlist), Quick view modal, Spin-to-win, Content tabs, Event calendar, Metaobject showcase.
- Design-tokens panel — shadows, card hover lift, focus-ring, input radius, motion speed, plus Pills & badges controls (radius, border, padding, uppercase).
- Two live in-theme references: the Style Guide (
/pages/style-guide) and the Sections Library (/pages/sections-library).
Getting started
1. Add the theme
- Online Store → Themes → Add theme → upload the theme zip (or add from the Theme Store).
- It sits in your library as an unpublished draft — customize and preview safely first.
- Actions → Publish when ready (this replaces your live theme but does not delete the old one).
2. First steps
- Theme settings → Brand: logo, favicon, name, tagline.
- Colors: pick a palette preset or set the 17 tokens.
- Typography: display + body font and scale.
- Build menus in Online Store → Navigation (icons are automatic — see Icon system).
- Set your Cart style and free-shipping bar.
- Preview on mobile, then publish.
Demo content. Presets use placeholder text and sample products. Replace copy and link real collections/products before publishing.
Shopify plan requirements
OPERATOR runs on any Shopify plan that includes the Online Store (Basic and up). Most features are native to the theme and work everywhere. A few depend on your Shopify plan or a separate subscription/app — this is a Shopify limitation, not a theme one. Merchants should confirm the current specifics for their plan in Shopify's own docs.
In short: the theme and its 120+ sections work on all plans. B2B catalog pricing, subscriptions, and the deepest checkout customization are the main plan-gated pieces.
| Feature | Requires | Notes |
Native B2B — catalog volume pricing (quantity_price_breaks), quantity rules, company/location banner | A paid plan with B2B (Basic, Grow, Advanced, or Plus) | Basic/Grow/Advanced: up to 3 catalogs & 50 locations per company. Plus: unlimited catalogs, direct company/location assignment, deposits. Not available on the Starter/lite plan. |
| Volume-pricing widget (the "buy more, save more" table) | Works on all plans to display | The display is theme-rendered everywhere. For the discount to apply at checkout, either create a matching automatic discount (all plans) or use a B2B catalog (B2B plans). |
| Subscriptions block (selling plans) | A subscription app | Shopify subscriptions need a selling-plans app; the block renders the selector once selling plans exist. |
| Local pickup / store availability | All plans | Requires locations set up with local pickup enabled in Shopify settings. |
| Country / language selectors, multi-currency | Shopify Markets | Selectors only appear when you have multiple markets/locales enabled. Markets is available on all plans; some advanced market features vary by plan. |
| Collection filters | Search & Discovery app (free) | Enable filters in the free app; OPERATOR styles them automatically. Available on all plans. |
| Checkout / customer-account branding | Plan-dependent | Checkout is customised via Shopify's Checkout editor / extensibility, not the theme. Deepest checkout customization is a Plus capability. |
Works on every Online Store plan (no gating)
Wishlist, quick view, quick order, bundle builder, 3D/AR product media, reviews & ratings, FAQ rich results, before/after sliders, mega menus, countdowns, spin-to-win, content tabs, event calendar, metaobject showcase, comparison table, all social-proof and promo sections, discounts/gift cards, and the full design-tokens system.
Global theme settings
Theme settings (the gear icon in the editor) control your entire store at once — set them once and every page inherits them. OPERATOR groups ~130 settings into the tabs below. Complete reference:
Brand
| Setting | Type | Default |
| logo | image_picker | — |
| logo_dark | image_picker | — |
| logo_width | range | 120 |
| favicon | image_picker | — |
| brand_name | text | OPERATOR |
| brand_tagline | text | Built for the Little Guy |
Colors
| Setting | Type | Default |
| Palette preset | select | custom |
| color_black | color | #060606 |
| color_void | color | #0b0b0b |
| color_surface | color | #0f0f0f |
| color_s2 | color | #141414 |
| color_border | color | #1e1e1e |
| color_b2 | color | #2a2a2a |
| color_red | color | #cc0000 |
| color_red_2 | color | #e60000 |
| color_white | color | #f2f2f2 |
| color_w2 | color | #d8d8d8 |
| color_muted | color | #aaaaaa |
| color_m2 | color | #777777 |
| color_m3 | color | #444444 |
| color_green | color | #00cc66 |
| color_yellow | color | #ffcc00 |
| color_blue | color | #3b82f6 |
Typography
| Setting | Type | Default |
| type_display_font | font_picker | assistant_n4 |
| type_display_scale | range | 100 |
| type_body_font | font_picker | assistant_n4 |
| type_body_scale | range | 100 |
| type_uppercase_eyebrows | checkbox | On |
| type_uppercase_buttons | checkbox | On |
Layout
| Setting | Type | Default |
| layout_container_max | range | 1320 |
| layout_section_spacing | range | 100 |
| layout_radius | range | 0 |
| layout_border_width | range | 1 |
| Default pagination | select | buttons |
| Show breadcrumbs | checkbox | On |
Buttons
| Setting | Type | Default |
| btn_primary_bg | color | #cc0000 |
| btn_primary_fg | color | #ffffff |
| btn_primary_hover | color | #e60000 |
| btn_secondary_bg | color | rgba(0,0,0,0) |
| btn_secondary_fg | color | #f2f2f2 |
| btn_secondary_border | color | #f2f2f2 |
| btn_arrow_icon | checkbox | On |
| btn_icon_position | select | after |
Product cards
| Setting | Type | Default |
| card_image_ratio | select | portrait |
| card_hover_second_image | checkbox | On |
| card_show_swatches | checkbox | On |
| card_show_quick_add | checkbox | On |
| card_show_quick_view | checkbox | On |
| Badge style | select | filled |
| Quick-add button style | select | secondary |
| Show vendor | checkbox | On |
| Show rating stars | checkbox | On |
| Show compare-at price | checkbox | On |
| Corner radius | range | 0 |
| Swatch active border color | color | #cc0000 |
Badges
| Setting | Type | Default |
| Show sale badge (-%) | checkbox | On |
| Sale badge background (optional) | color | — |
| Sale badge text (optional) | color | — |
| Text badge background (optional) | color | — |
| Text badge text (optional) | color | — |
| Image badge size | select | medium |
| Image badge corner | select | stack |
| Badge corner | select | tl |
| Badge offset X | range | 12 |
| Badge offset Y | range | 12 |
Pills & badges
| Setting | Type | Default |
| Pill corner radius | range | 0 |
| Pill border width | range | 1 |
| Pill padding (horizontal) | range | 10 |
| Pill padding (vertical) | range | 4 |
| Uppercase pill text | checkbox | On |
| Badge corner radius | range | 3 |
| Uppercase badge text | checkbox | On |
Design tokens
| Setting | Type | Default |
| Shadow depth | select | none |
| Card hover lift | range | 0 |
| Focus ring color | color | — |
| Focus ring width | range | 2 |
| Input & field radius | range | 0 |
| Animation speed | range | 100 |
Product page
| Setting | Type | Default |
| pdp_gallery_layout | select | thumbs_left |
| pdp_enable_zoom | checkbox | On |
| pdp_sticky_atc | checkbox | On |
| pdp_variant_aware_media | checkbox | On |
| pdp_show_inventory_meter | checkbox | On |
| pdp_low_stock_threshold | range | 10 |
| pdp_show_pickup | checkbox | On |
| pdp_show_recently_viewed | checkbox | On |
Cart
| Setting | Type | Default |
| cart_type | select | drawer |
| cart_free_ship_bar | checkbox | On |
| cart_free_ship_threshold | text | 75 |
| cart_upsell_mode | select | auto |
| cart_enable_notes | checkbox | On |
| cart_enable_gift_wrap | checkbox | Off |
Header
| Setting | Type | Default |
| header_sticky | checkbox | On |
| header_transparent_over_hero | checkbox | On |
| header_show_search | checkbox | On |
| header_show_account | checkbox | On |
| header_enable_mega_menu | checkbox | On |
Search
| Setting | Type | Default |
| search_predictive | checkbox | On |
| search_show_products | checkbox | On |
| search_show_collections | checkbox | On |
| search_show_articles | checkbox | On |
| search_show_pages | checkbox | On |
| Enable voice search | checkbox | On |
Social & sharing
| Setting | Type | Default |
| Instagram | url | — |
| TikTok | url | — |
| Facebook | url | — |
| X (Twitter) | url | — |
| YouTube | url | — |
| Pinterest | url | — |
| social_share_on_pdp | checkbox | On |
| social_default_og_image | image_picker | — |
| social_twitter_handle | text | — |
SEO & structured data
| Setting | Type | Default |
| seo_emit_organization_jsonld | checkbox | On |
| seo_emit_product_jsonld | checkbox | On |
| seo_emit_article_jsonld | checkbox | On |
| seo_emit_breadcrumb_jsonld | checkbox | On |
| seo_emit_faq_jsonld | checkbox | On |
| seo_emit_website_jsonld | checkbox | On |
| Defer structured data to your SEO app | checkbox | Off |
Animations
| Setting | Type | Default |
| anim_scroll_in | checkbox | On |
| anim_hover_effects | checkbox | On |
Integrations
| Setting | Type | Default |
| Enable connected-app features | checkbox | On |
Advanced
| Setting | Type | Default |
| advanced_custom_css | textarea | — |
| advanced_custom_head | textarea | — |
| advanced_custom_body | textarea | — |
| advanced_preconnect_domains | textarea | https://cdn.shopify.com
https://fonts.gstatic.com |
Design system & tokens
OPERATOR is fully tokenised — the whole look is driven by CSS variables you control from theme settings, no code required.
Colours
Start with a palette preset (Colors → Palette) for a one-click skin, or edit the 17 tokens: neutrals (black, void, surface, s2, border, b2), brand (red, red-2), text (white, w2, muted, m2, m3), and semantic (green, yellow, blue). Leave button colours blank to inherit your brand red.
Radius (per component)
- Global radius — Layout → Corner radius (default
0, sharp/tactical). Cascades to buttons, cards and inputs. - Input radius — Design tokens → Input & field radius (overrides global for form fields).
- Pill radius / border / padding — Pills & badges group.
- Product card radius — Product cards → Corner radius.
Depth, focus & motion Design tokens
- Shadow depth — none / soft / medium / strong. Applied to cards, modals, dropdowns, popups. Default none keeps the flat look.
- Card hover lift — px the card rises on hover.
- Focus ring — colour + width for keyboard focus (accessibility).
- Animation speed — global motion multiplier (50–150%). Respects reduced-motion.
Pills & badges new
The Pills & badges group controls the status pills (.op-pill) and menu/sale badges: corner radius, border width, horizontal/vertical padding, and uppercase toggles. See every variant live on the Style Guide.
Icon system
OPERATOR shows a small icon beside menu links — automatically, and fully optional.
- Global toggle — Header → "Show menu item icons" turns all nav icons on/off.
- Automatic — icons are auto-assigned from each menu item's name (Home → house, Shop → grid, Blog → newspaper, etc.). Unmapped items get a neutral marker so nothing is bare.
- Set a specific icon — put
[icon-name] in a menu item's title, e.g. [rocket] New Drops. Browse names on the Icon Library page.
- Remove one icon — put
[none] in that item's title to hide just that one (used by default on Resources).
- Badges —
[new], [hot], [sale], or [badge:VIP] add a coloured badge.
Product pages
Fully modular: the media gallery sits beside a stack of blocks you add/remove/reorder, plus 22 ready-made product templates you can apply per product (Products → [product] → Theme template, or preview with ?view=template-name).
Gallery layouts
Set the default under Product page → Gallery layout (thumbnails left / right / bottom), with global toggles for zoom, sticky add-to-cart, and variant-aware media (gallery jumps to the selected variant's image).
Buy-box blocks
On the Product information section, Add block to assemble the buy box: Title, Vendor, SKU, Rating, Price, Inventory meter, Variant picker (with swatches), Quantity, Volume discounts table, Buy buttons, Bundle/build-a-box, Subscription, Pickup availability, Shipping estimate, Description, Accordion rows, Trust icons/badges, Size-guide trigger, Share, Countdown, Live counters, Custom Liquid, Spacer.
Colour swatches (name-driven)
Swatches render automatically: a Shopify swatch value is used if present, otherwise the option name (e.g. "Forest Green") maps to a hex via the built-in palette. No metafields or app required for standard colour names.
Volume pricing & native B2B
Volume pricing widget
Add the Volume discounts table block to the product buy box. Configure up to three tiers (quantity + discount, e.g. 3+ → 5%, 6+ → 10%). The table shows a live per-unit price, highlights the active tier as quantity changes, and clicking a tier sets the quantity. Discounts display per-unit; create a matching automatic discount in Discounts for it to apply at checkout.
Native B2B requires a paid plan with B2B (Basic/Grow/Advanced/Plus) — see
Plan requirements. When a B2B customer with a catalog is logged in, OPERATOR automatically reads Shopify's native
variant.quantity_price_breaks and shows catalog volume pricing that applies at checkout — no manual tiers needed.
Quantity rules
The quantity picker automatically enforces variant.quantity_rule — minimum, maximum, and increment (e.g. "sold in cases of 6") — with a hint line, when a B2B catalog defines them.
Company context
For a logged-in B2B buyer, a banner shows "Ordering for [Company] · [Location]" at the top of the product info. All B2B features are dormant (invisible) for regular DTC customers.
Wishlist, quick view & bundles
Wishlist new
Heart buttons appear on product cards and the product page (enable under Product cards → Show wishlist and the Header wishlist action). Saves are stored on-device (localStorage); a live count shows in the header, and /pages/wishlist lists saved products with remove buttons and an empty state.
Quick view
Enable Product cards → Show quick view. The search icon on a card opens a modal with the full product (large image-forward gallery, variant picker, quantity, add-to-cart) fetched via the Section Rendering API — shoppers add to cart without leaving the collection.
Bundle builder & quick order
Bundle builder lets shoppers assemble a custom kit with an optional multi-item discount. Quick order is a B2B variant-quantity table that adds many variants to the cart at once.
Cart & checkout
Cart style (Theme settings → Cart): Drawer (slide-out, default), Page, or Notification popup. Plus a free-shipping bar with threshold, an upsell engine (off / auto / manual), order notes, and gift wrap. For a full cross-sell grid, add the Cart — Upsell section; for placeable gift options, add the Cart — Gift wrapping section. All native — no cart app required.
Marketing & popups
Spin to win new
A gamified prize-wheel email-capture popup. Add Segment blocks (label, discount code, colour, win-chance weight, optional "no win"). Configure email-required, trigger delay, and once-per-session. Shoppers enter their email, spin, and reveal a copyable code. Create matching codes in Discounts.
Other
Countdown (honest, no fake resets), Discount banner, Free delivery bar, Newsletter popup, Age gate, Cookie consent, Recent purchases live social-proof toast, and Promotion popup.
Content sections
120+ sections cover heroes, media, text, promos and utilities. Browse them all with live examples at Sections Library. New content sections:
Content tabs new
General tabbed content (not product-specific). Add Tab blocks with a label, optional icon, heading, rich content, image, and CTA. ARIA tablist with keyboard support.
Event calendar new
List of upcoming events/drops. Add Event blocks (date badge, tag, title, time, location, details, link, featured flag).
Metaobject showcase new
Renders entries of a metaobject definition as cards (designers, ingredients, materials, store locations…). Set the metaobject type handle and the title/image/text field keys.
Staples
Rich text, Image with text, Media-with-text (overlay/vertical/sticky/collage), Multicolumn, Feature grid, Timeline, FAQ (emits FAQPage JSON-LD), Accordion, Gallery, Lookbook (hotspots), Portfolio, Comparison table, Image comparison (before/after), Video, Map, Locations, Contact form, Pricing, Custom Liquid.
Social proof
Reviews (data-driven with the optional Shadow Suite, native otherwise), Testimonials, Press logos, Instagram grid, Counter showcase (animated stats), Recent purchases popup, and Current-sales "someone just bought" nudge.
Collections & filters
Eight collection templates (default, vertical-filter, horizontal-filter, no-filters, pagination-infinite, pagination-show-more, editorial, lookbook). Assign in admin or preview with ?view=.
Filters
OPERATOR renders every filter type automatically — you enable which filters in Shopify's free Search & Discovery app (Filters tab → Add filter → Save). Colour filters render as swatches. Custom filters (Weight, Material, Roast) are added once as a storefront-accessible metafield. Sorting is always built in.
Single H1. The collection banner owns the page's one <h1> (the title) plus eyebrow, breadcrumb and description. Keep hero/content headings at H2/H3.
SEO & structured data
Clean JSON-LD emitted natively — toggle each schema independently under SEO & structured data: Organization, Product, Article, BreadcrumbList, FAQPage, WebSite. If you run the Shadow Suite and want it to own schema, enable "Let Shadow Suite handle structured data" to avoid duplicates.
Style Guide & Sections Library
Two live pages ship with OPERATOR so you (and buyers) can see everything the theme does and where to change it.
- Style Guide —
/pages/style-guide. Every component and design token (colours, type, buttons, pills, badges, forms, swatches, rating, quantity, inventory, countdown, stats, accordion, pagination, breadcrumb, brand devices) on labelled rows, each with a "Customize → Settings → …" hint. Sticky grouped side-nav.
- Sections Library —
/pages/sections-library. All 120+ sections grouped by purpose with a one-line description and a "View live" link where a demo exists.
Both are linked from the Resources menu. To add them to a store yourself: Online Store → Navigation → Resources → Add menu item → link to those pages.
Performance & accessibility
Performance
- ~26 KB JS gzipped, deferred/async, vanilla web components — no external libraries.
- Self-hosted fonts (Barlow / Barlow Condensed / JetBrains Mono); AVIF/WebP + lazy-loading below the fold.
- Don't add external fonts or app scripts — use OPERATOR's native sections instead.
Accessibility
- Targets WCAG 2.1 AA: visible focus (configurable), ARIA on interactive components, keyboard-operable menus/drawers, reduced-motion support.
- Maintain colour contrast, write descriptive alt text, keep one H1 per page.
Troubleshooting & FAQ
A section looks empty / shows placeholders
It isn't connected to content — pick a collection/products/blog, or add blocks/images.
Swatches aren't the right colour
Set an explicit Shopify swatch (colour or image) on the variant for non-standard names.
The mega menu isn't showing
Check: (1) Header → Enable mega menu is on; (2) the menu is nested correctly (L1 → L2 columns → L3 links); (3) the top item opens as a mega panel.
A menu link has no icon (or the wrong one)
Add [icon-name] to set it, [none] to hide it, or toggle all icons off in Header settings.
3D model isn't showing
Upload a .glb to the product's media. The viewer only appears when a 3D model exists on that product.
Volume price shows but isn't applied at checkout
The table displays the offer; create a matching automatic discount in Discounts (or use a B2B catalog for native quantity price breaks).
Do I need any apps?
No. Reviews, FAQ schema, before/after sliders, mega menus, countdowns, wishlist, quick view, compare, upsells, 3D/AR and B2B pricing are native.
Changelog
v1.0.0 — Theme Store Edition
- Native 3D/AR product media; native B2B (quantity price breaks, quantity rules, company context); volume-pricing widget.
- Wishlist (page + header count), quick-view modal, spin-to-win, content tabs, event calendar, metaobject showcase.
- Design-tokens panel (shadows, hover lift, focus ring, input radius, motion) and Pills & badges controls.
- Live Style Guide and Sections Library reference pages; consistent, optional menu-icon system.
- Mobile, accessibility and anchor-navigation hardening across all templates.
Support
Docs: docs.getsyndicate.app · Support: support.getsyndicate.app/operator
When contacting support, include your store URL and a screenshot of the section/setting in question.
OPERATOR — Theme Store Edition · Documentation v1.0.0 · A fast, app-free Shopify Online Store 2.0 theme.
Social proof
Reviews (data-driven with the optional Shadow Suite, native otherwise), Testimonials, Press logos, Instagram grid, Counter showcase (animated stats), Recent purchases popup, and Current-sales "someone just bought" nudge.