The admin panel
Where you change everything without touching code.
Your store's admin panel lives at /admin on your own site — for example
https://store.example.com/admin.
Everything on these pages is edited there. No code, no redeploy: save a change and it is live on the next page load.
Logging in
Use the email and password you set as SEED_ADMIN_EMAIL and SEED_ADMIN_PASSWORD
when you seeded the database.
Change the password the first time you log in if you used the example values.
admin@example.com / changeme123 are published in the theme's example file, so
anyone who has seen the theme knows them.
There is no password reset email. The theme ships without an email service, so the "forgot password" link cannot deliver anything — the message is written to the server log instead. Keep your password somewhere safe. Recovery instructions are in Troubleshooting.
What is where
The sidebar has four groups.
| Group | Contains | Page |
|---|---|---|
| Configuration | Site Settings, Currency Settings, Languages, Appearance | below |
| Content | Footer, About | below |
| Store Content | Rank Groups | below |
| Admin | Users, Media | below |
Site Settings
Brand name, logo, favicon, SEO, server IP, username platforms, package behaviour.
Appearance
15 colour schemes, or your own hex colour.
Languages
Which of the 34 languages customers can pick.
Currency Settings
Which display currencies appear in the switcher.
Footer
Footer headings, social links, support links.
About
The about and support text on the home page.
Rank Groups
Feature comparison tables for rank categories.
Users & Media
Admin accounts and uploaded images.
Globals versus collections
Two kinds of thing in the sidebar, and it helps to know which is which:
- A global is a single settings page. There is exactly one Site Settings, one Footer, one Appearance. You edit it; there is nothing to create or delete.
- A collection is a list. Users, Media and Rank Groups are collections — you add, edit and remove entries.
Editing in more than one language
Any field marked as translatable stores a separate value per language. At the top of the editor there is a locale selector.
Pick the language
Change the locale selector at the top of the page from en to, say, de.
Type the translation
The field now holds the German text. The English value is untouched.
Save
Each language is saved independently.
Fields that are not translatable — URLs, colour codes, package IDs, your server IP — are shared across every language, which is what you want.
Leave a translation empty and visitors in that language see the English value instead. You do not have to translate everything to enable a language.
What is not in the admin panel
| Thing | Where it actually lives |
|---|---|
| Products, prices, categories, descriptions | Tebex |
| Sales and discounts | Tebex |
| Payment settings | Tebex |
| Interface text like "Add to cart" | Translation files — Translations |
| Home page photos and background art | The theme's files — Assets |
| Security headers, allowed image hosts | next.config.ts — Security and headers |
A note about the API
The admin panel's own API is at /payload-api (not /api, which is reserved for
the store's Tebex proxy). You will not normally touch it, but it is where GraphQL
and REST live if you ever want them.