Link a store

Choose which Salla store your local theme renders, with --store, .env or a URL.

Link a store when you want your theme to render your own products and settings instead of the demo ones.

A theme has no products of its own. It renders a store: products, categories, pages and settings come from Salla's API. Linking a store tells the dev server which one to ask.

The default: a demo store

A new theme renders Theme Raed Demo Store. It needs no login and has real products, so the page looks like a finished shop from the first minute. Switch to your own store when you want your own data or settings.

Switch store with the CLI

salla theme dev --store            # asks which store
salla theme dev --store 123456789  # binds this id directly

Asking offers two choices: the demo store, or your own demo store. The second asks you to sign in (salla login) and lists the stores of your account. If you have none, run salla store create, then repeat the command.

The CLI writes your choice to .env and starts the server. If a server is already running, restart it.

Where the store is saved

In .env at the root of your theme:

.env
# The store your theme renders against.
VITE_STORE_DOMAIN=1510890315

VITE_STORE_DOMAIN is the store id (a store username also works). Only the dev server reads it. A published theme never has this file, because a live storefront takes its store from the address visitors type.

.env is git-ignored. A teammate who clones the theme gets the demo store until they run salla theme dev --store.

Leave VITE_TWILIGHT_URL out of .env unless you need it. It overrides the Twilight SDK build with no version check, so a value copied in once goes stale silently.

Switch store with the URL

The dev server reads a numeric storeId query parameter, so one URL can name the store:

http://localhost:5173/en?storeId=123456789

This is the address the CLI opens. The parameter wins over .env, so you can compare two stores in two tabs without touching any file. It is read on each full page load: open an address without it and the page falls back to .env.

Only localhost trusts storeId. On a live storefront the store always comes from the host name, so the parameter does nothing there.

Preview a draft of the settings

A merchant's theme settings are versioned. To render a specific version, add versionId next to storeId. The theme editor does this for you.

Check it worked

The CLI prints Store: <name> (switch any time: salla theme dev --store). In the browser, the products should belong to that store. A "Store is temporarily unavailable" page means the id is wrong: see Troubleshooting.

Next: Theme editor

On this page