Data Export
Customers can download a complete copy of their personal data — required under GDPR Article 15 (right to access).
Where customers request it
Storefront: /account/privacy → Data Export section → Request Data Export
What's included
A single JSON file with:
- Profile — email, name, phone, created_at, last_login
- Addresses — all saved shipping/billing addresses
- Orders — every order with items, addons, status history
- Reviews — all submitted reviews (approved, pending, rejected)
- Wishlist — saved products
- Returns — RMA history
- Gift cards — purchased + received cards with balances
- Promotion usage — codes used
- Cart history — active carts (abandoned)
How it works
- Customer clicks Request Data Export
- Request row created in
commerce__data_requests - Background job gathers all data (usually under 1 minute for typical accounts)
- Export becomes downloadable from the same page
- Link expires after 7 days (customer can re-request anytime)
File format
{
"profile": {...},
"addresses": [...],
"orders": [
{
"id": 1234,
"order_number": "...",
"items": [...],
"history": [...]
}
],
"reviews": [...],
"wishlist": [...],
"returns": [...],
"gift_cards": [...],
"promotion_usage": [...]
}Admin side
Admin: /commerce/gdpr shows all pending + completed data requests. Admins can:
- Manually trigger processing if stuck
- See full audit trail of who requested what
Security
- Request requires authentication (logged-in customer)
- Download link is single-use and expires
- Access is logged in the audit log
- Export file stored temporarily in
/uploads/gdpr-exports/, purged after 7 days