Docs

CAFE

Documentation
Back

CAFE

What is this for?

With CAFE you run a small point-of-sale / order management system, e.g., for a club café, a festival stand, or a bar:

  • Products (beverages, snacks)
  • Categories (hot drinks, cold drinks, food, …)
  • Tables (multiple parallel orders)
  • Orders with quantities and status (open, done, paid)
  • End-of-day report

The cashier UI is designed for touch operation: choose a table → tap products → save the order → later mark it as paid/done.


Typical day-to-day actions

  • Select / switch tables
  • Add products to an order, adjust quantity
  • "Place" the order
  • In the order view: check off individual line items, mark an order as paid / done
  • At the end of the day: view the end-of-day report

In the admin / back office:

  • Maintain categories & products
  • Adjust prices

Step by step

1) Choose a table (operator workflow)

1. Open /cafe/select-table.
2. Choose a table or enter a new one.
3. You'll land in order mode for that table (/cafe/order).

2) Take an order

1. Tap a product → it's added to the current order (POST /cafe/order/add).
2. Change quantity → POST /cafe/order/qty.
3. Clear the order → POST /cafe/order/clear.
4. Cancel editing → POST /cafe/order/cancel-edit.
5. Save / place the order → POST /cafe/order/place.

3) Manage orders

1. Open Orders (/cafe/orders).
2. You'll see open / completed orders, optionally sorted by table.
3. Actions per order:

  • Check off a line item ("item served") → POST /cafe/orders/toggle-item-checked
  • Mark order as done → POST /cafe/orders/toggle-done
  • Mark order as paid → POST /cafe/orders/toggle-paid

4. Load updated partial view: GET /cafe/orders/partial (e.g., for screen self-refresh).

4) End-of-day report

  • /cafe/daily-report shows revenue, quantities, and the day's distribution.

5) Manage products (admin)

1. Open /cafe/products.
2. "New" → create product (POST /cafe/products/create).
3. Update: POST /cafe/products/{id}/update.
4. Delete: POST /cafe/products/{id}/delete.

Typical fields: name, category, price, optionally display order / visibility.

6) Manage categories (admin)

1. Open /cafe/categories.
2. New: POST /cafe/categories/create.
3. Update: POST /cafe/categories/{id}/update.
4. Delete: POST /cafe/categories/{id}/delete.

> A category can only be deleted when no products reference it anymore.


Frequently asked questions / problems

"I can't place the order"

  • Is a table selected?
  • Is at least one product in it?
  • Check permissions.

"Product doesn't appear"

  • Is it set to visible?
  • Is it assigned to a category?
  • Reload the browser — CAFE relies heavily on cached views.

"End-of-day report doesn't add up"

  • Are paid/done statuses set correctly?
  • Canceled orders may count differently depending on configuration.

Technical URLs (quick reference)

Operation (/cafe):

  • GET /cafe/select-table – Choose table
  • POST /cafe/select-table – Set table

Order entry (/cafe/order):

  • GET /cafe/order – Order view
  • POST /cafe/order/add – Add line item
  • POST /cafe/order/qty – Change quantity
  • POST /cafe/order/clear – Clear order
  • POST /cafe/order/cancel-edit
  • POST /cafe/order/place – Place order

Order list (/cafe/orders):

  • GET /cafe/orders
  • GET /cafe/orders/partial
  • POST /cafe/orders/toggle-done
  • POST /cafe/orders/toggle-paid
  • POST /cafe/orders/toggle-item-checked

Products (/cafe/products):

  • GET /cafe/products
  • POST /cafe/products/create
  • POST /cafe/products/{id}/update
  • POST /cafe/products/{id}/delete

Categories (/cafe/categories):

  • GET /cafe/categories
  • POST /cafe/categories/create
  • POST /cafe/categories/{id}/update
  • POST /cafe/categories/{id}/delete

End-of-day report:

  • GET /cafe/daily-report

Notes

  • CAFE is optimized for simple, fast operation. It is not a replacement for full-featured point-of-sale software (e.g., tax interface, KassenSichV).
  • Recommended: each shift starts with a clean table and order state and ends with the end-of-day report.