M masamenu.tr
⚙️ Features

🍲 Meal Plan Subscriptions

Calendar meal plans: subscriptions, skipped days, automatic order generation

Documentation

Meal Subscription Plans

A meal plan isn't a one-off order — it's a subscription: the guest pays for a period (a week or a month) and gets ready-made lunches delivered on a schedule, without re-ordering every single day. It fits canteens, dark kitchens, corporate office lunch delivery, and fitness meal programs — anywhere a guest eats on a recurring schedule rather than occasionally.

Open: Admin Panel → Meal Plans (admin.masamenu.tr/meal-plans).


What a meal plan is

A plan is a template the venue configures:

  • name, description and variant — a free-text tag like "standard," "veg," "light" for different flavor lines on the same schedule;
  • dishes or combos for the day and their quantities;
  • delivery weekdays (e.g. weekdays only);
  • subscription length — one week or several (a month ≈ 4 weeks);
  • price for the whole period — usually cheaper than the sum of one-off orders for the same days;
  • delivery window (e.g. "12:00–13:00");
  • active/inactive — inactive plans aren't shown to guests.

Admin section

The "Meal Plans" page has a location picker and two sections:

Plans — a list with create/edit: the form collects name, description, variant, currency and period price, duration in weeks, delivery weekdays (day toggles), dishes with quantities, and the delivery window. The "Run now" button manually triggers today's order generation — handy for testing without waiting for the automatic cron.

Subscriptions — a table of the location's active subscriptions: customer, plan, period (start/end dates), status (active/paused/cancelled/completed), payment (unpaid/paid), and the number of orders delivered so far; from the table you can mark a period as paid or cancel a subscription.

The section shows up in the admin menu only when meal plans are enabled as a location capability.


Storefront and subscribing

If the location has active plans, the menu page (in food/canteen mode) shows a "Meal subscription" block above the dish list: plan cards with the period price and delivery days, and a "Subscribe" button.

The guest picks a plan, enters name, phone and a delivery address, and confirms — the subscription is created right away. Online billing for the period isn't automated yet: after subscribing, the guest sees an "Awaiting payment" status — the period is paid on the spot or as arranged with the venue, and staff mark it paid in the admin panel.


The subscriber's calendar

If a guest has already subscribed on this device (the browser remembers it), on their next visit to the menu page they see their subscription and a calendar of upcoming deliveries. For any given day there's a "Skip" button — that day's delivery isn't generated, without cancelling the whole subscription.


Daily order generation

Every day, at a set time, an automatic process runs through all of a location's active subscriptions and, for each one that has a delivery scheduled today (and the day isn't skipped or the subscription isn't paused), creates a regular delivery order tagged with the "meal plan" source. From there the order flows through the same pipeline as any other: the kitchen (KDS), the order monitor, the own-delivery screen — there's no separate queue for subscription orders.

Re-running generation for a day that's already been processed doesn't create a second delivery — generation is idempotent.

The dishes and price locked into a subscription at signup don't change even if the plan template is edited later in the admin panel — every active subscription carries its own snapshot of the terms.


Paying for a period

Right now, subscription payment is manual: the venue collects money for the period on the spot (cash/card) or however's convenient, and marks the subscription as paid in the subscriptions table. Automatic billing for the next renewal period isn't wired up.


Related sections

  • Orders — where scheduled orders land
  • Kitchen (KDS) — handling subscription orders alongside regular ones
  • Own Delivery — the courier screen that delivers subscription meals

FAQ

What if a guest forgets to skip a day and isn't home?

The order for that day is generated on schedule regardless — skip a delivery ahead of time in the subscriber calendar, or contact the venue directly.

Does editing the plan template affect subscriptions already signed up?

No — each subscription keeps its own set of dishes, price and days, fixed at signup; template edits in "Plans" only apply to new subscriptions.

Is the subscription billed automatically each period?

Not yet — payment is manual: the venue collects money for the period and marks the subscription paid in the admin panel.