Skip to main content
An Easy theme is a set of pages built from ordered blocks. This page lists every block type the renderer accepts, and the settings each one reads.
This page is generated from the renderer’s own settings catalog, so it always matches what the renderer accepts. Regenerate it with bun apps/docs/scripts/generate-block-reference.ts.
Shoppex validates block settings before it renders a page. An unknown setting key fails the save with the block ID and the offending key. It is never dropped silently, so a typo in an automated edit shows up straight away instead of quietly doing nothing.

Shared surface settings

Most content blocks accept these three settings on top of their own:

How to read a block table

Required means the renderer needs the value to draw the block. Everything else falls back to the theme default. A type of “text, localizable” accepts either a plain string or a map of locale codes to strings, for example { "en": "Buy now", "de": "Jetzt kaufen" }. A setting that holds a link, such as hero.primaryCtaHref or faq.ctaHref, stores a plain path or URL, for example /faq or https://discord.gg/example. In the Builder, every link that can point inside the store uses a page picker: it offers the store’s pages and category pages, or an external URL. A stored path that is none of these stays as it is and shows as “Custom: /path”; when no page answers that path, the picker warns “No page at /path”. Links that only lead to other sites, such as the logo cloud’s logo links, stay plain URL fields. Some blocks list the same setting twice, once short and once with a prefix, for example ctaLabel and hero.ctaLabel. Both write the same value. The prefixed form is the canonical one, and it is the form the Builder and the AI tools produce. Prefer it in anything you automate. The short form stays accepted so older documents keep working.

Layout

Every page carries these. They frame the content blocks between them. On the Classic theme, the header’s profile banner shows the hero picture (hero.image). On the home page it loads first, at high priority, because it is the page’s main picture; on other pages it loads lazily. The Minimal header layout draws no banner. Variants: classic, classic-centered, classic-deck, classic-minimal, clean-minimal, clean-minimal-centered, clean-minimal-compact, clean-minimal-underline, default-centered, default-minimal, default-pill, forkme, loadout, pulse, pulse-deck, pulse-minimal, pulse-pill, starlight, starlight-centered, starlight-minimal, starlight-pill Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

cart-modal

Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

Content

Marketing and information sections. Order them freely on any page.

hero

Also accepts the shared surface settings. Variants: classic, classic-banner, classic-minimal, clean-minimal, clean-minimal-editorial, clean-minimal-framed, default-minimal, default-spotlight, forkme, loadout, pulse, pulse-minimal, pulse-split, starlight, starlight-minimal, starlight-split

about

Also accepts the shared surface settings. Variants: forkme, loadout, pulse

faq

Also accepts the shared surface settings. Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

text-block

Also accepts the shared surface settings. Variants: forkme, loadout, pulse, starlight

why-choose-us

Also accepts the shared surface settings. Variants: classic, classic-list, classic-split, clean-minimal, clean-minimal-columns, clean-minimal-rows, default-grid, default-list, forkme, loadout, pulse, pulse-band, pulse-rows, starlight, starlight-compact, starlight-rows

trust-strip

On a phone, four or more chips sit in two columns of left-aligned chips. Fewer chips, and wider screens, keep one centered row. Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

store-stats

Variants: clean-minimal, forkme, loadout

vouches

Variants: classic, clean-minimal, forkme, loadout, starlight

image

Variants: classic, clean-minimal, forkme, loadout, pulse, starlight Also accepts the shared surface settings. Variants: loadout, pulse, starlight Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

media-embed

Also accepts the shared surface settings. Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

blog-posts

Also accepts the shared surface settings. Variants: loadout, pulse, starlight

content-media

Also accepts the shared surface settings.

content-features

Also accepts the shared surface settings.

content-socials

Also accepts the shared surface settings.

contact-form

Also accepts the shared surface settings. Variants: classic, loadout, pulse, starlight

Commerce

Blocks that read the catalog or move the buyer towards checkout.

products

Also accepts the shared surface settings. On the Default, Starlight, Pulse, Clean minimal and Classic themes, a product card shows its discount as a badge on the picture, for example “−20%”, with the same percent the product page shows. The badge appears from 5 % and never on a sold-out product or a card that shows a price range. Variants: classic, classic-list, classic-overlay, classic-shine, clean-minimal, clean-minimal-gallery, clean-minimal-list, default-minimal, default-overlay, default-shine, forkme, loadout, pulse, pulse-spotlight, pulse-strip, starlight, starlight-grid, starlight-spotlight

buy-box

Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

product-form

Variants: pulse, starlight

details

Variants: classic, clean-minimal, forkme, loadout, pulse, starlight The rail shows only whole rows at each screen width. On the Default theme it holds 5 products: 4 show on a phone, 3 on a tablet and 5 on a desktop. The other themes apply the same rule to their own columns. Fewer products than one row keep their card width and start on the left. When there is nothing to show, the live store renders no section, and the Builder preview says why: the store has no other product, or the other products are sold out and the store hides sold-out products. Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

stock-countdown

Variants: loadout

discord-role-claim

Also accepts the shared surface settings. Variants: loadout

license-delivery

Variants: loadout

System pages

One block per built-in page. These render a whole page rather than a section, so a page holds exactly one of them.

page-cart

This block takes no settings of its own. Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

page-checkout

This block takes no settings of its own. Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

page-all-products

Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

page-not-found

This block takes no settings of its own. Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

page-faq-page

Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

page-reviews-page

Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

page-feedback-page

Variants: classic, pulse, starlight

page-status-page

Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

page-tool-page

Also accepts the shared surface settings. Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

page-trust-page

Variants: loadout, starlight

page-guide-page

Variants: classic, loadout, pulse, starlight

page-contact-page

Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

terms-page

This block takes no settings of its own. Variants: classic, clean-minimal, forkme, loadout, pulse

Advanced

Escape hatches. Use them when no other block fits.

custom-html

Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

ai-section

Also accepts the shared surface settings. Variants: classic, clean-minimal, forkme, loadout, pulse, starlight

Other

These block types are registered but not yet grouped above.

page-account

This block takes no settings of its own.

page-category

page-categories

This block takes no settings of its own.

steps

stats-band

logo-cloud

comparison-table

bento-grid

countdown

discord-server

vouch-wall

purchase-ticker

status-chips