all case studies

case study

online menu for a restaurant or izakaya

digital menu, in-store ordering, allergens, modifiers — customers scan, browse, and order from their phone

the scenario

you run a small izakaya, a neighborhood cafe, or a cozy restaurant. you want a digital menu your customers can browse on their phone — scan a QR code at the table, see the full menu, and place an order. no app install, no paper menus to reprint when prices change.

bb.bi's menu & orders plugin gives you a digital menu with in-store ordering: categories, items with variants, modifier groups (spice level, toppings, size), allergen labels, stock tracking, business hours, tax settings, service charge — and a real-time order dashboard.

what you need

plan

business$199.99/yr

plugin

menu & orders

AI credits

5,000 / yr included

the menu plugin is available on the business plan — $199.99/year with no per-order fees.

how to set it up

1. claim your handle

sign up and claim a handle for your restaurant. something short and memorable — sakuratei, kaze-cafe, tonkatsu. with a business plan you can use handles as short as one character.

2. enable the menu plugin

dashboard → your handle → plugins → enable menu & orders. this unlocks the full menu management system.

3. configure your settings

in the plugin settings, configure the basics:

  • currencyJPY, USD, EUR, or any ISO 4217 code
  • taxrate and whether prices are tax-inclusive or exclusive
  • order typesdine-in, takeout (enable any combination)
  • business hoursper-day schedule with timezone support
  • service chargeoptional percentage added to orders
  • customer fieldschoose which info to collect (name, phone, email)
  • announcementa message shown to customers before ordering

4. build your menu

add categories, then add items to each category. each item can have:

  • variantsdifferent sizes or options with separate prices (regular ¥800, large ¥1,100)
  • modifier groupscustomizations like spice level, toppings, add-ons (required or optional, with price adjustments)
  • allergensgluten, dairy, nuts, shellfish, eggs, soy, and more
  • dietary flagsvegan, vegetarian, halal, kosher, gluten-free
  • imagesupload photos for each item and category
  • stockset available quantity or mark as unlimited
  • featuredhighlight signature dishes
  • tagscustom labels like "popular", "seasonal", "chef's pick"

5. generate your page with AI

open the AI assistant and describe your restaurant's style. the AI reads your menu data — categories, items, prices, images — and generates a complete ordering page.

"build a menu page for a Japanese izakaya.
dark, moody atmosphere with warm accents.
show categories as tabs, items as cards with images.
include an order cart with item count and total.
show allergen icons on each item."

the AI generates working HTML with a full ordering flow: browse → add to cart → customize modifiers → enter customer info → place order. everything is wired to the menu SDK automatically.

managing orders

when a customer places an order, it appears in your dashboard in real time. the order dashboard shows:

  • order queueincoming orders with auto-refresh
  • status workflowreceived → confirmed → preparing → ready → completed (or cancelled)
  • order detailsitems, quantities, modifiers, customer notes, table number
  • printprint individual orders for the kitchen
  • exportdownload order history as CSV
  • analyticspopular items, revenue by day/week/month

you can also toggle accepting orders on or off instantly — useful for busy periods or when the kitchen is closing.

for developers: the menu SDK

if you want to build your own ordering page from scratch, the SDK gives you full access to your menu data and ordering system. no framework required — just HTML and the bb object.

loading the menu

bb.onReady(async function() {
  var menu = await bb.menu.getMenu();

  // menu.config — currency, tax, order types, hours
  // menu.categories — array of categories with items

  menu.categories.forEach(function(cat) {
    cat.items.forEach(function(item) {
      // item.name, item.description, item.image
      // item.variants — [{name, price, stock}]
      // item.allergens — ["gluten", "dairy"]
      // item.dietaryFlags — ["vegan"]
      // item.modifiers — [{name, options, required}]

      var price = item.variants[0].price;
      var formatted = bb.formatPrice(price, menu.config.currency);
      // "¥800", "$12.99", "€9,50"
    });
  });
});

placing an order

var result = await bb.menu.order({
  items: [
    {
      variantId: "variant-id-here",
      quantity: 2,
      note: "extra ginger please",
      modifiers: [
        { groupId: "spice-group", optionId: "medium" }
      ]
    }
  ],
  customer: { name: "Tanaka", phone: "090-1234-5678" },
  type: "dine-in",
  tableNumber: "5"
});

// result.orderNumber — e.g. 42
// result.totalAmount — total in smallest currency unit
// result.serviceCharge — service charge amount
// result.status — "received"

checking business hours

var menu = await bb.menu.getMenu();

if (!menu.config.acceptingOrders) {
  // show "currently closed" message
  if (menu.config.closedReason) {
    // e.g. "Outside business hours"
  }
  if (menu.config.nextOpenTime) {
    // e.g. "Opens at 11:00"
  }
}

example: a neighborhood izakaya

you run a small izakaya called Sakura-tei. you claim sakuratei as your handle and set up a subdomain at sakuratei.bb.bi.

you add your menu: categories for 前菜 (appetizers), 焼き鳥 (yakitori), 刺身 (sashimi), ドリンク (drinks). each yakitori item has a "salt or sauce" modifier group. you mark items with allergens and flag the edamame as vegan.

you ask the AI to build a menu page with a dark theme, vertical category navigation, and a sticky order summary. the AI generates the page with your actual menu data — categories, prices, allergen icons, modifier selectors, and a checkout flow.

sakuratei.bb.bi              → menu & ordering page
sakuratei.bb.bi              → "table 3, 2x negitoro, 1x karaage"

dashboard → orders           → order #47 received
                             → confirmed → preparing → ready

customers scan a QR code at the table, browse the menu on their phone, and place an order. you get a notification in the dashboard. update the status as the kitchen works through orders. at the end of the night, export the day's orders as CSV.

why go digital?

no reprinting

change a price, add a seasonal item, mark something as sold out — updates are instant. no more reprinting paper menus every time something changes.

your brand, your page

your menu lives at sakuratei.bb.bi — a page that looks like your restaurant, not a generic listing. customers scan, browse, and order without installing anything.

order accuracy

customers select modifiers and leave notes themselves. the order arrives in your dashboard exactly as they chose it — fewer mistakes, less back-and-forth.

total control

update prices, toggle ordering on/off during busy periods, add seasonal items, change business hours — all instant, all from your dashboard.

everything included

categories & itemsorganize your menu with categories, descriptions, and images
variantssizes, options — each with its own price and stock level
modifier groupsspice level, toppings, sides — required or optional, with price adjustments
allergens & dietarygluten, dairy, nuts, vegan, halal — displayed on each item
stock trackingset available quantity per variant, auto-shows 'sold out'
featured itemshighlight signature dishes
business hoursper-day schedule with timezone, auto-closes ordering outside hours
tax & service chargeinclusive or exclusive tax, optional service charge percentage
order managementreal-time dashboard with status workflow
print & exportprint orders for kitchen, export CSV for accounting
analyticspopular items, revenue tracking by period
QR codescannable QR code for table ordering
AI page builderdescribe your style → get a working ordering page
SDK accessbuild fully custom pages with bb.menu.getMenu() and bb.menu.order()

ready to put your menu online?

claim a handle, enable the menu plugin, add your items, and let the AI build your ordering page. your customers can start ordering today.