Skip to main content

Customer portal and order tracking

Blueprint for a customer database with internal order tracking and a distinct customer portal — the first example from What is Bobuild?.

Goals​

  • Employees manage customers and orders in a backoffice
  • Customers log in and see only their orders
  • Status changes can notify the customer by e-mail

Data model​

ObjectKey fields
Customername, email, password (portal login), active (Yes/no)
Productname, sku, price
Ordercustomer (Reference → Customer), status (Choice: Placed / Paid / Shipped / Cancelled), placed_at (Date and Time), notes (Long Text)
OrderLine (optional)order (Reference), product (Reference), quantity (Number), unit_price (Number)
Operatoremail, password, name, roles (Multiple choice)

Prefer OrderLine when you need quantities; a Reference Array of products on Order is enough for a minimal demo.

Portals​

PortalLoginContents
BackofficeOperatorCustomers grid, Orders grid, Product catalogue, charts
Customer areaCustomer (active = true)“My orders” grid filtered to the logged-in customer, order detail, optional profile form

Set the default portal in Pages so the bare domain opens the right entry point.

Key widgets and tasks​

  1. Backoffice → Orders grid — filters by status; batch task “Mark shipped” for selected rows.
  2. Order detail — Detail widget + form to update status / notes.
  3. Form task on status update — when status becomes Shipped, send e-mail to {customer.email}.
  4. Customer area — grid of Order where customer is the logged-in user (use login context / filters available in the Builder for the current user).
  5. Optional public catalogue page without login, linking into registration.

Security notes​

  • Never put operator passwords on the Customer object.
  • Hide notes meant for staff from the customer detail layout.
  • Use login rules so inactive customers cannot enter.

See Security overview.

Build order​

  1. Objects and sample data
  2. Backoffice grids and forms
  3. Customer login + “my orders”
  4. Shipping notification task
  5. Snapshot, then polish menus and branding