diff --git a/src/pretix/presale/templates/pretixpresale/event/index.html b/src/pretix/presale/templates/pretixpresale/event/index.html
index c71c9607bd..5c6b7b2f9e 100644
--- a/src/pretix/presale/templates/pretixpresale/event/index.html
+++ b/src/pretix/presale/templates/pretixpresale/event/index.html
@@ -271,10 +271,11 @@
{% if var.original_price %}
- {{ var.original_price|money:event.currency }}
-
- {% elif item.original_price %}
- {{ item.original_price|money:event.currency }}
+ {% if event.settings.display_net_prices %}
+ {{ var.original_price.net|money:event.currency }}
+ {% else %}
+ {{ var.original_price.gross|money:event.currency }}
+ {% endif %}
{% endif %}
{% if item.free_price %}
@@ -386,7 +387,11 @@
{% if item.original_price %}
- {{ item.original_price|money:event.currency }}
+ {% if event.settings.display_net_prices %}
+ {{ item.original_price.net|money:event.currency }}
+ {% else %}
+ {{ item.original_price.gross|money:event.currency }}
+ {% endif %}
{% endif %}
{% if item.free_price %}
diff --git a/src/pretix/presale/templates/pretixpresale/event/voucher.html b/src/pretix/presale/templates/pretixpresale/event/voucher.html
index 66d420cd73..0980719f6b 100644
--- a/src/pretix/presale/templates/pretixpresale/event/voucher.html
+++ b/src/pretix/presale/templates/pretixpresale/event/voucher.html
@@ -94,10 +94,11 @@
{% if var.original_price %}
- {{ var.original_price|money:event.currency }}
-
- {% elif item.original_price %}
- {{ item.original_price|money:event.currency }}
+ {% if event.settings.display_net_prices %}
+ {{ var.original_price.net|money:event.currency }}
+ {% else %}
+ {{ var.original_price.gross|money:event.currency }}
+ {% endif %}
{% endif %}
{% if item.free_price %}
@@ -200,7 +201,11 @@
{% if item.original_price %}
- {{ item.original_price|money:event.currency }}
+ {% if event.settings.display_net_prices %}
+ {{ item.original_price.net|money:event.currency }}
+ {% else %}
+ {{ item.original_price.gross|money:event.currency }}
+ {% endif %}
{% endif %}
{% if item.free_price %}
diff --git a/src/pretix/presale/views/event.py b/src/pretix/presale/views/event.py
index 268f894460..80687a8681 100644
--- a/src/pretix/presale/views/event.py
+++ b/src/pretix/presale/views/event.py
@@ -136,7 +136,13 @@ def get_grouped_items(event, subevent=None, voucher=None, channel='web'):
item.display_price = item.tax(price, currency=event.currency, include_bundled=True)
if price != original_price:
- item.original_price = original_price
+ item.original_price = item.tax(original_price, currency=event.currency, include_bundled=True)
+ else:
+ item.original_price = (
+ item.tax(item.original_price, currency=event.currency, include_bundled=True,
+ base_price_is='net' if event.settings.display_net_prices else 'gross') # backwards-compat
+ if item.original_price else None
+ )
display_add_to_cart = display_add_to_cart or item.order_max > 0
else:
@@ -165,7 +171,13 @@ def get_grouped_items(event, subevent=None, voucher=None, channel='web'):
var.display_price = var.tax(price, currency=event.currency, include_bundled=True)
if price != original_price:
- var.original_price = original_price
+ var.original_price = var.tax(original_price, currency=event.currency, include_bundled=True)
+ else:
+ var.original_price = (
+ var.tax(var.original_price or item.original_price, currency=event.currency,
+ include_bundled=True,
+ base_price_is='net' if event.settings.display_net_prices else 'gross') # backwards-compat
+ ) if var.original_price or item.original_price else None
display_add_to_cart = display_add_to_cart or var.order_max > 0
diff --git a/src/pretix/presale/views/widget.py b/src/pretix/presale/views/widget.py
index 625f66235d..26e74f71a4 100644
--- a/src/pretix/presale/views/widget.py
+++ b/src/pretix/presale/views/widget.py
@@ -200,7 +200,12 @@ class WidgetAPIProductList(EventListMixin, View):
item.cached_availability[0],
item.cached_availability[1] if self.request.event.settings.show_quota_left else None
] if not item.has_variations else None,
- 'original_price': item.original_price,
+ 'original_price': (
+ (item.original_price.net
+ if self.request.event.settings.display_net_prices
+ else item.original_price.gross)
+ if item.original_price else None
+ ),
'variations': [
{
'id': var.id,
@@ -208,7 +213,19 @@ class WidgetAPIProductList(EventListMixin, View):
'order_max': var.order_max,
'description': str(rich_text(var.description, safelinks=False)) if var.description else None,
'price': price_dict(item, var.display_price),
- 'original_price': getattr(var, 'original_price') or item.original_price,
+ 'original_price': (
+ (
+ var.original_price.net
+ if self.request.event.settings.display_net_prices
+ else var.original_price.gross
+ ) if var.original_price else None
+ ) or (
+ (
+ item.original_price.net
+ if self.request.event.settings.display_net_prices
+ else item.original_price.gross
+ ) if item.original_price else None
+ ),
'avail': [
var.cached_availability[0],
var.cached_availability[1] if self.request.event.settings.show_quota_left else None