{% extends 'base.html.twig' %} {% block title %}Commande {{ order.reference }} — CARTECADEAU{% endblock %} {% set statusMap = { 'cart': ['Panier', 'muted'], 'pending_payment': ['En attente de paiement', 'warn'], 'paid': ['Payée', 'info'], 'fulfilling': ['Livraison en cours', 'info'], 'fulfilled': ['Livrée', 'ok'], 'payment_failed': ['Paiement échoué', 'bad'], 'fulfillment_failed': ['Livraison échouée', 'bad'], } %} {% set st = statusMap[order.status] ?? [order.status, 'muted'] %} {% block body %}

← Mon espace

Commande {{ order.reference }}

{{ st[0] }}

Passée le {{ order.createdAt ? order.createdAt|date('d/m/Y à H:i') : '—' }} · Total {{ order.totalXof|number_format(0, ',', ' ') }} XOF

{# ---------- Codes livrés ---------- #} {% if order.status == 'fulfilled' and codes is not empty %}

🎁 Vos codes

Conservez-les précieusement. Ils vous ont aussi été envoyés par email.

{% for code in codes %}
{{ code.productName ?? code.productSku ?? 'Produit' }} {% if code.serialCode %} Code / PIN {{ code.serialCode }} {% endif %} {% if code.serialNumber %} N° de série {{ code.serialNumber }} {% endif %}
{% endfor %}
{% elseif order.status in ['paid', 'fulfilling'] %}

Livraison en cours…

Votre paiement est confirmé. Vos codes apparaîtront ici dans quelques instants et vous seront envoyés par email.

{% elseif order.status == 'fulfillment_failed' %}

Un souci est survenu

La livraison a échoué. Notre équipe a été alertée et traite votre commande. Vous ne perdez rien.

{% if is_granted('ROLE_ADMIN') %}
{% endif %}
{% elseif order.status == 'pending_payment' %}

En attente de paiement

Finalisez le paiement Mobile Money pour recevoir vos codes.

{% endif %} {# ---------- Détail des articles ---------- #}

Articles

{% for item in order.items %} {% endfor %}
ProduitTypeQtéPrix
{{ item.product ? item.product.name : '—' }} {{ item.product and item.product.type == 'topup' ? 'Top-up' : 'Voucher' }} {{ item.quantity }} {{ (item.unitSalePrice * item.quantity)|number_format(0, ',', ' ') }} XOF
{% endblock %}