diff --git a/doc/api/resources/webhooks.rst b/doc/api/resources/webhooks.rst index 1d2b3e515..a9abe52c0 100644 --- a/doc/api/resources/webhooks.rst +++ b/doc/api/resources/webhooks.rst @@ -41,6 +41,7 @@ The following values for ``action_types`` are valid with pretix core: * ``pretix.event.order.modified`` * ``pretix.event.order.contact.changed`` * ``pretix.event.order.changed.*`` + * ``pretix.event.order.deleted`` (can only occur for test mode orders) * ``pretix.event.order.refund.created`` * ``pretix.event.order.refund.created.externally`` * ``pretix.event.order.refund.requested`` diff --git a/src/pretix/api/webhooks.py b/src/pretix/api/webhooks.py index c47b56e9a..7a625c28b 100644 --- a/src/pretix/api/webhooks.py +++ b/src/pretix/api/webhooks.py @@ -126,6 +126,17 @@ class ParametrizedOrderWebhookEvent(ParametrizedWebhookEvent): } +class DeletedOrderWebhookEvent(ParametrizedWebhookEvent): + def build_payload(self, logentry: LogEntry): + return { + 'notification_id': logentry.pk, + 'organizer': logentry.organizer.slug, + 'event': logentry.event.slug, + 'code': logentry.parsed_data.get("code"), + 'action': logentry.action_type, + } + + class ParametrizedEventWebhookEvent(ParametrizedWebhookEvent): def build_payload(self, logentry: LogEntry): @@ -297,6 +308,10 @@ def register_default_webhook_events(sender, **kwargs): 'pretix.event.order.denied', _('Order denied'), ), + DeletedOrderWebhookEvent( + 'pretix.event.order.deleted', + _('Order deleted'), + ), ParametrizedOrderPositionCheckinWebhookEvent( 'pretix.event.checkin', _('Ticket checked in'),