Skip to content

Add a tenant

Adding a client is data + config only. Do not fork the HTML/JS per client.

  1. tenants/<slug>.json — copy an existing one and set hosts, 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"
    }
  2. tenants/acme/logo.png — a transparent PNG.

  3. tenants/acme/catalog.js — a window.CATALOG = { … }. Copy an existing tenant’s and edit products / prices / SKUs (the part codes must match the tenant’s Odoo default_code).

  4. 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.

  5. Add the domain in Vercel (Settings → Domains). For a *.goask.com.au subdomain add a Cloudflare DNS record: A <sub> 76.76.21.21 (DNS only).

  6. Commit + push. The app themes and routes the new tenant by hostname automatically.

  • 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.