Online Ordering
v0.1.1
Open live demo → Screens
Overview
Order-ahead for a counter that hands the bag over. Diners build an item against real modifier rules — a required size, a required crust, a capped list of toppings — choose a pickup time from slots computed off your posted hours and lead time, and follow the order to Ready, while the kitchen works those same orders on a live board. A cart line is item plus options plus note, so two nearly identical pizzas stay two lines and nobody is handed the wrong box. The manifest scaffolds nine tables — menu, modifier groups, orders and their lines — into your connected database and generates the back office around them: menu and price editing, opening hours, the order queue and item-mix reporting. It is the customer-facing companion to the Point of Sale, which keeps the full kitchen display.
Capabilities
- Payments
- Realtime
- Email receipts
What you get
Tables it adds9
- menu_categories
- menu_items
- modifier_groups
- modifiers
- orders
- order_items
- order_item_modifiers
- hours
- delivery_zones
Created fresh, or mapped onto your existing tables at install.
Pages your dashboard gains4
- Ordering dashboardOrders today, average order, and the day by hour with the item mix.
- QueueLive status tabs beside an order detail with its lines and an advance you can undo.
- MenuA CRUD grid and a card gallery for items, with child tabs for modifier groups and options.
- HoursThe opening hours the pickup slots are generated from.
Roles it pre-builds1
- kitchen-staffWork the queue: read orders, advance them through the statuses, and mark an item or an option sold out. Cannot edit the menu, the prices, the hours or the settings.
Settings you configure5
- Restaurant name
- Time zone
- Lead time (minutes)
- Order number prefix
- Pickup slot step (minutes)
Run it with your own data
Online Ordering needs somewhere to keep your data. Answer one question and we will show you the shortest way there.
Do you already use Adminium?
Set everything up together
A static host can only serve the screens. Your data needs a database, and Adminium is what turns it into an admin you can use — so the three go up together.
Deploy everything to DigitalOceanPostgres, Adminium and Online Ordering, already connected.
Rather try it on your own machine first?
npx @adminiumjs/adminium No database needed — it asks you for one when it is ready. Then come back here and pick “Yes” above.
Where is your Adminium?
The address you sign in to, for example https://admin.yourcompany.com
That does not look like a web address. It should start with https://
Where should Online Ordering live?
Inside Adminium
One place to sign in, and nothing else to deploy. Your team reaches it from the same address as your admin.
Show me how
- Build it:
git clone https://github.com/Adminiumjs/online-ordering.git && cd online-ordering && npm install && npm run build:surface - Point Adminium at it and restart:
ADMINIUM_SURFACES_DIR=$(pwd)/dist-surface npx @adminiumjs/adminium start - Then open:
https://admin.example.com/apps/ordering/staff/
On its own domain
A separate site with its own URL, talking back to the Adminium you just named.
Vercel hosts the screens only — your Adminium stays where it is and keeps the data. You will paste one key that lets the site read it.
Deploy to VercelVercel will ask for two values. Both are on your Adminium under Studio → Public API.
Or start from the source
Clone it and run it anywhere — the README covers every option.
View on GitHubJust looking? The live demo needs no setup at all and nothing you do in it is saved. Open the live demo