Ah movies! The love of cinema!
The story that captures your imagination, the joy of meeting up with friends, the smell of butter popcorn, the romance, the comedy, the action…. all that begins with a simple movie ticket.
And in this day and age that very movie ticket is purchased on an online cinema booking system.
In this article I’ll be covering how such an online portal – that connects a moviegoer with a movie search and ticket booking option- is built.
Let’s take a look.
What is a Movie Ticketing System?
A movie ticketing or cinema booking system is essentially an event booking system, the movie is the event and moviegoers are attendees. If you’ve booked a ticket online, you know the kind of system I’m talking about. If not, you could check out AMC Theatres or BookMyShow. Both are classic examples of movie booking websites with some differences of course.
Both these websites represent two types of systems. The AMC Theatres website is tied to a single movie theatre chain. Whereas BookMyShow is an aggregator, that fetches movies from different theatres, and provides a single point of booking.
Now, the primary difference between the two is how movies are listed, and how bookings are handled. For a website linked to an individual movie theatre, movies have to be added manually and bookings have to be handled on the website. For movie aggregators everything is managed using APIs. Movie aggregators link to individual movie theatre websites and handle movie listings and bookings using APIs provided.
A Tiny Detour for the Inquisitive Mind
Although this article will cover a movie ticketing system linked to a single movie theatre, let’s talk about movie aggregators before we continue.
Say you want to build a movie aggregator, which links to AMC Theatres among others. You’ll need to use the API provided by such movie booking websites. So, to fetch movie listings from AMC Theatres, you’ll have to refer to the AMC Developer Portal.
You will need to work with this API to list movies, upcoming releases, handle booking and so on. The API merely connects you to the actual AMC website, which returns the needed information, or freezes the booking to complete the purchase.
(But all of this is a topic for another day. It certainly does require us to dive deep into development and let’s not stress ourselves out at this point. 😉 )
So, let’s take a look at how we can create a movie ticketing system from the ground up.
A platform can really help you speed up the development, and you’d have guessed it by now, that my platform of choice is WordPress. Now, I could go on and on about why WordPress is great for both clients and developers alike, but you should find most of those points covered here.
Events Calendar as the Core of the Booking System
Ever heard the phrase there’s an app for that. Well in WordPress world there’s a joke that’s going around- “there’s a plugin for that!”. :-p
Well, in this case there is a plugin which we can use. We basically need to pick an event booking engine as the core of our system. Now out of the pool of very many event management plugins available, all might seem to match your basic needs. But, you need to consider future possibilities and whether the plugin would meet your needs down the road.
Let’s begin by listing the features the plugin needs to have:
- An option to add and list events (or movies)
- Event categorization option
- Event Search option
- Ticket purchase option
- Pricing options for tickets
Of course if you’re planning for the whole shebang, then you’ll have to look for a plugin that has:
- A seat booking option
- Ticket cancellation option
- Event reviews & ratings
- Social Sharing options
Well, when I look at these feature lists, there are two plugins that come to mind: Events Calendar PRO and Event Espresso (EE4). The two leading event management plugins, that cover most of these features with ease.
I’d recommend Events Calendar:
- The Recurring events functionality makes adding movie show timings on multiple days simple (if you’re not planning on selling tickets)
- The Location search option with a Map view makes finding a theatre nearby easy
- The WooCommerce integration makes several payment gateways available
- The option to export event details to a Google Calendar or iCal make reminders easy
- The Eventbrite integration can act as a workaround for seat selection
Event Espresso too has some good features, and if those are the one’s you need, Event Espresso could be your choice for the system. Here’s what works for Event Espresso:
- Multiple date and times per event
- A ticket scanning add-on to scan movie tickets at the venue
- EE3 (legacy version of Event Espresso) has a seating chart add-on as well
Honestly, you could pick either. But Events Calendar does provide you a cost-effective base.
Okay. So, what’s next?
Ah yes, picking the right theme!
Picking the Right Theme
Now, when you install WordPress, it comes with a set of default themes. But let’s face it, those default themes are quite an eyesore (except for Twenty Fifteen. But Twenty Fifteen is more of a blog theme, and is not suitable for a movie booking website).
So, for your website, you could follow my oh-so-famous guide to picking the right theme 😀 . But here’s the gist, you’ll need a responsive theme that behaves well with Events Calendar and WooCommerce (that’s not necessarily built for a bookings website).
My pick of the lot is The7.
- It needs no knowledge of coding
- It’s got a page builder in-built (Visual Composer along with Ultimate Add-on for VC)
- Header layouts and Color options… and more.
Once you install and activate the theme, you can install one of the demos to get your site up and ready in no time.
Installing the Plugins
You can then install and activate the needed and peripheral plugins:
There are some settings involved. We’ll take things one step at a time.
Adding Your First Movie
I’m sure you’re excited about setting up your first movie, so let’s start with The Events Calendar plugin.
You need to begin by setting up the plugin. Head over to Events -> Settings. (Remember, the PRO version adds more options to the base plugin, so the options are available under the same menu)
Now, the most important options you need to set here are:
- Events URL Slug to ‘movies’
- Single event URL slug to ‘movie’
- End of day cutoff to the time the last show ends. For eg., 1:00 am
- Currency options
Most other options could be left as is. Or you could quickly browse through them and updated the ones you need.
Now over to creating your first movie event. 😀
If you have a user level understanding of WordPress, adding events should be a breeze. Head over to Events -> Add New.
Enter the title, description and add a featured image (movie poster). You can then update movie specific settings.
For any movie show, you’ll have to enter the Start Date & Time and End Date & Time. Now, this event will be for a single show- so, it will be on the specified date at the set time (start time to end time).
For example, the above movie will play from 7:00 pm to 9:00 pm on 11th December.
If the movie will be played on multiple days at the same time, you’ll need to setup the movie show as a recurring event or duplicate the event multiple times.
Use Recurring Events If you’re not planning on selling tickets online
Setting up recurring events is easy. All you need to do, is set a Recurrence Rule, for everyday.
You can even set Exclusion rules if the movie show is not available on certain days, say for example the weekend.
Once you’re done setting the rules, you can update the movie event. (You’ll have to do the same for all shows)
Duplicate Events If you are planning on selling tickets online
[su_note note_color=”#fffde8″]Since Event Tickets Plus does not support individual tickets for recurring events, you’ll have to duplicate each event to add separate tickets.[/su_note]
Duplicating events is easy. You know what you have to do. To save you the manual effort, you can use a post duplicator plugin or the Duplicate TEC Event plugin.
Once you create your event, you should now notice the movie added to the events calendar.
Movie Search Options
The Events Calendar provides a calendar search option which moviegoers can use to filter movies based on dates. And you can use the Events Calendar widgets to display upcoming shows in the sidebar.
All good with adding and searching for movie shows? The final step is handling payments.
So far we’ve only added a movie show notification. We haven’t added a price or purchase option. Let’s take care of that to have our basic movie booking website ready!
Now, the Events Calendar plugin does provide an option to set the ticket price. You should notice the Event Cost option on any movie (event) add/edit page.
However, the plugin by default does not provide a booking option. Hence you would need the Event Tickets Plus extension (and Event Tickets). And of course- WooCommerce as the e-commerce cart.
When you activate WooCommerce, you need to follow the basic steps to set up your store. What’s important is activating the needed payment gateways so that buyers have multiple options to make payments.
Now over to adding tickets!
Once you install and activate the Event Tickets Plus extension, you should notice a Tickets option added under your events (movies).
Use this option to add new tickets, and to sell them using WooCommerce. You can create multiple tickets each priced differently if needed.
- You need to set the Ticket Name
- Ticket Description
- The Price
- The Stock (number of seats available)
Remember to update the movie, once you’ve added your tickets.
If you go back to your movie on the front-end, you should notice a ticket purchase option.
Interested buyers can add tickets to their cart and make the purchase. WooCommerce handles the purchase part, so you don’t need to worry about it.
So you can continue following the same steps to add more movies and showtimes, and add tickets.
And there you have it!
Your very own movie booking website is ready!!
But you shouldn’t stop there. What I’ve covered is just the basics. There’s a lot more you can add. Like social sharing options, movie ratings and reviews, seat selection, and even create a mobile app!
But that’s a lot to cover in one article, let’s wind up for now.
So, over to you? Got questions, opinions? Fire away!