Post by panagos » Wed Sep 21, 2016 7:12 am


Happy to report the early release of our Advanced Event Scheduler: ... n_id=27955

This is one of the most advanced event scheduler available for Opencart. It leverages all that makes Opencart such a fantastic platform to deliver a truly ground-breaking and feature-complete extension. The design philosophy which underpins the scheduler is to leverage as much of the core Opencart platform to ensure that all the features that the platform offers are available and usable in the context of the event scheduling/ticketing use-case.

The plugin has been built using VQMOD. Currently only English is supported as a language, if you are able to assist with translations please let me know so that I can provide you with the requisite VQMOD files to perform the translation. NOTE that currently the only version of opencart supported by this plugin are opencart and opencart

At its heart the extension treats a product as an event, and a manufacturer as an instructor. Some of the important features:
  • Products are events
  • Manufacturers are instructors
  • Events have options which define what data is required for a booking, e.g. Timeslots, Attendee First Name, Attendee Last Name etc.
  • Bulk management of event roster is supported (through upload/download of excel-based templates)
  • Ticket redemption is supported through QR-Codes.
This plugin has been successfully used in a number of different use cases:
  • To run a health care conference, with attendee bookings
  • To manage internal company training courses
  • To manage demo and open days in the retail power tool space.
Below is a high-level overview of the entities that have been introduced as well as how the Opencart framework has been customised to achieve the outlined capabilities.


An instructor is an extension of the Manufacturer entity. Like a manufacturer, an Instructor may be associated with one or more events. Unlike a manufacturer, an instructor is also associated with a customer. The for this association is that an instructor is typically a person who has an address. Additionally, the following is relevant to instructors too:
  • Skills - The skills the instructor has, relate to their abilities.
  • Bio - An HTML-based bio of the instructor.
  • Availability Roster - Indicates when instructors are available. The roster is filled up as instructors are booked for events, or manually by administrators, for example when an instructor is on vacation.
The result is that is now possible to, for example, use the standard Opencart manufacturer/brand modules to search for events that are associated to a specific instructor.


The plugin takes the notion of products and extends them to be events, with manufacturers being extended to be Instructors. An event may or may not be associated with an instructor.


Product options are used to represent the data that must be captured for bookings, which provides for an extremely extensible framework that allows users of this plugin to configure whatever options are applicable to their specific use-cases. This means that one may configure a conference with a "meal_choice" option because you need to know what to cater for, versus a demo day which would need a "customer_type" option so you can determine which
Because product options are used to represent the attributes of the event, such as timeslots, attendee first name/last name etc, it is possible to provide extremely fine-grained control over quantities, if there is a limit on seat capacity, or if prices must be adjusted depending on options selected (for example Toast, versus Filet Mignon).


Each event has an associated roster. The plugin allows you to perform bulk import and export operations using Excel templates. Additionally, as is usual with any admin-side item listing, all the required filters are available to allow you to locate/manage your attendees. Finally it is possible to:
  • view and manage attendance status for attendees (ATTENDING, ATTENDED, DID_NOT_ATTEND etc).
  • issue email comms relevant to the attendee status.
  • edit the roster, and update any attendee's detail.
The population of the roster is based on the standard opencart ordering process, (see next section), hence it is not possible to remove an attendee. The export functionality is especially useful in the scenario where an event organiser wants to, for example, print out name tags/labels. The result is an excel spreadsheet containing all the attendee information.

Order Processing

Every booking made translates into an order that is placed in the system, which means that attendees booked as part of an order, are only added to the event's roster once the order reaches a "Processing" state, i.e. when stock deduction triggers. If an order was in "Processing" state and then moves out of this state, for example the order is cancelled, then the attendee is removed from the roster.

The plugin distinguishes between the person paying for the booking, and the attendees who the booking is being made on behalf of. These may be the same person (when a person is booking a seat for themselves, but ofteb they may be different people).

The plugin also introduces the notion of anonymous bookings, which is relevant if for example a seat is free. In this context, the plugin will automatically create a booking as soon as the customer has completed their form and clicks the "Add To Cart" Button. In this way the booking process is extremely painless and straightforward. (Note: Anonymous bookings may be enabled or disabled, depending on the use case requirements). Note 2: Enabling Anonymous Checkout requires the Free Checkout payment module to be enabled.

Email Communications

The system implements rich html-based email templates to support all aspects of the booking process. The email templates follow the standard mail merge approach, with keywords in the HTML templates being replaced to make the resulting emails relevant to the party/attendee being emailed. The email comms that may be configured are:
  • Booking Confirmation Email - when an order is placed and is moves into the "Processing" state, the associated attendees are added to the event roster. At this point the booking confirmation email process triggers and the booking confirmation email is sent.
  • Booking Reminder Email - sent a day (as configured) BEFORE the event takes place to remind the attendee that their presence is required at the event
  • Attended Email - sent POST event, assuming the attendee participated in the event.
  • Did Not Attend Email - sent POST event, if the attendee did not attend the event.
The administrator may decide which of the above templates are relevant for a given event, and is then able to disable/enable the relevant plugins.

Ticket Redemption

QR Codes are used to manage ticket redemptions. The comms templates mentioned in the previous section provide a [ticket_qrcode] function which means that the resulting email contains an inlined QR code specific to the seat for the event. The intention here is that when the attendee arrives at the event, the organisers can then scan the QR code which will then automatically update the attendance register to ATTENDED. The system also allows the administrators to control the redemption process, i.e. if the redemption process requires a logged in session, which customer groups are permitted to perform the redemption etc etc. The net result is that the plugin therefore allows the roster to be automatically updated.

Upcoming events module

The upcoming events module provides a rich set of customisations. It is possible to configure whether the module must render a summary of events (for example left column/right column) or full multi-language detail (center). It is also possible to specify a date range for the filters (for example to list "Events in 2017") or all upcoming events.

Client-side requested events

One of the more specialised use cases, but this allows customers in specific customer groups to request an event to be created - an example of this use case is when a student would like their lecturer to give a lecture on a specific topic. In this case the student will request an event, specify the skills/topics of discussion, the location as well as the desired dates when the event should take place.

Other features
  • Google Maps Address Integration - can be enabled/disabled. If enabled allows for addresses to be search, with the resulting match used to pre-populate address forms for Event Locations, etc.
Multi Language
The VQMODs associated with the plugin have been structured to separate all language customisations from the core customisations; please contact me if you would like more information on how to translate the plugin to your language of choice.

Future Roadmap
  • Add more translations
  • Add support for label generation and attendance certificates
  • Add support for feedback (specifically for training course use-cases).
  • Expand support to later versions of Opencart.
  • Wait lists.
Installing the plugin.
  • Unzip the zip file to the root of your website.
  • Make sure you have VQMOD installed
  • Navigate to Admin -> Default Store -> Settings. If installed properly you will see an "Event Scheduler" tab. Select the tab, and click the "Install Event Scheduler" button.
  • Once installed, configure the various aspects of the event scheduler.
Last edited by panagos on Thu Jul 27, 2017 8:50 pm, edited 1 time in total.

Soteri Panagou
Freelance Developer and Opencart Zealot ...

New member


Sun Oct 25, 2015 3:01 am

Post by panagos » Mon Feb 20, 2017 6:42 am

The demo site for the Advanced Event Scheduler has been launched:

Soteri Panagou
Freelance Developer and Opencart Zealot ...

New member


Sun Oct 25, 2015 3:01 am

Post by panagos » Thu Mar 02, 2017 7:45 pm


Posted a little write-up about the experience of creating this plugin. ... ri-panagou

The interested reader may want to have a look at it.


Soteri Panagou
Freelance Developer and Opencart Zealot ...

New member


Sun Oct 25, 2015 3:01 am

Post by panagos » Thu Jul 27, 2017 5:05 am

Added support for OpenCart

Soteri Panagou
Freelance Developer and Opencart Zealot ...

New member


Sun Oct 25, 2015 3:01 am

Who is online

Users browsing this forum: No registered users and 1 guest