Skip to main content

๐Ÿฝ๏ธ๐Ÿ†• Lunch Module Update

The new version of the Lunch module introduces advanced management of dishes, menus, and dining areas. Everything is centralized, editable, and connected to the userโ€™s booking experience.

The module previously known as Lunch is now called Food Services. This update brings improvements in the management of menus, dishes, and dining areas, providing a more complete and flexible experience for administrators.

Below are the available changes and functionalities.

๐Ÿ‘จโ€๐Ÿ’ผ Administrator Page

Module settings

New option: Maximum time to book for the current day

Within the details of each office, in the section Configuration > Canteen, a new field is added: Maximum time to book.

This field allows defining up to what time bookings can be made for the current day.

New option: Maximum booking time for a shift

Within the canteen module, in the shift configuration section, a new option has been added that allows defining a deadline for making reservations for each shift.

This configuration determines until what time users will be able to book that shift, with the maximum allowed value being the end time configured for the shift itself.

Field behavior

  • The value is configured in time format (HH:mm).

  • It applies only to bookings for the current day.

  • It does not affect bookings for future days.

  • It is independent of shifts (morning, afternoon, full day).

New option: Time intervals

This functionality allows defining time intervals within the canteen module and associating them with the different shifts. The goal is to prevent the same user from making more than one booking within the same time interval, even if they belong to different shifts.

This makes it possible to cover scenarios such as:

  • Breakfast (08:00โ€“10:00)

  • Lunch (12:00โ€“15:00)

  • Dinner (18:00โ€“21:00)

And avoid a user booking more than once within the same time block.

1. Creating intervals

Within the details of an office, in the Canteen module, a new section is added:

Canteen intervals

In this section, the administrator can:

  • Create multiple time intervals.

  • Define each interval by:

    • Start time.

    • End time.

  • View the intervals as chips.

  • Delete or modify existing intervals.

Each chip includes an explanatory tooltip indicating that intervals are used to group shifts and limit multiple bookings within the same time range.

2. Assigning intervals to shifts

In the configuration of canteen shifts, a new field is added:

Associated interval

This field is a select that allows linking each shift to one of the previously created intervals.

New option: Take Away

This functionality allows adding the Take Away option to canteen bookings, indicating whether the user will consume the service to go or on-site.

The behavior of this option is configurable from the administrator, allowing each canteen to decide whether to enable or disable take away according to its internal operation.

Display in the booking

If the option is enabled in the administrator:

During the canteen booking process, the user will see a new field: "Take Away"

This field allows indicating whether the meal will be:

  • To be consumed on-site.

  • To go.

Canteen structure

The Food Services section is divided into three main areas:

  • Dishes

  • Menus

  • Dining Areas

Note: It is possible to create dining areas without menus or dishes. To do so, go to the Dining Area Management section.


If dining areas with menus and dishes are required, you must first create the dishes, then the menus, and finally the dining areas.

๐Ÿฒ Dish Management

The first step in the setup process is creating dishes.

To create a new dish, the following fields must be completed:

  • Name (required)

  • Image (optional)

  • Allergens (optional): these are predefined in Hybo and can be selected if needed.

  • Type (required): refers to the dish type (Starter, First Course, Main Course, or Dessert).

  • Status: the dish can be enabled or disabled.

  • Show price: allows administrators to decide whether the dish price will be visible to users during the reservation process.

  • Rich text description: the description field now supports rich text, allowing the inclusion of formatted text, images, and links to provide more detailed information.

๐Ÿ“‹ Menu Management

Once the dishes have been created, menus can be set up.

  • Name (required)

  • Image

  • Allergens

  • Menu availability dates

  • Show price: allows administrators to display or hide the menu price during the reservation process.

  • Rich text description: allows the creation of more detailed descriptions using formatted text, images, and links.

Available settings:

  • ๐Ÿฝ๏ธ Flexible Minimum and Maximum Dish Selection per Type

    The "Minimum one dish per type" configuration has been enhanced to provide greater flexibility when defining menu rules.

    Previously, enabling this option required users to select at least one dish from every available category (Starter, Main Course, Dessert, etc.). With this improvement, administrators can now configure minimum and maximum quantities independently for each dish type, allowing the creation of more tailored menu experiences.

    For example, it is now possible to require:

    • At least 1 Starter

    • 0 Main Courses (optional)

    • 0 Desserts (optional)

    while also defining the maximum number of dishes that can be selected for each category.

    ๐Ÿ”ง Configuration Rules

    • Minimum one dish per type:
      When this option is enabled, the minimum values for all dish types are automatically set to at least 1, preventing any category from having a minimum value of 0.

    • Minimum and Maximum values by dish type:
      Administrators can define the minimum and maximum number of dishes that users can select for each category (Starter, First Course, Main Course, Dessert, etc.).

    • Validation rules:
      The system ensures that the configured minimum value cannot exceed the maximum value for the same dish type. For example:

      • โŒ Minimum Desserts: 2 / Maximum Desserts: 1 โ†’ Not allowed.

      • โœ… Minimum Desserts: 1 / Maximum Desserts: 2 โ†’ Valid.

    This enhancement provides greater flexibility when configuring menus, allowing each organization to adapt the reservation experience to its own dining service requirements.

Menus can also be enabled or disabled from this section.

Associating dishes with a menu

From the Dishes tab, the desired dishes can be activated for each menu using a toggle.


โ€‹

๐Ÿข Dining Area Management

Once menus have been created (or not), dining areas can be set up.

  • Name (required)

  • Site (required)

  • Capacity (required)

  • Building

  • Floor

  • Allow Takeaway

  • Status: Enabled or Disabled

  • Dining Area Main Image, displayed as the featured image for users.

  • Dining Area Floor Plan, helping users identify and locate the space more easily.

  • Rich Text Description, allowing formatted text, images, and additional content to be included.

In the Shifts tab, the different dining services are configured:

  • Shift name (required)

  • Assigned menu (optional)

  • Start time (required)

  • End time (required)

  • Interval

  • Booking Cut-off Time

Multiple shifts can be created as needed.

๐Ÿ“Š Reservation Management (Data List)

In addition to structural configuration (dishes, menus, and dining areas), the Food Services module includes a Data List section where administrators can:

  • Make reservations

  • View existing reservations

  • Download a .csv file

  • View data in charts

๐Ÿ™‹โ€โ™€๏ธ User Page

The new Food Services module experience introduces a dynamic and simplified form that allows users to make reservations in a quick and personalized way.

Below are the new features available in the booking process:

When accessing the Food Services form, users will be able to see:

  • The overall occupancy of the module, providing a clear view of the general availability of the service.

  • The first step is to select the desired dining area. Only dining areas that have been enabled by administrators will be displayed.

    Each card can display:

    • Dining area main image.

    • Dining area floor plan.

    • Dining area name.

    • Brief description.

  • Once the dining area is selected, the available shifts associated with that dining area will be shown.
    โ€‹
    The user can select the desired shift, as long as there are available spots for it.

If the "Take Away" option is disabled by the administrator for the selected canteen, it will not be displayed during the reservation process, providing a cleaner and simpler user experience.

  • After choosing the shift, the system will display the list of available menus for that time slot and dining area. The user must select one of the enabled menus.
    โ€‹


    If the selected menu includes multiple dishes per type, an additional section will be enabled in the form, allowing the user to choose:

  • The dishes they want to reserve, categorized by type (Starter, First Course, Main Course, Dessert).

  • The system will enforce the rules configured by the administrator (at least one dish per type, or allowing multiple dishes per type according to defined limits).

Once the dish selection is complete, the form will show the user:

  • A summary of the complete order

  • The total amount to be paid, if prices are associated with the dining area

๐Ÿ“ Enhanced Menu and Dish Information

Menu and dish descriptions now support rich text formatting, allowing more complete and visually appealing content to be displayed.

Users can now view:

  • Descriptions with enhanced formatting.

  • Links to additional information.

  • Images and other rich content added by administrators.

In addition, menu and dish prices will only be displayed if the administrator has enabled the "Show price" option in the corresponding configuration.

Finally, the user can confirm the reservation by clicking the corresponding button.

Once confirmed, the reservation will be recorded in the system and can be managed from the history or personal reservations section.

Did this answer your question?