Add a tenant
Adding a client is data + config only. Do not fork the HTML/JS per client.
-
tenants/<slug>.json— copy an existing one and sethosts,brand,gateCodes,odooEnv:{"slug": "acme","name": "Acme Utes","hosts": ["acmedemo.goask.com.au", "acme-3dconfig.vercel.app"],"brand": {"title": "Acme 3D Configurator","logo": "/tenants/acme/logo.png","accent": "#0aa", "accentDark": "#088","tagline": "…", "legal": "Acme Utes"},"gateCodes": ["demo"],"odooEnv": "ACME"} -
tenants/acme/logo.png— a transparent PNG. -
tenants/acme/catalog.js— awindow.CATALOG = { … }. Copy an existing tenant’s and edit products / prices / SKUs (thepartcodes must match the tenant’s Odoodefault_code). -
If the tenant has an Odoo, set its secrets in Vercel env (Settings → Environment Variables):
ODOO_URL_ACME,ODOO_DB_ACME,ODOO_USER_ACME,ODOO_PW_ACME. -
Add the domain in Vercel (Settings → Domains). For a
*.goask.com.ausubdomain add a Cloudflare DNS record:A <sub> 76.76.21.21(DNS only). -
Commit + push. The app themes and routes the new tenant by hostname automatically.
Verify
Section titled “Verify”https://<newhost>/shows the gate with the new branding (logo, colour, title).- Unlock with a
gateCode, build a ute — the catalogue is the tenant’s. - If Odoo is configured: prices reflect Odoo, and a submitted quote lands in that Odoo’s Sales → Quotations.