Release 1.6.0 of pretix

July 30, 2017

Slightly ahead of our monthly release schedule, we today release the seventh stable version of pretix. Big thanks go out to Clint, Daniel, Joepristo, Johan von Forstner, Martin Gross, Michele Fattoruso, Sanket Dasgupta, Tobias Kunze, and Tydon K, who contributed to this release. ❤️

This release contains a wide range of big new features as well as a great number of small improvements.

pretix 1.6.0 is now available for installation via pip. The new docker images will appear on Docker Hub over the next few hours.

New feature: Event series

Events can no longer only represent a single event, but also a whole event series. By this we mean a collection of events that share most of their properties and should be handled in a single ticket shop. We imagine this feature being very useful for example for theater groups who play the same piece multiple times or a band on tour or for training offers or seminars that have multiple possible dates.

This feature now allows you to save time while creating those events, since you do not need to create a new event for each one of the dates. It also allows your customers to buy tickets to multiple events of your series within one single order.

Dates of a series can differ in title, date, location, prices and quotas. This feature needs to be activated during event creation to be available.

New feature: More Stripe payment methods

The payment provider Stripe which has been supported for accepting credit card payments with pretix for a long time, recently integrated more payment methods into their service that are especially interesting to European and Asian customers.

We are glad to announce that pretix' Stripe integration now also supports paying with Alipay, Bancontact, giropay, iDEAL and SOFORT. All you need to do to use this is to enable the respective payment methods within your Stripe account and within pretix' payment settings.

New feature: File upload questions

You can now define questions that ask the user to upload a file. This can be very useful to implement something like checking Student IDs for reduced tickets or requiring pictures of your attendees to print badges. But we are sure that you will find even more uses for this that we could think of right now!

New feature: Calendar view

On an organizer's public profile page, the events can now optionally be shown as a calendar instead of a list. This is especially useful if you have lots of events. Additionally, the events of an organizer are now exposed as an iCal feed that people can subscribe to or add to their personal calendars.

New email features

In addition to sending out mass emails to all participants, you can now send emails to individual customers directly from the pretix backend interface. A new email history view shows you all emails that have ever been sent through the system to a specific customer – no matter if they have been sent individually, collectively or automatically.

Note however, that only emails sent after this pretix update will show up there reliably.

New feature: Invoice prefixes

Before this release, invoice numbers used to be constructed by your event slug and either a serial number or the order number. For example, if your event had the slug demoevent your invoice numbers could be DEMOEVENT-00345 or DEMOEVENT-XZFSA-1, depending on your settings.

Now, you can define the first part of the invoice number independently from the event slug to make it fit into your regular accounting structure better.

This feature has another very useful effect: If you set the same invoice number prefix in multiple of your events, they will share their number space. By this we mean that if you set both to INV for, then the first invoice in one event will for example get INV-00001 and the first in another event might get INV-00002. For every organizer, it will be ensured that no complete invoice number is used twice.

New feature: Relative date settings

In many settings, you can now specify dates relative to the event date or relative to the end of presale etc. instead of with an absolute date. This comes especially handy if you use the event series feature described above, since a fixed date might not do the job any more.

Smaller changes and bugfixes

  • You can now specify that add-ons are "included" in a base product, leading to their original price being ignored.

  • The Stripe plugin now uses Stripe Elementes instead of Stripe.js to render the credit card field.

  • The Stripe plugin now supports payments with 3D-secure-enabled credit cards.

  • It is now possible to manually delete waiting list entries.

  • During checkout, required form fields are now marked as such.

  • In invoice addresses, the country now needs to be selected from a list instead of a free input field.

  • Automatically hide company name and VAT ID fields in invoice address from non-business customers.

  • It is now possible to only require the name, but not a full invoice address.

  • Stripe and PayPal webhooks need no longer to be defined per-event but instead can be pointed to a global webhook. Please keep the old webhook configuration in place for existing events.

  • When refunding an order, the Stripe and PayPal plugins now ask you if the money should be refunded automatically or not.

  • Free products can now be excluded from invoices.

  • The "Tags" view of the voucher system now counts correctly for multi-redemption vouchers.

  • When copying an event, the "event is public" flag is now copied as well.

  • An email is now optionally sent to the customer if an order is canceled.

  • Languages are no longer represented by flags but by their names.

  • The "add to cart" button is now disabled until a product has been selected.

  • Collapsed panels now expand by default if they contain validation errors.

  • The ordering of products in the order overview now follows the general product order.

  • A new exporter has been added that allows to export all tickets in one single PDF file.

  • When creating a product, you can now directly add it to a quota or create a new quota.

  • The ticket editor now allows adding the product description as well as a new organizer-specific text field to the ticket layout.

  • When setting a slug, the UI now makes clear that it will be used in URLs.

  • The event shop frontpages now contain structured microdata to improve search engine indexing.

  • No ZIP files of tickets can be downloaded for Passbook any more, since the Wallet app cannot open them and it created confusion.

  • It is now possible to manually generate invoices for unpaid orders even if they are only automatically generated upon payment.

  • In the order list, order search, and when matching bank transactions manually you can now search orders by invoice number.

  • The design of the email template editor has been improved, switching between edit mode and preview mode is now more intuitive.

  • A bug in invoice rendering and the invoice exporter has been fixed.

  • The "Go to shop" button is now also accessible in the mobile version of pretix.

  • A layout bug in the list of plugins has been fixed.

  • Spaces in bank transfer references are now ignored when looking for the payment reference.

  • Payment providers are now ordered alphabetically.

  • The list of events in the backend now shows the event's short name.

  • Fixed a bug that lead to the wrong language sporadically being displayed at one place in the shop.

  • Fixed a bug that lead to download buttons being displayed on mobile even though downloading was not available.

  • The Sentry integration now actually works in all situations.

Changes to official plugins

  • pretix-pages, a mini-CMS embeded in pretix, has been released in version 1.2.1 to address a bug when modifying a page with pretix 1.6.

  • pretix-passbook, an output provider for Apple Wallet files, has been released in version 1.2.0 for compatibility with the event series feature.

  • A new plugin pretix-newsletter-ml has been released that allows you to add customers to a mailing list.

REST API changes

  • A new resource Subevent has been added to implement the new event series feature. Many other resources now contain a new subevent attribute to count for the event series feature.

  • The Invoice resource has been changed, instead of the invoice_no field there is now a number field that contains the full invoice number including prefix. This also needs to be supplied to get an invoice's detailed data.

Plugin API changes

  • If you maintain an exporter or output provider, please make sure it behaves useful with event series.

  • New signal: The question_form_fields signal allows to hook custom fields into the question form of each ticket during the order process.

  • New API: It is now possible to provide an own invoice renderer via a plugin.

  • Plugins can now have a different django-internal label than their name.

  • BaseTicketOutput has a new property multi_download_enabled that defaults to True.

  • The base templates now contain a block custom_header that you can override.

  • Implementations of BasePaymentProvider.order_control_refund_render should now accept a new parameter request. If your implementation does not yet, pretix will catch the TypeError and re-try without the parameter for backwards compatibility.

Thank you very much!

Some of the major features in this release have been possible as a result of work sponsored by our friends at ERNW Insight and subkom GmbH.

Thank you both very much for supporting our open source efforts!

If you are also interested in sponsoring us to work on specific features, please get in touch with us.

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