{% extends 'base.html' %} {% load static %} {% block extra_head %} {% endblock %} {% block content %}
1 Delivery details
2 Payment method

Order #{{ order.id }}

Complete your payment

Amount due: Rs. {{ order.total_price|floatformat:2 }}

{{ order.status }} {{ order.payment_status }} {% if order.payment_method and order.payment_method != 'Pending selection' %} {{ order.payment_method }} {% endif %}
Verified before paid

Orders are not marked paid until the gateway confirms the result.

Retry-safe flow

If a wallet is cancelled or fails, the order stays saved for another attempt.

Flexible selection

Keep COD or switch to an online method before shipment when available.

{% if esewa_sandbox and esewa_ready %}
eSewa is running in sandbox / UAT mode.

You can test the full redirect-and-verify flow now, then switch to your live merchant credentials later.

{% endif %} {% if order.payment_method == 'Cash on Delivery' and order.payment_status == 'Pending' %}
Cash on delivery is currently selected.

You can keep COD, or switch to eSewa / Khalti below before the order is shipped.

{% endif %} {% if not online_ready %}
No online gateway is configured yet.

Cash on delivery is still available, and you can enable Khalti or live eSewa credentials at any time.

{% endif %} {% if order.payment_status == 'Failed' %}
The last payment attempt did not complete.

Your order is still saved, and you can safely start a fresh payment attempt below.

{% endif %}
{% csrf_token %} {% for option in payment_options %} {% endfor %}
Server-side verification before an order is marked paid
Order details are preserved even if the wallet window is cancelled
Responsive checkout flow for desktop, tablet, and mobile
View Order Details
{% endblock %}