schema.json. The platform gives every section its settings and blocks as props.
Real example: Pulse in
templates/themes/pulse/. Copy it if you want a head start.The folder
src/platform/ is not yours. The platform writes it at build time. Any copy you upload is ignored.Steps
1
Write theme.json
theme.json
engine, id, name and version are required. runtime defaults to react.2
Write index.html
It must load
/src/platform/entry.tsx. Without it, the upload is blocked.index.html
3
Add a section
The settings the seller sees:The design. It gets This is the real Spacer from Nova.
src/sections/spacer/schema.json
settings as props:src/sections/spacer/index.tsx
4
Put it on the home page
templates/index.json
type is the folder name under src/sections/.5
Zip and upload
Zip the folder and upload it in the theme hub. One top folder inside the ZIP is fine. See Upload rules.
6
Edit and publish
The theme opens in Visual and Code. Press Publish to put it live.
What a section gets
Product, cart and store data come from
@/platform. See the list below.
Platform API
Import everything from@/platform. You never write API calls yourself.
data-jm-* attributes work in React too. See Commerce attributes.
Packages
You can import only the packages our own themes use, likereact. Any other package blocks the upload. Install scripts (postinstall and others) are blocked too.
Next
Upload rules
What gets kept, and every error.
Section schema
Every setting type.

