diff --git a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html
index 7c7459ddb8..f0c5484a0d 100644
--- a/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html
+++ b/src/pretix/presale/templates/pretixpresale/event/fragment_cart.html
@@ -130,7 +130,7 @@
{% endif %}
{% endif %}
- {% if download %}
+ {% if download and line.item.admission|default:event.settings.ticket_download_nonadm %}
{% if not line.addon_to or event.settings.ticket_download_addons %}
{% for b in download_buttons %}
diff --git a/src/pretix/presale/views/order.py b/src/pretix/presale/views/order.py
index bac26cfc69..8dac0d305d 100644
--- a/src/pretix/presale/views/order.py
+++ b/src/pretix/presale/views/order.py
@@ -94,12 +94,15 @@ class OrderDetails(EventViewMixin, OrderDetailMixin, CartMixin, TemplateView):
) and self.order.status == Order.STATUS_PAID
)
ctx['download_buttons'] = self.download_buttons
- ctx['can_download_multi'] = any([b['multi'] for b in self.download_buttons])
ctx['cart'] = self.get_cart(
answers=True, downloads=ctx['can_download'],
queryset=self.order.positions.all(),
payment_fee=self.order.payment_fee, payment_fee_tax_rate=self.order.payment_fee_tax_rate
)
+ ctx['can_download_multi'] = any([b['multi'] for b in self.download_buttons]) and (
+ self.request.event.settings.ticket_download_nonadm or
+ any([p.item.admission for p in ctx['cart']['positions']])
+ )
ctx['invoices'] = list(self.order.invoices.all())
ctx['can_generate_invoice'] = invoice_qualified(self.order) and (
self.request.event.settings.invoice_generate == 'user'