#112

Product support

Visit this product's website for support.

Categories

  • Marketing
  • Social

Provide reservation form with reservations management. You can define time slot length (default 15 minutes) and one reservation length (default 2 hours). After each reservation, this time slots are taken and it's not possible to make another reservation for this time (time picker slots are disabled). This reservation can be cancelled to release that taken time slots.

Related plugins

Key features

  • reservations have coloured statuses, bulk actions and fulltext search to save your time
  • nice and clean dashboard widget
  • reservations export with status filtering
  • reservation can be created directly from the backend
  • returning customers function

Technical features

  • shipped with translations and covered by unit tests
  • reservation form has CSRF protection and multiple bots submissions protection
  • reservation form has AJAX sending and also non-JS fallback
  • overloadable data seeding for statuses
  • no other plugin dependency

Real usage screenshot

Status management

More screenshots

Status management with coloured icons:

Status management

Status detail

Status usage

Filtering by status:

Status usage

Reservations export with status filtering:

Status usage

Reservations management

Installation

  1. Insert reservation form component to your page.
  2. Be sure you have jQuery loaded!

Configuration

You can set time slot length (default: 15 minutes) and reservation length, which means how much time one reservation takes (default: 2 hours).

If you have reservations at 13.10.2016 at 11:00 and also at 13:00, both with 2 hours length, all time slots from 09:15 to 14:45 will be booked (with 15 minutes slot length).

------------ 11:00 ------------- 13:00 --------------

Because nearest previous reservation can be done at 09:00 (with 2 hours lengths till 11:00) and next reservation at 15:00.

Returning Customers

Plugin allow you to mark returning customers:

  • set amount of previous reservations at Backend > Settings > Misc > Reservations
  • at reservations listing, click at the list settings (the hamburger at the right corner) and check Returning
  • it shows star at customers with more then <your-threshold> non-canceled reservations

Units, capacity, prices

If you need to manage your units (cars, teachers, tables), with some capacity (4 seats, group of 10 people), with some price - you should definitely check reservations units plugin.

Backend calendar

Looking for backend calendar to see your reservations visually? Take a look at backend calendar plugin.

Override configurations

When you want to override default plugin's config.php, which is placed at plugin's folder /config, just create file:

/config/vojtasvoboda/reservations/config.php

And override values you want to change. Example of this file:

<?php return [
    'formats' => [
        'date' => 'd.m.Y H:i:s',
    ],
];

Extending plugin

If you want to extend some plugin and don't know how, check Brands extending examples repository, where you can find many examples which can be applied on every plugin including this one.

Public facade

For other plugins you can use plugin's facade vojtasvoboda.reservations.facade with some public methods as follows:

$facade = App::make('vojtasvoboda.reservations.facade');
$facade->storeReservation(array $data);
$facade->getReservations();
$facede->getActiveReservations();
$facade->getReservedDates();
$facade->isDateAvailable(\Carbon\Carbon $date);

Override seeding

For override seeding just copy seed files from plugin's folder /updates/sources and copy them to:

/resources/vojtasvoboda/reservations/updates/sources/

For example:

/resources/vojtasvoboda/reservations/updates/sources/statuses.yaml

This file will be load with first migration, or you can force refreshing migrations with this command:

php artisan plugin:refresh VojtaSvoboda.Reservations

Unit tests

Build Status

Just run phpunit in the plugin directory. For running plugin's unit tests with project tests, add this to your project phpunit.xml file:

<testsuites>
    <testsuite name="Reservation Tests">
        <directory>./plugins/vojtasvoboda/reservations/tests</directory>
    </testsuite>
</testsuites>

Receiving "Class 'PluginTestCase' not found" error? Just type composer dumpautoload at your project root.

Code check

Codacy

License

Reservations plugin is open-sourced software licensed under the MIT license same as OctoberCMS platform.

Icon made by Freepik from www.flaticon.com.

  • Found the plugin useful on 14 Sep, 2017

    It's very nice plugin ! I had questions for this plugin :

    • I would like to deactivate the reservations for this day from some hours. For example, from 5PM the reservations for the rest of this day are disable. How modify the code to do that ?
    • How to make so that several customers can book the same schedule ? For example, 4 customers can book one hour and more than 4 bookings the schedule is blocked.

    I hope to receve a response for my questions. Thanks for your plugin

  • author

    Replied on 18 Sep, 2017

    Thanks for the positive review! If you want to block some time interval, the easiest way is to create your own reservation from 5 p.m. to midnight. For more reservations in one date please check Reservations Units plugin - it's made exactly for this purpose. For more questions, feel free to send me an email or message, I will be glad to help.

  • Found the plugin useful on 18 May, 2017

    very nice plugin! After I install this plugin. I suddenly find we still need another module, 'Payment system'! because this is very important for the reservation circle for make "MONEY", yes, you know what I mean.

    After the reservation has been made. the system shall take him to the payment page. after the pay agency redirect to the server. the reservation then put the recorder into system. or make the status to paid.

    for front-end. the disabled book time shall be always available, until it has been paid.

  • author

    Replied on 19 May, 2017

    Hi Mike, feel free to create this plugin. I could make some hooks or other functionality if you will it :-) Let me know.

1.1.3

Fix working days

Sep 22, 2017

1.1.2

Make date picker translatable to french.

Aug 12, 2017

1.1.1

Put old method back for backward compatibility.

May 15, 2017

1.1.0

Move configs to settings, add working days and opening hours, better validation of selected date.

May 15, 2017

1.0.13

Add translate settings, add translate front, fix error

May 10, 2017

1.0.12

Add russian lang

May 05, 2017

1.0.11

Fix form labels names.

Apr 08, 2017

1.0.10

Enable backend date availability validation when reservation is changing.

Mar 07, 2017

1.0.9

Fix sending confirmation email to admin by locale chosed at backend.

Mar 07, 2017

1.0.8

Refactor plugin's mailers.

Dec 16, 2016

1.0.7

Add Admin confirmation function.

Dec 15, 2016

1.0.6

Fix reservation datepicker JS.

Dec 15, 2016

1.0.5

Returning customers function.

Dec 14, 2016

1.0.4

Add Spanish locale (thanks to Victor van Herpt)

Dec 13, 2016

1.0.3

Count all reservations with same email and put it to the confirmation mail template.

Dec 12, 2016

1.0.2

Add method getReservationByInterval() to facade to better extensibility.

Dec 04, 2016

1.0.1

First version of Reservations

Oct 14, 2016