Skip to content
weLabsweLabsStorefront Playbook
Live demoQuickstart

Storefront setup

Store identity

Set the store name, tagline, fallback currency and timezone, the store profile, and the About and Find a Store pages that live in the storefront's code.

A few pieces of the store’s identity are not managed in WordPress. They live in typed configuration files in the storefront and are edited once per deployment: the store name and tagline, a store profile used as a fallback for contact details, and the content of the About and Find a Store pages. Edit them before launch, then rebuild and redeploy. Everything else about the brand, including colours, logo and favicon, comes from WordPress.

File: apps/storefront/lib/config/site.ts. This is the single place the store’s name is defined; never hard-code it anywhere else.

export const siteConfig = {
name: "weStore",
logoMark: "w",
tagline: "Thoughtfully Made Goods",
description: "Shop thoughtfully made goods for everyday rituals at {name}.",
defaultLocation: "Berlin, DE",
currency: "EUR",
locale: "en-DE",
timezone: "Europe/Berlin",
} as const;
Field What it does
name The store name. Shown beside the logo mark when no logo image is set, used as the logo image’s alternative text, in the mobile menu and the built-in footer, and as the fallback site name for page titles when WordPress’s SEO settings set none.
logoMark One letter shown in the coloured logo tile when no logo image is set.
tagline Completes the default page title (name — tagline).
description The default meta description. {name} is replaced with the store name.
defaultLocation A delivery location label from the original design. Not shown by current pages.
currency Fallback currency code, used only until the store’s real currency is known. Live stores take their currency, symbol, separators and decimals from WooCommerce.
locale A formatting locale from the original design. Not used by current pages; formatting follows the Locale and the store’s currency.
timezone Fallback timezone, used only when WordPress reports none or cannot be reached. The live store’s timezone comes from SettingsGeneralTimezone in WordPress.

File: apps/storefront/lib/config/store.ts. A single-store profile: address, phone, email, opening hours and short copy. It takes its name and logo letter from the site config.

The storefront uses it as a fallback:

Field Used for
address, phone, email The Contact page when WordPress’s Contact settings leave them blank, the built-in footer, and the phone link in the mobile menu
hours The Contact page when WordPress sets no working hours
tagline The built-in footer’s brand column, and the hero heading when a hero slide has none

The built-in footer appears only while no footer columns are configured in WordPress’s footer builder. Once the Store Owner builds a footer, theirs replaces it. Contact details shown to shoppers are best managed in WordPress at StoreFrontSettingsPagesContact, so keep store.ts as a sensible fallback rather than the main source.

The file also carries profile fields from the original design (rating, certifications, short returns and shipping notes). Update them so nothing stale ships, even where a page does not show them today.

File: apps/storefront/lib/config/pages/about.ts, read through getPageContent("about"). The /about-us page renders this content and has no copy of its own.

Section Fields
hero eyebrow, titleLines (one entry per line), image, imageAlt
founder eyebrow, title, body (one entry per paragraph), cta (label, href), image, imageAlt
mission Same fields as founder
values title, intro, and items, each with an id, icon, title and body
team title, and members, each with an id, name, role and image
timeline title, and slides, each with an id, year, tag, title, description and image

Value icons are named rather than imported: vegan, gluten-free, paraben-free or packaging. Images are paths under apps/storefront/public/, so /images/hero-skincare.jpg is the file apps/storefront/public/images/hero-skincare.jpg. Put your own photos there and update the paths.

The store list for /find-a-store is defined at the top of the page file itself: apps/storefront/app/[locale]/(customer)/find-a-store/page.tsx, in the stores array. Each entry has a name, address, phone, hours (one line per entry), image and mapLink (the address of the Get Direction button).

  1. Open the page file and replace the three placeholder stores in stores with your own locations.
  2. Point each mapLink at your location on Google Maps or another map service.
  3. Update the introductory text under the page title, which is also written in the page file.
  4. If you have no physical store, ask your developer to remove the page and its links instead of shipping placeholders.

apps/storefront/lib/config/pages/locations.ts holds a single map coordinate, storeCoords, for an embedded map component. The current page does not render that map.

You do not need to touch code for these. They are managed by the Store Owner and reach the storefront without a redeploy.

Brand element Where it is set
Colours, light and dark StoreFrontSettingsColors
Logo image The Logo element in StoreFrontSettingsHeader
Favicon The WordPress Site Icon
Site name for search results and sharing StoreFrontSettingsSEO
Social profile links StoreFrontSettingsSocial Links
Contact page details and hours StoreFrontSettingsPagesContact
Policy pages StoreFrontSettingsPagesStatic Pages
Currency and its format WooCommerceSettingsGeneral

See Colors and dark mode and Header builder.

Storefront Playbook · Built by weLabsFeaturesFAQTalk to us