{% extends 'base.html.twig' %} {% block title %}Kassa - {{ order.orderNr }}{% endblock %} {% block stylesheets %} {% endblock %} {% block body %}

Kassa

Order: {{ order.orderNr }} {% if order.dateOrder %}
Datum: {{ order.dateOrder | date('Y-m-d') }}{% endif %} {% if order.totalSumInclTax %}
Att betala: {{ order.totalSumInclTax | number_format(2, ',', ' ') }} kr{% endif %}

Dina Produkter

{% for item in order.items %} {% endfor %}
Produkter Antal Pris

{{ item.productName }}{{ item.productSizeText is not empty ? ' - ' ~ item.productSizeText : '' }}
Sku: {{ item.productSku }}

{{ item.quantity }} {{ (item.price * item.quantity) | number_format(2, ',', ' ') }} kr
{# Read-only order summary — this page is pay-only, nothing here is editable. Coupon/discount is shown only if the order already has one applied (order.couponCode/discount, no input to apply a new one — order total is already fixed, applying a new coupon here would mean recalculating the whole order, out of scope for this page). Shipping/tax/total are always shown so the customer sees exactly what they're paying for, matching the mockup's summary column. #}
{% if order.couponCode is not empty %}

Rabattkod ({{ order.couponCode }}): -{{ order.discount | number_format(2, ',', ' ') }} kr

{% endif %}

Frakt: {{ order.shippingFee | number_format(2, ',', ' ') }} kr

Varav moms: {{ order.totalTax | number_format(2, ',', ' ') }} kr

Att betala: {{ order.totalSumInclTax | number_format(2, ',', ' ') }} kr

Betalning

{# Only "Svea payment" today (matches the mockup — card/Swish/Trustly all live inside Svea's own iframe). No radio checked by default — the Svea session is only created after the customer actively picks a method (change event), same as the main ecom checkout (webshop/checkout.html.twig -> loadSvea(), default paymentMethod is 'swish' so nothing loads until the customer switches to 'svea'). Structured as a radio group so a second method can be added later without restructuring. #}

Kunduppgifter

{# Read-only, sourced straight from the order (order.customerName/Address/...) — NOT from Svea presetValues. This block has nothing to do with which payment method is picked: it always shows, regardless of whether the Svea iframe below loads successfully or not. Svea's own presetValues API only supports prefilling emailAddress/phoneNumber/postalCode (see "Self-review round 1" in the ticket doc) — it cannot prefill name/address/city at all, so that data is shown here on our own page instead of relying on Svea to do it. #}
Namn: {{ order.customerName }}
Email: {{ order.customerEmail }}
Adress: {{ order.customerAddress }}
Postkod: {{ order.customerPostCode }}
Stad: {{ order.customerCity }}
Land: {{ order.customerCountry }}
Mobil: {{ order.customerMobile }}
{% endblock %} {% block javascripts %} {% endblock %} {% block custom_javascripts %} {% endblock %}