Features
Privacy & GDPR
Data Export

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

  1. Customer clicks Request Data Export
  2. Request row created in commerce__data_requests
  3. Background job gathers all data (usually under 1 minute for typical accounts)
  4. Export becomes downloadable from the same page
  5. 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

Related features