Release 4.19.0 of pretix

April 26, 2023

Today, we are releasing pretix 4.19.0. This release introcudes a new experimental concept of connecting tickets to reusable media. At the same time, we fix lots of bugs and add minor functionality here and there.

Big thanks go to chondaen12, Hanna Happl, Loïc Alejandro, Maarten, Michael Happl, Michael Stapelberg, Vasco Baleia, and Yvan Cadoux who contributed to this release. ❤️

pretix 4.19.0 is now available for installation via pip. The new Docker images will appear on Docker over the next few hours. All customers of pretix Hosted are already using the new version and do not need to take any action.

Reminder: Deprecation of MySQL/MariaDB support

As announced three months ago, we want to remind you that future releases of pretix will support PostgreSQL as the only database for production setups. The final decision has not been made which release will be the last with MySQL/MariaDB support, but it might be this one already. This does not affect you if you use pretix Hosted.

We know this may be quite inconvenient to you if you are currently using pretix Community or pretix Enterprise with MySQL or MariaDB as your database. We have pondered this decision for multiple years now and believe it is the best way forward for pretix. Supporting just one database for production setup will make it much easier for us to design and develop for optimal performance and stability. It will also allow us to make use of some database-specific features of PostgreSQL to make pretix more powerful.

We have published a migration guide that shows you how to move your data from MySQL to PostgreSQL step by step.

If you are a pretix Enterprise customer and are affected by this, please feel free to contact us before you start with the migration. We are happy to help you in planning the migration.

Migration guide

Reusable media Experimental

With pretix 4.19, we introduce a new concept of "reusable media" to pretix. The new feature is entirely optional and, for the moment, considered an experimental feature. We will still be making major changes to this feature in the coming months as we figure out all important use cases affected by it.

The new feature introduces an additional layer of abstraction on top of "tickets". A reusable medium can be any physical object that is linked to a ticket. At the moment, this physical object could either be something with a printed barcode, or an NFC tag. After the object and the ticket have been linked, the object can be used instead of the ticket for check-in. The key feature here is that the object may be reused and can later be linked to a different ticket. And just the same way, an object can also be linked to a gift card.

This is useful for multiple different scenarios, for example a plastic card for a season pass could be reused for the next season, saving on time and printing costs. The same way, re-usable plastic wristbands could be issued at the entrance and returned when leaving the venue.

At the moment, the new feature supports two very specific use cases:

  • You can set up tickets to use re-usable barcodes. This can mainly be used for the season pass use case described above. To do so, after activating the new feature in your organizer settings, you can set a media policy in your product settings. You will also need to change the barcode type on your ticket layout to "Reusable Medium ID". While issuing of tickets with a new barcode can happen through any sales channel, re-using an existing barcode is currently only supported in pretixPOS.

  • You can set up gift cards based on NFC tags. This can be used to allow for prepaid payments of any kind inside your event. You can set this up in your organizer settings and it currently works with any type of NFC tag using the tag's UID. A more secure approach using cryptographically secured identifiers for specific tag types will likely be added soon. Creation and usage of the gift cards is currently only supported in pretixPOS.

If either of this sounds like a perfect fit for your organization, feel free to reach out and talk it through with us, we're happy to help you get started.

Other combinations of the features, such as e.g. using NFC tags for tickets, are currently not possible. We have constructed the new feature in a very generic way that allows us to add more and more capabilities in the future, but we'll take it step by step, learning from our first real-world experiences with beta customers.

Smaller changes and bugfixes

Ticket shop and widget

  • When hovering over the "incl. X % taxes" part of a product price, the price excluding taxes is now shown.

  • The default value of the "country" field in address forms can now be influenced by geographical data on the IP address if a GeoIP database is installed (see below).

  • Waiting list: Dynamic values in emails to the customer now use the correct language.

  • Widget: A hidden element has been added that allows including the location in an event detail view.

  • Widget: The default CSS for the close button has been updated to make it appear centered in more cases.

Ticketing backend and configuration

  • You can now limit the maximum length of answers to text questions.

  • The event dashboard now displays the URL to your shop and allows you to generate and download a QR code for it.

  • If an order requires approval because one of the included products requires approval, the respective order positions are now highlighted visually.

  • PDF editor: A bug has been fixed that prevented making text fields really small.

  • PDF editor: The "Validity start date" variable has been fixed to use the correct value.

  • PDF editor: The "List of add-ons" no longer makes use of internal product names.

  • When changing an order manually, you can now add a product in relation to another product even if it is not configured to be an add-on product, but a bundled product.

  • You can now configure an email template that is sent to attendee email addresses if an order has been approved.

  • The email template for waiting lists now allows you to use the customer's name.

  • When sending emails to all customers, you can now choose to attach calendar files.

  • Order search has been improved in regard to searching invoice numbers without all preceding zeros.

  • The advanced order search interface now allows to search for all orders that require attention at check-in.

  • Stripe: We've prevented accidental disconnecting from your Stripe account by hitting the enter key in the Stripe settings form.

  • The export of all tickets in PDF format now correctly respects the ordering by attendee name for add-on products.

  • If "@" is used as part of the sender name for emails, it is now automatically removed to improve email delivery rates.

  • As an additional security measure, user sessions are now pinned to a specific country if a GeoIP database is available. If the session is used from a different country than it was created from, a new login is required.

Updates to official plugins and tools

  • The Certificates plugin has been released in version 1.9.2 to fix a sorting issue in the PDF export.

  • The Exhibitors plugin has been released in version 1.4.1 to fix minor issues.

  • The free font pack plugin has been released in version 1.9.2 to include a version of Droid Serif that supports more languages.

  • The pretixPOS backend plugin has been released in version 3.11.0 to allow configuration of email texts when sending digial receipts and to extend the cash closing report.

  • The Seating plugin has been released in version 2.1.2 to fix a minor usability issue.

  • The Tracking plugin has been released in version 2.7.0 to offer more options for consent management.

Runtime and server environment

  • If you are installing pretix from source using pip, remove the subdirectory=src argument from the URL. Instead of pip3 install -U "git+", now use pip3 install -U "git+"

  • This version of pretix requires Python 3.9 or newer.

  • pretix can now optionally make use of a GeoIP database, see documentation.

Plugin API changes

No changes.

REST API changes

  • A new webhook pretix.event.order.payment.confirmed has been added.

  • Endpoints for the new data type reusable media have been added. A new attribute use_reusable_medium can be used when creating orders.

  • The check-in endpoint supports a new attribute source_type which will be required for new use cases of reusable media in the future.

  • The force flag in the check-in API now forces a successful check-in in more cases.

Raphael Michel

Raphael is the founder and main developer of pretix. He is passionate about user-friendly, elegant software, and when he's not busy building software for conference organizers, he enjoys co-organizing con​fer​en​ces himself.

Read more blog posts

Any questions?
+49 6221 32177-50 Mo-Fr 09:00-17:00 Uhr