Event Booking Systems
As a business owner, I have been involved in organising exhibitions, fairs and markets for a number of years. And whilst I can not describe myself as a developer, I do have a reasonable working knowledge of Drupal 7 and quite a bit of experience in specifying the build of event websites and internal booking systems.
Having looked around this forum, there seem to be a number of people wishing to accomplish similar event related things with Drupal Commerce and I'd like put down my own thoughts, as an organiser, regarding some common aspects that I think I will need.
My hope is that some of the bigger brains around here can help us form a methodology for creating flexible event booking systems with Drupal Commerce.
Keeping it simple, the management of the content types and general workflow goes something like this.
- Define the event
- Define the venue
- Define the dates
- Promote the attractions
- Sell the space
We may need to sell a number of different space related products to our customers such as; admission, seats, tables, booths, units of area or units of frontage. In addition, there may be ancillary items such as advertising, sponsorship, signage, lighting or furniture rental.
So how do we go about this is in Drupal Commerce? What is the product? Are we selling the event, the venue, the event date or the space?
An example. I run local trade fairs aimed at the public, where vendors sell products, displayed on tables that they rent from me. I operate a repeating schedule of events from a number of regular venues. At each event I have a specified number of tables for rent. Each venue has a different capacity and sometimes different admission charges which are just taken on the door.
In creating my event schedule, I have a venue content type and an event content type. Using the Date Module, this method allows me to create individual or repeating events to which I can easily reference a venue content type which details the capacity, admission charges, location maps and the like. This method allows me to create different views of upcoming events, by date, by event type or by location. It is what users understand and it works well.
It would seem that it is the date specific event that I need to sell space for, but it is the venue which dictates the amount of space for sale. Could this me made to work with Drupal Commerce?
I can see how I might create an event-date-product of which I have say 100 units for sale which can be controlled using a using a stock control module. But this is really counter-intuitive when compared with my normal method of creating my event schedule using event and venue content types.
Once vendors have booked in for an event I need to be able to create views which show a traders bookings history at any given venue or event.
Are there any boffins out there?
Did you ever find a solution or anything close to the functionality you require?
I have a similar need. I'm working on a site for a restaurant that does concerts and murder mystery dinners. The venue remains the same but depending on the type of event, the number of tickets available changes. Plus we would like to present the user a visual of the theater/dining room and have them choose their seats.
I have also posted a comment here: http://www.drupalcommerce.org/discussions/189/seat-booking
... i have a similar need too ...
It seems that selling an event would be a simple process. I am creating a site right now that sells registrations to a fitness class. Pretty simple. Each class is a product, on a specific date with a specific price, etc...
I have a SERIOUS need (as do all of you) for a similar system that sells event registrations, but ALSO can be used to reserve seats (as in, an assigned seating live-theatre venue) Seems that Commerce would be the system to do it, but I too am not a developer (though I have pretty good knowledge of Drupal 7 and getting better with Commerce)
Hopefully someone will come up with something. I would be more than happy to lend my thoughts, but I have no programming expertise at all.
Crooker - your solution
Crooker - your solution sounds like what I am looking to do. How do you display the dates for the fitness classes? Are they in a list (view) and then the user click into the product link and adds to cart from there? I am looking for something similar whereby a fitness class (in this case an academic class) has x number of available dates, each offering the same thing (they are not in sequence), and the customer signs up for 1 class. Wondering how to best do this calendar display from a product.
How did it go?
I was wondering if you were able to do it, and what technical solution(s) you used, as I have the exact same kink of project.
I have a site that sells general admission tickets and vendor spots for a festival in Colorado.
What I'm using is the commerce stock module and commerce invoice module.
The invoice module is modified to create an electronic ticket with barcode and convert to pdf then send an email with all the tickets a customer ordered (1 pdf file per ticket). It stores the information in a seperate table regarding the ticket information.
When a customer comes to the box office we can scan the ticket and wristband the customer. It then makes that ticket inactive and no longer in use.
I will probably make a module for eticketing when I get some time. After all I have a festival to run this weekend.
Date attribute field
Did anybody found a solution for this? The answer lies in having a date as an attribute field, is this possible and how? I've been searching for a long time to get this working, but don't find a solution.
There are a lot of solutions
There are a lot of solutions out there :D
Event Registration Modules: http://www.drupalcommerce.org/extensions/module/event-registration
Of particular note is the Commerce Registration module that allows you to sell a limited and defined amount of "access" to "products" which could be date-based events that only have 20 tables available, etc.
Event Registration Sandboxes: http://www.drupalcommerce.org/extensions/sandbox/event-registration
Lots of projects the community is working on (read: sandboxes are not finished projects that are fully functional), including one called "Commerce Availability" meant to help you track if something is "available for booking" and "Commerce Booking."
Joshmiller, thanks for the answer!
With commerce registration you can indeed led people register, but how do you display a pop-up calendar on a node display thus having a date field as an attribute. This is the missing feature according to me, or is it possible?
Edit: This would also be solved if the add to cart form on a product display could display other filters. With an autocomplete widget it can filter products based on titles, so I would like to filter on dates. Is this possible?
I think there is a better way handling booking, rental product management and much more.
My solution would consist to create one product variation by date, with some granularity settings.
To avoid listing hundreds of variations on product page, I would have to alter the product reference field widget to show product variations in a calendar (I think full calendar, used in rooms module is the best value for this).
With a form to update/create product on date range (update if existing, create if not), inspired by commerce bulk product creation module, we could handle products attributes too.
- Ability to manage per-product stocks
- Ability to search available products with common search solutions.
- Integration with Registration API for booking products
- No need to customize line items
I thinks this solution integrate well with commerce system and all submodules.
Here is the product reference widget exemple: https://www.dropbox.com/s/wyxviv687gaolr7/idee%20product%20bulk.jpg
What do you think about this?
This could possibly be hacked
This could possibly be hacked to deal with this. http://drupal.org/project/commerce_booking
An villa module is proposed but I don't know when that will arrive. If the villa module came then the tables could count as different villas with a different number of rooms.