Registrations & finance: Export Orders CSV (new)
You can now export per‑order financial data as a CSV for accounting and reconciliation.
The export includes:
- Gross amount
- Discount code + discount amount
- Net amount (post‑discount)
- Payment status + payment reference
- PAN number (if captured)
Exports are now consolidated into a single Export dropdown with separate actions for Registrations vs Orders.
Events checkout: clearer discount amount display (improved)
During step 2 of checkout, the order summary now shows the actual discount amount deducted (e.g. -₹500) instead of the previous “Applied at payment” message.
Totals are consistently computed server‑side to match the client‑side logic, and the displayed total reflects the post‑discount price.
Discount codes: enforce uppercase + hyphen format (improved)
Discount codes are now validated more strictly to prevent inconsistent codes and reduce admin/support friction.
Allowed characters:
- Uppercase letters
A–Z - Digits
0–9 - Hyphens
-
Spaces, lowercase letters, and punctuation are rejected at both the model and form layers.
Ticket downloads: admin PDF action (new)
Admins can now download a PDF ticket directly from registration list views and the registration detail page (permission‑gated).
This makes it easier to resend/print tickets and assist attendees without needing to locate the original email.
Attendee self‑service: ticket retrieval with OTP verification (new)
Attendees can now retrieve their ticket(s) using an email + OTP flow:
- Enter email on the event page
- Receive a 6‑digit OTP
- View ticket(s) with QR code
- Download ticket PDF
Security and abuse protection included:
- OTP expiry (time‑bound)
- Attempt limits + lockout
- Signed QR/check‑in links
- Ticket links blocked for cancelled registrations
Registration fields: per‑ticket‑type field scoping (improved)
Custom registration fields can now be scoped to specific ticket types:
- Fields not applicable to the selected ticket type are hidden and not required
- Hidden fields are disabled in the form so they won’t block submission
- Saving logic skips non‑applicable fields, preventing stray/incorrect data
Bug fixes & reliability improvements
- Payment/order totals are now consistently stored as the net (post‑discount) amount.
- OTP attempt increments are now atomic to avoid race conditions.
- QR token expiry standardised for improved security.
- Several small fixes to registration flows and exports to better match real‑world usage.