Ticket Shop Zoo Zürich


Case summary

Zoo integrated a ticketing system into their new online shop in Drupal 8. The online shop was built with Drupal Commerce with a custom ticketing module.

Case description

The Zoo Zurich has a new ticketing shop based on Drupal. Zoo integrated a ticketing system into their new online shop in Drupal 8. The online shop was built with Drupal Commerce with a custom ticketing module. The module can activate tickets in the entry gates, send them as nice PDFs to the visitors and sync them with the zoo app.
Previously the online ticketing was covered with a costly third party service. Thanks to the custom ticketing module Drupal 8 now issue the tickets, costs can be saved and the user experience got improved a lot.

The new shop with the new ticketing got launched after the lockdown. Due to changes in the customer behaviour the proportion of online tickets vs. all tickets grew instantly from 20 to 50%. Within the first month more than 40’000 tickets were sold. By coincidence this was a perfect timing.
The visitor receives the tickets in an email and can also access them within the Drupal account or the Zoo app. It is also possible to purchase tickets directly in the app.
For administrators, the tickets can be managed in customized views in the backend. They are also visible in the order view and it is possible to invalidate them due to e.g. order cancellations.
The commerce promotion module was enhanced to cover this specific type of product. It is possible to link the promotion to a sponsor and have the sponsors' logo on the tickets (if the respective promotion got added to the order). Furthermore, it is possible to craft promotions around the selected validity date of tickets, e.g. Monday visiting dates are 10% off.

Case goals and results

The goal was to replace the 3rd party ticketing service by an own, fully integrated solution based on Drupal with an improved customer experience. This goal was successfully achieved. Over 10’000 tickets were sold in the first week.


One challenge was to integrate the api of the Korona ticketing cash register system. Although it went relatively smooth the typical communications overhead and intense testing was needed and valuable. Another tricky part was the technical timing (write to database etc.) during checkout in conjunction with the payment provider, order states and the issuing of tickets. Here we found no other method than looking for edge cases with intensive testing. Even after the go live further edge cases were found and had to be solved.

Community contributions

Liip released the ticketing module on drupal.org: https://www.drupal.org/project/commerce_ticketing


Hostpoint (Hosting sponsor of zoo Zurich)

Why should this case win the splash awards?

The Zoo ticketing solution is a clever and enterprise level solution how to deal with ticketing when Drupal and Drupal commerce are already part of the IT landscape. In case of the Zoo this was a fantastic business case where the spendings for the development were refinanced in a matter of weeks.

Case video