--- import Admin from '../../../layouts/Admin.astro'; import { adminBase, currentUser } from '../../../lib/auth.js'; const base = adminBase(); import { getOrderById, updateOrderStatus, formatPrice, recordAudit } from '../../../lib/store.js'; const { id } = Astro.params; let flash = ''; if (Astro.request.method === 'POST') { const form = await Astro.request.formData(); const status = form.get('status'); if (status) { updateOrderStatus(id, String(status)); recordAudit({ user: currentUser(Astro.request)?.email, action: 'update', entity: 'order', entity_id: String(id) }); flash = 'Status aktualisiert.'; } } const order = getOrderById(id); if (!order) return Astro.redirect(base + '/bestellungen'); const statusMap = { fulfilled: ['green', 'Erfüllt'], pending: ['amber', 'Offen'], cancelled: ['gray', 'Storniert'], refunded: ['red', 'Erstattet'] }; const fmtDate = (s) => new Date(s).toLocaleString('de-DE', { day: '2-digit', month: 'long', year: 'numeric', hour: '2-digit', minute: '2-digit' }); const statuses = [['pending', 'Offen'], ['fulfilled', 'Erfüllt'], ['cancelled', 'Storniert'], ['refunded', 'Erstattet']]; ---
{flash &&
✓ {flash}
}
Artikel
{order.items.map((i) => ( ))}
ProduktVarianteMengeEinzelpreisSumme
{i.name}{i.size || '—'}{i.qty}{formatPrice(i.priceCents)}{formatPrice(i.priceCents * i.qty)}
Gesamt{formatPrice(order.total_cents)}
Status
{(statusMap[order.status]||['',order.status])[1]}
Kunde

{order.customer_name || '—'}

{order.email}

Lieferadresse

{order.address || '—'}

Bestellt am

{fmtDate(order.created_at)}