Release 3.3.0 of pretix
Today, we are releasing pretix 3.3.0. This is the largest feature release in a while, bringing gift cards, email-based voucher distribution, event geo-location properties, pluggable integration and lots of minor features and bugfixes. Big thanks go to Felix Rindt, Felix Schäfer, Maarten van den Berg, oocf, pajowu, Sohalt, telegnom, Tobias Kunze, Tobias Sundgren, and yichengsd who contributed to this release. ❤️
pretix 3.3.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.
Gift cards
This release adds a new payment method and a new product type at the same time: Gift cards can now be sold and redeemed through pretix. This is just in time for the Christmas season – gift cards for events make an amazing present.
A gift card is different from a voucher in multiple ways. Gift cards are sold for the money they are worth, and therefore do not represent a discount, but a means of payment. This is mostly relevant for taxation and statistics. Gift cards can of course be combined with other payment methods. Gift cards can be used across events of the same organizer and, if you want, even across organizers.
When you sell gift cards through pretix, they work like every other product sale. All features are supported, such as allowing users to choose the price/value of the gift card themeslves and issuing beautiful printable gift card certificates.
Sending vouchers via email
Ever created hundreds of vouchers and then spent hours distributing them to all your recipients? Yeah, we did too. With this new feature, you can directly compose a message when creating vouchers in bulk, and input a list of recipients that the vouchers will be shared with.
Event location data
All pretix events can now be annotated with a physical location. This location is not (yet) shown in the frontend, but will allow lots of amazing geo-based plugins and third-party integrations, see below for the first examples. Automatic geo-coding is used to suggest the location based on the free-text location input.
For self-hosted installations, these features require an OpenCage API key, as well as URLs to a Leaflet-compatible map tile provider such as Thunderforest. Without these, the new coordinate fields can still be filled manually.
Stay22 & closer2event integration
We've published two new plugins, integrating pretix with Stay22 and closer2event. Both services allow you to embed a hotel map on your order confirmation page. This way, your attendees can book their accommodation at an Hotel or AirBnB right away. Both integrations work without the need to sign up for anything, but if you sign up with either of the platforms, you can even get a commission on the hotel bookings.
Pluggable authentication
We've released a new plugin API that allows plugins to register separate authentication backends. This allows to integrate external user management systems like LDAP, OAuth2-based systems or similar single-sign-on options into pretix Community and pretix Enterprise installations.
Smaller changes and bugfixes
-
When sending bulk emails, it is now possible to filter for attendees who have or have not checked in.
-
It is now possible to re-order questions using a drag-and-drop interface.
-
pretix' stylesheets now support right-to-left languages.
-
It is now possible to manually edit fees for an existing order through the backend.
-
It is now possible to use the ID of a ticket within an order in PDF layouts.
-
It is now possible to require a buyer name even if the invoice address form is disabled.
-
During add-on selection, availability of a product is no longer shown if the product is currently selected, in order to avoid user confusion.
-
Sorting by first or last name of exported check-in lists now works correctly with add-on products and names inferred from invoicing addresses.
-
The list of categories in the backend now correctly shows the internal name instead of the public name.
-
When paying with iDEAL over Stripe, a bug that occured in combination with some Dutch banking apps has been fixed.
-
Notifications about order changes now contain more information about the event and the purchased products.
-
The list of events in the backend can now be filtered by meta properties defined in the organizer profile.
-
Invoices created on orders with a successful PayPal payment now show the PayPal transaction ID.
-
HTML in most fields is now escaped instead of interpreted by the PDF renderer.
-
When matching bank transfer payments, payments rejected as duplicates can now be assigned to a different order.
-
The widget now offers a JavaScript API to support a callback as soon as the widget is fully loaded.
-
When a manual or offsetting refund is created, users are no longer shown a message about their pending refund.
-
In public lists of events, available events now say "Book now" instead of "Tickets on sale" on their green label.
-
In the backend's list of orders, hovering over the status of a pending order now reveals the expiry date of that order.
-
The statement descriptor set for Stripe-based payments now includes the name of the event.
-
Moving funds to another order ("offset refund") now works regardless of the payment term.
-
System administrators can now set an application fee that is charged for all Stripe payments.
-
A bug has been fixed that caused the product modification form to override some previous changes.
-
A bug on MySQL has been fixed that caused missing products in the list of quotas in the backend.
-
A bug has been fixed that caused some tiles on the global event dashboard to never fully load.
-
A bug has been fixed that caused incorrect payment records when the price of a ticket has been changed and the ticket has been split off from the order in the same step.
-
A bug has been fixed that caused the subjects of some automated emails to always be sent in English instead of the correct language.
-
A bug has been fixed that caused calendar invites to be attached to every payment confirmation email regardless of the setting introduced in 3.2.0.
-
Safeguards have been added to prevent the duplicate creation of cancellation invoices.
Updates to official plugins and tools
-
pretix-modirum has been released in version 1.0.0 to support payment providers based on the Modirum platform.
-
pretix-stay22 has been released in version 1.0.0.
-
pretix-closer2event has been released in version 1.0.0.
-
pretix-mollie has been released in version 1.2.1 to fix one bug related to test mode and one bug related to manual refunds.
-
pretix-bitpay has been released in version 1.3.0, switching from the official BitPay Python library to the BTCPay Python library, thereby hopefully increasing compatibility with BTCPay Server.
-
pretix-wirecard is no longer officially supported since Wirecard is deprecating the API we use and we do not know of anyone currently using it.
-
pretix-passbook has been released in version 1.6.0 to add information on seating and admission times to the generated passes, as well as compatibility to the new geolocation field.
-
The Enterprise plugin pretix-shipping has been released in version 1.7.0 to support splitting shipping fees across tax rates.
-
The Enterprise plugin pretix-tracking has been released in version 1.5.1 to support passing Pareba affiliate IDs through the widget.
-
The Enterprise plugin pretix-mailchimp has been released in version 1.4.1 to avoid conflicts with other plugins in the future.
-
The Enterprise plugin pretix-posbackend has been released in version 1.5.1 to support receipt position types introduced in an upcoming pretixPOS release.
-
The Enterprise plugin pretix-reports has been released in version 1.4.0 to support exporting report results to Excel, as well as to fix a bug when loading stored report configurations.
-
The Enterprise plugin pretix-resellers has been released in version 1.4.0 to introduce a warning about test mode.
-
The Enterprise plugin pretix-slack has been released in version 1.3.0 to introduce configuration options allowing to add more information to the slack messages.
Plugin API changes
-
The signal
pretix.presale.signals.fee_calculation_for_cart
now receives a new parameterpositions
with the list ofCartPosition
objects in the current user's cart. -
The new signal
pretix.base.signals.order_gracefully_delete
allows plugins to delete data when test mode orders are being deleted. -
Custom sales channels can now specify whether or not they support test mode.
-
Download providers can now return a file of the type
text/uri-list
if they want the user to be redirected somewhere else instead of downloading a file. Additionally, the new propertiespreview_allowed
andjavascript_required
have been added. -
A new API for pluggable authentication has been added.
REST API changes
-
The new resource gift cards has been added.
-
When creating a free order through the API, the field
payment_provider
is now actually optional. -
When cloning events, the property
has_subevents
is now properly cloned as well. -
Events and Event dates now contain new fields
geo_lat
andgeo_lon
. -
Events can now be filtered using meta properties.
-
OAuth return URLs can now have more than 255 characters.