Home / Help Center / pos-app-bakery / bakery / Cake Orders
🎂 bakery

Cake Orders

Cake Orders is the bakery's order desk for custom and advance cakes — capture full design specs (size, flavour, shape, tiers, message, decoration notes), collect a deposit and track the balance, move the order through a clear status pipeline, and bill it into POS or schedule its production run without leaving the page.

📍 Menu path: Bakery → Cake Orders
👤 Who uses it: All roles can view, create and edit orders; billing a cake order into POS and printing invoices follow the same permissions as regular Sales billing

Overview

Each order tracks Customer details, Delivery (date, slot, address), Cake Specs (size, flavour, shape, tiers, message, design notes, photo reference), and Pricing (base price, customization charge, total, advance collected, balance due) — total and balance are always calculated automatically, never typed directly.

Orders move through a 6-step status pipeline — Received → Design Confirmed → In Production → Ready → Delivered → Paid — plus a separate Cancelled state; each status has its own colour badge, and the table row highlights amber (due today) or red (overdue) based on delivery date.

From the row actions you can record a partial or full payment against the balance, bill the order straight into POS billing (auto-carrying the price and any already-collected advance as a discount), print the resulting invoice once billed, or schedule a production run for the cake with one click — the suggested production date defaults to one day before delivery.

When an order reaches Ready and has a phone number on file, a share button appears to send the customer a ready-for-pickup notice referencing the correct delivery slot and any balance due.

Before You Start

Step-by-Step Guide

1 Create a new cake order

Customer Name is required and can be searched from your existing customer list; Balance Due is never a manually typed field — it is always Total minus Advance.

  1. Click New Order.
  2. Fill Delivery Date * and Delivery Slot (Morning 9am–12pm, Afternoon 12pm–4pm, Evening 4pm–8pm, or Pickup) and an optional Delivery Address.
  3. Under Cake Specifications, choose Size (250g up to 5 Kg, or Custom with a free-text weight), Flavour, Tiers (1–4) and Shape.
  4. Optionally add a Message on Cake (max 60 characters), Design / Decoration Notes and a Photo Reference.
  5. Under Pricing, enter Base Price * and any Customization Charge — Total is calculated automatically; enter Advance Collected and Balance Due is calculated automatically from the two.
  6. Add any Internal Notes — staff-only, never printed on the customer-facing order card.
  7. Click Create Order.

2 Advance the order's status

  1. Click the green status button in the Actions column — its label always matches the next status (Design Confirmed, In Production, Ready, Delivered, or Paid) — to move the order one step along the pipeline.

3 Collect a deposit or the remaining balance

  1. Click the balance amount in the Balance column, or the payment icon in Actions, to open Record Payment.
  2. Enter the Amount Received (capped at the remaining balance) and pick a Payment Method — Cash, UPI, Card, Cheque, or Bank Transfer — plus an optional note, e.g. a UPI reference number.
  3. Click Record Payment — the order's advance and balance update immediately, and the payment method/note are appended to the order's notes.

4 Bill the order into POS

  1. Click the invoice icon (only shown before the order has been billed) to send the order straight into POS billing as a single custom line item priced at the order total, with any advance already collected pre-applied as a line discount, so the cashier only has to collect the true remaining balance.
  2. Once billed, the invoice icon becomes a printer icon — click it any time to reprint that invoice.

5 Schedule the production run for a cake order

  1. Click the factory icon, shown on any order that is not yet Ready, Delivered, Paid or Cancelled, to open Schedule Production Run.
  2. It arrives pre-filled with an Item/Recipe name built from the flavour and size, a Production Date defaulting to one day before the delivery date, and a note referencing the order and customer.
  3. Adjust Qty if needed and click Schedule — the run then appears on the Production Schedule page.

6 Notify the customer when the cake is Ready

  1. Once an order is marked Ready and has a phone number on file, use the inline share button to send a ready-for-pickup message that includes the delivery slot, date, and any balance still due.

7 Search and filter orders

  1. Use the search box to find an order by customer name or phone.
  2. Use the status chip row — All, Received, Design Confirmed, In Production, Ready, Delivered, Paid, Cancelled — to narrow the table.
  3. Rows due today are highlighted amber, and overdue rows (past delivery date, not yet Delivered, Paid or Cancelled) are highlighted red automatically.

8 Edit or delete an order

  1. Click the edit icon to reopen the full order form for changes.
  2. Click the × icon and confirm to permanently delete an order — reserve this for orders created in error, since delivered or paid orders should normally stay on record.

Every Field & Button, Explained

Field / ButtonWhat it does
New OrderOpens the cake order form.
Due Today / Active Orders / Balance Pending stat tilesSummary counts and totals across all current orders.
Search customer name or phone…Filters the order table.
Status filter chipsAll plus the 7 individual statuses.
Customer / Cake / Delivery / Amount / Advance / Balance / Status columnsThe order table.
Delivery Date * / Delivery Slot / Delivery AddressWhen and where the cake is delivered or collected.
Size / Flavour / Tiers / ShapeCore cake specifications.
Custom WeightOnly shown when Size is set to Custom.
Message on CakeMax 60 characters, printed on the piping/topper.
Design / Decoration NotesFree-text instructions for fondant work, theme, colours etc.
Photo ReferenceURL or description of a reference image for the design.
Base Price * / Customization ChargeThe two components that sum to the order Total.
Total (auto) / Advance Collected / Balance Due (auto)Total and Balance Due are always calculated, never typed directly.
Internal NotesStaff-only notes, never printed on the customer-facing order card.
Status advance buttonLabel always matches the next status in the pipeline.
Record Payment iconOpens the deposit/balance payment modal.
Bill via POS iconShown before an order is billed; sends it to POS billing as a pre-priced custom line item.
Print Invoice iconReplaces the Bill via POS icon once the order has a linked sale; reprints that invoice.
Schedule production run iconOpens a pre-filled Production Schedule form for this cake.
Share buttonOnly shown at Ready status with a phone number on file; sends a ready-for-pickup notification.
Edit iconReopens the full order form.
Delete (×) iconPermanently deletes the order after confirmation.
Amount Received * (Record Payment)Capped at the order's current balance due.
Payment Method chipsCash, UPI, Card, Cheque, Bank Transfer.

Tips & Best Practices

Troubleshooting & FAQ

The invoice icon disappeared after I billed an order.
That is expected — once an order has a linked sale, the invoice icon becomes a printer icon so you can reprint that same invoice instead of billing it a second time.
I can't find the production-scheduling icon on some orders.
It is hidden once an order reaches Ready, Delivered, Paid or Cancelled, since production should already be finished or the order is no longer active.
Balance Due looks wrong after I edited the order.
Balance Due is never typed directly — it is always recalculated as Total (Base Price + Customization Charge) minus Advance Collected, every time either of those changes.
The share button isn't showing even though the order is Ready.
It only appears when the order also has a Customer Phone on file. Add the phone number via Edit if it is missing.
Recording a payment says the amount exceeds the balance due.
Record Payment caps the accepted amount at the order's current Balance Due — split a larger payment, or double-check the balance shown at the top of the modal.

🧑‍💻 Developer Notes

Source component(s):

  • frontend-app/pos-app-backery/src/pages/bakery/CakeOrdersPage.jsx
  • frontend-app/packages/pos-react-lib (GenericOrderModal, DocumentShareBar, openInBilling)

Backend endpoints used:

  • GET /bakery/cake-orders
  • POST /bakery/cake-orders
  • PUT /bakery/cake-orders/:id
  • PATCH /bakery/cake-orders/:id/status
  • DELETE /bakery/cake-orders/:id
  • GET /sales/:id
  • GET /settings
  • POST /bakery/production

Related tables (db-core repositories):

  • CakeOrder
  • Sale
  • ProductionRun
  • Customer

Redux slices:

  • None directly — dispatches to Redux only via openInBilling when handing an order to POS billing

Feature flag key: cake_orders

A local, bakery-only component that composes several shared pos-react-lib primitives: GenericOrderModal (the tabbed order form), DocumentShareBar (the ready-for-pickup share button) and openInBilling (hands the order to POS billing with the order pre-loaded as a single custom line item, tagged so billing can return here afterwards via a sourceOrder reference of type "CAKE").