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.
Site config
Section titled “Site config”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. |
Store profile
Section titled “Store profile”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.
About page
Section titled “About page”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.
Find a Store page
Section titled “Find a Store page”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).
- Open the page file and replace the three placeholder stores in
storeswith your own locations. - Point each
mapLinkat your location on Google Maps or another map service. - Update the introductory text under the page title, which is also written in the page file.
- 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.
What comes from WordPress instead
Section titled “What comes from WordPress instead”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.