Documentation

Introduction to ShopBite

ShopBite is an open source online ordering system for restaurants, pizzerias and delivery services. It combines Shopware 6 as the backend, the ShopBite plugin for opening hours, holidays and extras, and a fast storefront built with Nuxt.

The quickest way to get to know ShopBite: run it on your own machine. All you need is Docker.

Up and running in five minutes

Install Docker

Install Docker Desktop (macOS, Windows) or Docker Engine with Compose (Linux). Plan for about 4 GB of free RAM.

Clone and start

git clone https://github.com/shopbite-de/shopbite.git
cd shopbite
docker compose up -d

The first start downloads the images and installs Shopware, which takes a few minutes. Follow the progress with docker compose logs -f setup. As soon as it prints storefront config written, the shop is ready.

Open the shop

WhatURLLogin
Storefrontlocalhost:3000
Shopware Administrationlocalhost:8000/adminadmin / shopbite
Backofficelocalhost:3010chef or theke / shopbite
Mails (Mailpit)localhost:8025

You get a complete restaurant shop: 71 dishes in 9 menu sections, pizza sizes, extras, side dishes, vegetarian and vegan badges, opening hours and a working checkout.

Order a pizza as a guest. The confirmation mail shows up in Mailpit, and the order appears in the Administration under Orders.

Things to try

  • Try the contact form: messages sent from localhost:3000/kontakt show up in Mailpit as well.
  • Change the menu: edit a price in the Administration under Catalogues > Products. The storefront shows the new price after a minute or two.
  • Set opening hours: under ShopBite > Business Hours (the demo shop is open around the clock). Add today under Holidays and the storefront shows the shop as closed.
  • Work like the restaurant staff: the backoffice on localhost:3010 is the simple admin for a restaurant. chef (Management) edits dishes, prices, sections, extras and opening hours, theke (Personal) sees today's orders, pauses online ordering and sets the delivery time. It installs as an app on phones and tablets, and Mein Zugang sets up login with fingerprint or Face ID.
  • Start without demo data: SEED_DEMO_MENU=0 docker compose up -d on a fresh install creates only the sales channel, without the menu.
  • Start over: docker compose down -v deletes all data, the next start is a fresh install.

The Administration of the quickstart runs in German. Switch the language for your user under your profile in the top left corner.

Make it your shop

The storefront/ folder in the repository is your storefront. Start page texts, imprint, privacy policy, terms, colours and logo live there as plain files:

WhatWhere
Start page texts and sectionsstorefront/content/index.yml
Imprint, privacy policy, terms, payment and deliverystorefront/content/*.md
Brand coloursstorefront/app/assets/css/main.css
Logostorefront/public/light/Logo.png, storefront/public/dark/Logo.png
Name, address, phonestorefront/nuxt.config.ts

With Node.js and pnpm every change shows up in the browser right away:

cd storefront
pnpm install
pnpm dev

The storefront then runs on localhost:3001 and uses the Shopware of the quickstart; the setup creates the credentials for you. docker compose up -d --build storefront then puts your version on localhost:3000.

What is ShopBite?

ShopBite consists of several open source components, already wired together in the quickstart:

ComponentPurpose
Shopware 6Backend for products, orders, customers and payments
ShopBite pluginOpening hours, holidays, extras, delivery times and checkout rules
ShopBite storefrontFast, mobile ordering interface built with Nuxt 4
Order PrinterPrints new orders on a receipt printer in the kitchen

ShopBite is made for restaurants, pizzerias, takeaways, delivery services and every food business that wants to take orders online without paying commission to a platform.

From trial to a real shop

The quickstart is meant for trying ShopBite. It uses fixed passwords and runs without HTTPS. For a real shop:

  1. Install Shopware, for example with the production setup from shopbite-de/shopware (Docker, TLS, S3 storage).
  2. Set up the ShopBite plugin and maintain your business hours.
  3. Move the storefront/ folder into its own repository and deploy it. It extends the ShopBite storefront as a Nuxt layer, see first steps with the storefront.
  4. Optionally connect a receipt printer.

The architecture overview shows how the parts fit together.