Release 3.0.0 of pretix

Aug. 8, 2019

Today, we are releasing pretix 3.0.0. This release includes many features that have long been anticipated: Reserved seating, a refined settings UI, an SCA-ready Stripe integration, early-bird quotas, agenda-based product restrictions and more. Read on to find out all about the changes! Big thanks go out to Christian González, Christophe Piret, Maarten van den Berg, Mattias Axell, Sohalt, Vitor Piedras, and Vlad who contributed to this release. ❤️

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

Reserved seating

Our biggest change, by far, is the addition of a reserved seating feature. We've waited years to be able to pull this off and we're so glad it finally worked. This allows pretix to be useful for new types of events in industries where pretix previously was not an option.

While pretix 3.0 contains all important changes to pretix' core to allow this to be integrated, the onboarding process still requires a little individual consulting to create the first seating plans for you and show you how the new feature works. If you'd like to use it, please get in touch, it's ready for you now!

View a live demo

Refined settings UI

As pretix grows, more and more options appear on our settings pages. While we try hard to organize them cleanly, there is no way around these pages getting longer and harder to look at. Therefore, we've changed the design pattern of our settings pages and introduced a tab bar that allows you to switch between different groups of settings that were previously shown all in a long list that you needed to scroll. We hope this makes it easier for you to find out what settings are relevant for you and quickly find what you need without scrolling through a long page.

Stripe integration is SCA-ready

Starting September 14th, the European Union's Revised Directive on Payment Services (PSD2) becomes fully effective. This requires a lot of technical changes all over the payment and FinTech sector, and one of the most prominent changes is that card payments (apart from some exceptions) will require two-factor authentication ("SCA") from the buyer. If you use Stripe, you probably received a number of emails already warning you about this change.

Starting with pretix 3.0, our Stripe plugin has been ported to Stripe's newest APIs and is fully SCA-ready. You're good to go!

Oh, and by the way, we are now certified as a Stripe Verified Partner. 🎉

Early-bird quotas

If you're selling tickets cheaper to early buyers, you could always do so using fixed ticket availability time frames. However, often you might want to restrict the discount not to everyone who buys tickets before a specific date, but for example to the first 100 tickets. This is now possible through a combination of two new features:

First, you can now configure products to show up only if a specific other quota is unavailable. Second, quotas can now be configured to "close" as soon as they are sold out. This way, as soon as the last early-bird ticket is sold, the price switches over, but there is no switching back and forth if tickets get canceled. Have a look at our product structure guide to find out how to set up quotas and products correctly to achieve this behaviour.

Read the guide

Agenda restrictions

If you host a conference consisting of multiple workshops that users need to select from during registration, you could always do so with add-on products. With our new Agenda constraints plugin, you can ensure nobody buys two workshops that happen at overlapping times, even if you have variable time slots. Read our product structure guide to learn more about setting up an event this way.

Read the guide

Security fixes

A minor security issue of low severity has been fixed that allowed for XSS when inspecting the details of logging entries as a system administrator. We did not issue an immediate security release as we normally do since we consider the risk especially low in this case: The bug can only be triggered by an action that is not usually used by users of pretix other than ourselves when debugging pretix, and we could check for pretix Hosted that nobody actually tried to exploit it. Even if someone tried to, our strict content security policy would have made it very hard to create any real damage. The bug was an internal discovery.

Smaller changes and bugfixes

  • Images in emails sent by pretix are now attached to the email instead of inlined as data: URLs. This should make them visible in more email clients.

  • Separate numbering schemes for invoices and cancellations can now be configured.

  • The waiting list feature can now be enabled or disabled on a per-product level.

  • The public display of the number of available tickets can now be enabled or disabled on a per-product level.

  • When changing order details in the backend (e.g. invoicing addresses or question answers), an email can be sent to the user optionally.

  • When computing the percentual payment method fee, other fees like service fees are now taken into account.

  • Vouchers can now be used to show hidden products even when mapped through a quota.

  • Questions that depend on other questions can now be triggered by multiple values of the question.

  • Cancellation is now possible by default for newly created products.

  • The list of events in the backend now shows event meta parameters.

  • When deleting items or quotas, assigned vouchers are no longer deleted as well.

  • When deleting test mode orders, used vouchers are now re-activated.

  • A new setting has been added to hide all sold-out items.

  • The widget now shows "Register" instead of "Buy" on its main button when all products are free.

  • The widget now supports filtering an event calendar by meta data attributes.

  • The pretix button can now be used with a voucher but without any products.

  • Various bugs around the pretix Widget and pretix Button have been fixed.

  • The list of orders can now be filtered by specific product variations.

  • The order overview can now be filtered by order or payment date.

  • The date selection has been improved in event series shops.

  • Payments which are declined by PayPal now lead to a more useful error message.

  • A bug has been fixed that prevented automatic assigning of waiting list positions in combination with event series.

  • Invoice PDFs are now shown directly in the browser instead of being offered for download.

  • A preview of user-uploaded images has been added.

  • When an add-on variation has a description, it is now shown automatically as soon as the variation is selected.

  • When changing payment methods for an order and all payment methods are free, no fees are displayed.

  • When editing dates in an event series, you are now redirected back to the same page after saving.

  • New order positions can now manually be added to empty orders.

  • PayPal and Stripe integrations now identify themselves with pretix' official partner IDs.

  • The "tax list" exporter is now available in Excel and CSV formats.

  • The global navigation search box can now also find vouchers and orders.

  • The login form now automatically focuses the email field.

  • Disabled user accounts can no longer receive notifications.

  • A bug has been fixed that prevented image previews for products with variations in the ticket shop.

  • A bug has been fixed that caused the device list to show wrong a revocation status.

  • A crash has been fixed that occured when re-using previous email texts.

  • General HTTP errors during VAT number validation are now handled gracefully.

  • A bug in quota display in the backend has been fixed.

  • A new management command shell_scoped has been added that allows you to use a Django shell with disabled or pre-configured scopes (see below). For example, with python -m pretix shell_scoped --organizer__slug=demo you can open a shell that only has access to the organizer demo.

  • Exports can now be triggered from the command line with the new export management command.

Updates to official plugins and tools

  • pretix-sepadebit was released in version 1.6.0 to provide better error messages and allow organizer-level export of payments.

  • pretix-cartshare was released in version 1.6 to ensure compatibility with pretix 3.0.

  • pretix-bounces was released in version 1.1.0 to ensure compatibility with pretix 3.0 and clean up old addresses.

  • pretix-mollie was released in version 1.2.0 to ensure compatibility with pretix 3.0.

  • pretix-saferpay was released in version 1.2.0 to ensure compatibility with pretix 3.0.

  • pretix-newsletter-ml was released in version 1.3.0 to fix a minor bug.

  • pretix-sofort was released in version 1.3.1 to improve logging of failed payments.

  • pretix-certificates was released in version 1.3.0 to ensure compatibility with pretix 3.0.

  • pretix-facebook was released in version 1.2.0 to ensure compatibility with pretix 3.0.

  • pretix-mailchimp was released in version 1.3.0 to ensure compatibility with pretix 3.0.

  • pretix-posbackend was released in version 1.5.0 to ensure compatibility with pretix 3.0.

  • pretix-resellers was released in version 1.3.0 to ensure compatibility with pretix 3.0.

  • pretix-shipping was released in version 1.5.0 to ensure compatibility with pretix 3.0 and deal with split orders.

  • pretix-slack was released in version 1.2.0 to ensure compatibility with pretix 3.0.

  • pretix-tracking was released in version 1.5.0 to ensure compatibility with pretix 3.0 and send event names to Google Analytics.

Plugin API changes

REST API changes

  • The check-in list redemption endpoint can now return a special status code for canceled orders. This feature requires an opt-in parameter.

  • The attributes show_quota_left, allow_waitinglist, and hidden_if_available have been added to the Item resource.

  • The attribute show_hidden_item has been added to the Voucher resource.

  • When creating orders, a bug with assigning non-unique position IDs has been fixed.

  • The endpoint to create orders is no longer considered experimental.

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