Release 3.5.0 of pretix

Jan. 12, 2020

Today, we are releasing pretix 3.5.0. This release contains lots of great improvements, such as an import for order data, budget limits for vouchers, new options to redeem vouchers, new text rendering options for PDF, and lots more. Big thanks go to Abdullah, Katharina Bogad, Maarten van den Berg, Maico Timmerman, Patrick arminio, oocf, pajowu, and saad91 who contributed to this release. ❤️

pretix 3.5.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.

Attention: pretix 3.5 will likely be the last release of pretix to support Python 3.5, so we encourage you to upgrade to Python 3.6 or newer before the next pretix release.

Order import

We've always been proud of our export capabilities – if you use pretix, we don't want you to get locked in, we want you to be able to take your data elsewhere if you need to. Now, pretix makes the first step in the opposite direction: You can now bulk-import orders made through a different system. This is useful if you are switching to pretix from a different system and need to take some data with you, but it's also useful if you have some orders happening through a channel that you handle externally from pretix.

Voucher budgets

When creating a voucher, you can now define a discount budget. For example, if you create a voucher that reduces your ticket price from €10 to €7 and has a budget of €30, it will automatically stop working after it has been used ten times. In this simple use case, you could have also just configured a maximum number of redemptions, but if you e.g. apply a percentual discount to a wider range of products, this can help you to limit the budget you spend on a promotion.

Voucher redemption for existing carts

It is now possible to apply a discount voucher to the cart even after the cart has been created. Previously, vouchers needed to be entered before selecting the product. pretix will automatically choose which product(s) in the cart the voucher has the most beneficial effect on and apply it. This of course does not work for vouchers which grant access to hidden products, these still need to be redeemed upfront.

Improved text rendering

We've made three important changes to our PDF rendering engine that is used for tickets, badges and certificates of attendance:

  • Text objects can now be rotated freely, so you have a little bit more flexibility for your design, but you can also utilize paper formats that require folding and therefore rotated texts on different parts of the sheet.

  • Text objects used to grow from the bottom, e.g. if you defined a single-line text object and then three lines are required for the actual content, the text would flow out to the top. As this is pretty irregular behaviour, we've added a new option to change that behaviour. Using the new button you can define that text flows down to the bottom. This is also the new default if you create new text objects.

  • The renderer does now (partly) support right-to-left languages and ligatures required for Arabic and similar languages. Unfortunately, there are still some issues with multi-line text that we probably cannot fix due to technical limitations.

pretixPOS updates

We've completed our work to make pretixPOS compatible with new German laws regarding cash register systems. Users of pretixPOS in Germany are now required to purchase a signature device to prove that no data has been manipulated. We've compiled an information page in German with everything that changed.

Along the way, we've improved lots of other things around pretixPOS. For example, session closing reports now work a little differently and pretixPOS can now print ticket QR codes on a receipt printer. We have a few more changes for pretixPOS in the pipeline for Q1/2020, so stay tuned!

Gift orders & improved shipping fees

With the shipping module, you can now ask your users whether the purchased tickets are intended as a gift. If they are, the price will automatically be removed from the ticket layout.

Additionally, we've extended our capabilities to calculate shipping fees. Instead of a flat fee per shipping method you can now define a base fee and an additional fee every couple of tickets, e.g. "€1.20 + €2.20 per 5 tickets".

Smaller changes and bugfixes

  • A new setting trust_x_forwarded_proto has been added to the pretix.cfg config file to resolve issues with SSL detection.

  • A translation to Arabic has been added and pretix now has proper support for right-to-left languages.

  • A new option was introduced to allow printing the expiration date of an order on invoices.

  • Customers can no longer request an invoice before a payment method has been selected.

  • When customers request to generate an invoice while the invoice address is empty, they are optionally asked to fill in their address.

  • When setting event meta data values, autocompletion for existing values within the organizer account has been added.

  • Our "modern" invoice renderer is now the default for new events.

  • The default length of gift card codes can now be configured in the organizer settings.

  • The list of events on the organizer profile page now shows the start time of events.

  • Check-in lists can now be filtered by the special attention flag during export.

  • It is now possible to allow specific sales channels (such as resellers or pretixPOS) to purchase seats even if they are blocked.

  • The CSV export of vouchers now contains the seat ID for seat-specific vouchers.

  • An incompatibility between all-product vouchers and seating charts has been fixed.

  • The order tax list export now includes information on the customer.

  • The headline of HTML emails no longer contains the subject prefix, since it usually leads to the event name being included in the headline twice.

  • Deleting or shredding event data no longer requires the user password, but instead requires that the user recently authenticated themselves.

  • Compatibility problems with external authentication have been fixed.

  • When creating ticket layouts, you can now explicitly specify the language of the ticket.

  • The list of connected devices has been reordered to move revoked devices to the bottom.

  • SameSite=None is now never set on non-HTTPS connections to avoid problems with Chrome during development.

  • Customer-side ticket download can now be triggered through GET requests.

  • Bank transfer: The import page now shows the time of the last import.

  • HTML anchors have been added to the products and categories on the shop frontpage to allow linking directly to a product.

  • PDF layouts can now include the city of the invoice address.

  • When cloning events, the time zone is now correctly set.

  • A bug has been fixed that lead to the internal name of products being shown to customers on one checkout step.

  • A bug has been fixed that lead to customers being presented with details of canceled payments.

  • A bug has been fixed that lead to seats being blocked by orders even if the order position was canceled.

  • A bug in the validation of the maximum number of items per cart has been fixed.

  • A bug has been fixed that leda to copied vouchers being redeemed from the start.

  • A bug introduced in 3.4.0 when creating exports or running other long-running tasks has been fixed.

  • A bug during loading of the widget javascript code has been fixed.

  • A bug in the CSV export of the voucher list has been fixed.

  • A bug in the version checker of the plugin system has been fixed.

  • Failed SMTP connections are now retried in more situations.

Updates to official plugins and tools

  • pretix-campaigns has been release in version 1.2.3 with a performance improvement.

  • pretix-fontpack-free has been released in version 1.4.0 to add the font "DejaVu Sans".

  • pretix-mailchimp hass been released in version 1.4.2 to fix a limitation when selecting lists and add an option to ignore the purchaser's email address.

  • pretix-mollie has been released in version 1.2.3 to hide secret API keys from the user interface.

  • pretix-pages has been released in version 1.2.7 to update translations.

  • pretix-posbackend has been released in version 1.5.3 to correspond to recent pretixPOS updates.

  • pretix-reports has been released in version 1.4.1 to add more filter options and fix a few minor bugs.

  • pretix-resellers has been released in version 1.6.0 to allow bulk-redemption of vouchers.

  • pretix-seating has been released in version 1.2.0 to introduce PDF export of seating plans, purchasing of blocked seats through privileged sales channels, support for offline sales, improved pretixPOS integration, and improved seating selections in the backend.

  • pretix-shipping has been released in version 1.9.0 to introduce gift orders and shipping fees that depend on the number of tickets.

  • pretix-slack has been released in version 1.3.1 to fix a race condition.

  • pretix-sofort has been released in version 1.3.2 to fix problems with Italian bank accounts. condition.

Plugin API changes

REST API changes

  • The API no longer allows to process gift card transactions that would lead to a negative balance.

  • The Order resource can now optionally include canceled positions and fees.

  • The Event resource now contains a timezone attribute.

  • The help_text attribute has been added to the Question resource.

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