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 subscriptions (admin.cenaly.ru/meal-plans) — that is how both the sidebar entry and the page heading are labeled.
The section works on the international contour. On the Russian one (
cenaly.ru) meal subscriptions are not supported yet: the menu entry is visible, but any action inside it ends with an error.
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 subscriptions" 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 "⚙️ Generate orders now" button manually triggers today's order generation and shows a "Generated: N" summary — 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 ("Mark paid"), undo that ("Mark unpaid"), 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.
What you need to get started#
- The "Meal plans" toggle switched on in the App Store — the section is niche and off by default.
- Menu items the lunches are assembled from — the plan is built from your catalog.
- A pickup or delivery schedule — the days and times orders are generated for.
- A way to pay for a period — payment is marked manually by an administrator.
Limitations#
- On the Russian brand (
cenaly.ru) meal-plan subscriptions are not supported — the menu item is visible, but the section does not work there. - There is no automatic charge per period. Recurring billing was deliberately not built: an administrator marks the period as paid.
- The section is off by default and is enabled with a toggle.
- This is a subscription, not a one-off pre-order — for one-off timed orders there are pre-order slots in the regular checkout.
Troubleshooting#
There is no "Meal plans" item in the menu. The section is not switched on — enable it in the App Store.
Orders for the day were not generated. Check the subscription schedule and skipped days in the subscriber's calendar: a skipped day creates no order.
A guest paid but the period is marked unpaid. Payment is marked manually by an administrator — there is no automatic charge per period.
The section does not work on the Russian brand. That is correct — the contour is not supported yet.
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.