Add a ticket office to your silverstripe site. Payments handled trough the SilverStripe Omnipay module.
Install the module trough composer
composer require bramdeleeuw/silverstripe-event-tickets
Add the nessesary extensions to the DataObject you want to sell tickets on. This can be an Event, for example with an events module. Or you can add the tickets to a special tickets Page, when, for example, you are selling tickets for an festival where one ticket grants access to multiple events.
# the object that sells tickets
XD\Events\Model\EventPage:
extensions:
- Broarm\EventTickets\Extensions\TicketExtension
# the ticket controller
XD\Events\Model\EventPageController:
extensions:
- Broarm\EventTickets\Extensions\TicketControllerExtension
- Broarm\EventTickets\Checkout\Steps\RegisterStep
- Broarm\EventTickets\Checkout\Steps\SummaryStep
- Broarm\EventTickets\Checkout\Steps\SuccessStep
On the extended Object you need to expose a couple of methods that we use to add data to the ticket.
public function getEventTitle()
{
return $this->owner->Title;
}
public function getEventStartDate()
{
return $this->owner->dbObject('StartDate');
}
public function getEventAddress()
{
$this->owner->getFullAddress();
}