En PrestaShop tienes dos caminos para bajarte tu lista de clientes: desde el back office (para ecommerce pequeñas y medianas) o directamente por SQL a la base de datos (necesario cuando pasas de ~20.000 clientes o quieres cruzar con orders). Vamos con los dos.

Opción 1: desde el back office (3 minutos)

Funciona en PrestaShop 1.7 y 8.x.

  1. Entra en tu-tienda.com/admin.
  2. En el menú lateral, ve a Customers → Customers.
  3. Verás la tabla de clientes. Arriba a la derecha, haz clic en el botón Export (icono de descarga, no siempre visible según tu tema del back office).
  4. PrestaShop genera un CSV con los clientes visibles según los filtros aplicados. Si querías todos, asegúrate de que no hay filtros activos (la fila de filtros arriba de la tabla debe estar vacía).
  5. El archivo se descarga al instante — no hay email como en Shopify.

El export estándar de PrestaShop incluye: id_customer, newsletter, opt_in, id_gender, first_name, last_name, email, birthday, registration_date, last_visit, groups.

Lo que no incluye por defecto: direcciones postales, teléfonos, historial de pedidos. Para eso tienes que exportar Addresses, Orders o Cart por separado, o ir a la Opción 2.

Nota codificación: el CSV sale en UTF-8 pero SIN BOM. Si lo abres en Excel de Windows verás tildes rotas. Ábrelo en Google Sheets o usa el importador de Excel con From Text/CSV y elige UTF-8 manualmente.

Opción 2: SQL directo a la base de datos

Necesario si tienes >20.000 clientes, quieres cruzar con pedidos, o el export del back office se te queda a medias por timeout PHP.

Desde phpMyAdmin (o Adminer, DBeaver, etc.):

SELECT
  c.id_customer,
  c.firstname,
  c.lastname,
  c.email,
  c.newsletter,
  c.optin,
  c.date_add        AS registration_date,
  c.last_passwd_gen AS last_login,
  a.phone,
  a.phone_mobile,
  a.address1,
  a.city,
  a.postcode,
  co.iso_code       AS country,
  (SELECT COUNT(*) FROM ps_orders o WHERE o.id_customer = c.id_customer AND o.valid = 1) AS total_orders,
  (SELECT COALESCE(SUM(total_paid_tax_incl), 0) FROM ps_orders o WHERE o.id_customer = c.id_customer AND o.valid = 1) AS total_spent
FROM ps_customer c
LEFT JOIN ps_address a
  ON a.id_customer = c.id_customer
  AND a.deleted = 0
LEFT JOIN ps_country co
  ON co.id_country = a.id_country
WHERE c.active = 1
  AND c.deleted = 0
GROUP BY c.id_customer
ORDER BY c.date_add DESC;

Ajusta el prefijo ps_ si tu instalación usa otro (revísalo en config/parameters.php, línea database_prefix).

En phpMyAdmin: pestaña Export → Format: CSV → Format-specific options: UTF-8, campos delimitados por ,, encapsulados por ", terminación de línea \r\n.

Errores comunes al exportar de PrestaShop

El export truncado a X filas — PrestaShop respeta max_execution_time de PHP. Si tu hosting tiene un límite bajo y tienes >30.000 clientes, el export se corta. Solución: subir el límite en el back office (Advanced Parameters → Performance) o usar la Opción 2.

Clientes duplicados por email — PrestaShop permite dos cuentas con el mismo email si están asignadas a shops distintas (multishop). En el CSV los verás como dos filas. Si no usas multishop, es que hay corrupción — audita antes de importar.

Newsletter y optin son campos distintosnewsletter = 1 significa que aceptó el newsletter en el registro. optin = 1 significa que aceptó comunicaciones comerciales de terceros. Para RGPD, envía solo a los que tengan newsletter = 1 (o revisa cómo pediste el consentimiento).

Fechas en formato MySQL2024-05-12 14:32:11. Si tu importador (Mailchimp/Klaviyo) espera otro formato, conviértelo antes en Sheets con TEXT(A1, "yyyy-mm-dd").

Qué revisar antes de importar en otra herramienta

Un CSV de PrestaShop tiene los mismos problemas invisibles que cualquier otra fuente:

  • Emails muertos — tiendas PrestaShop suelen ser más antiguas que la media (mucha instalación desde 2013-2016), y sus listas acumulan Terra, Ono, Hotmail España y otros dominios que ya no existen.
  • Registros de test antiguos — típico ver test@test.com, admin@tienda.com, y correos con typos evidentes que se colaron durante desarrollo.
  • Emails desechables — mailinator, guerrillamail, 10minutemail, sobre todo si has hecho sorteos.
  • Teléfonos sin prefijo internacional — PrestaShop guarda lo que teclee el cliente. Si vas a SMS, normaliza a +34... antes.

Pásalo por ClearRows antes de importar. Es gratis, se hace en 30 segundos y te dice exactamente qué % de contactos no existe y cuánto te ahorras al no pagar por ellos en tu nueva herramienta.

Preguntas frecuentes

¿Puedo exportar solo los clientes que compraron en los últimos X meses? No desde el back office directamente. Necesitas Opción 2 con WHERE (SELECT MAX(date_add) FROM ps_orders o WHERE o.id_customer = c.id_customer) > DATE_SUB(NOW(), INTERVAL 6 MONTH).

¿El export incluye a los invitados (guest checkout)? Depende. Los guests están en la misma tabla ps_customer con is_guest = 1. Si quieres solo registrados, añade AND c.is_guest = 0 al WHERE.

¿Es legal en RGPD importar el CSV a Mailchimp/Klaviyo desde España? Si en el registro/checkout de PrestaShop informaste que los datos se procesarían en una herramienta de email marketing y ambos estáis dentro del EEE o hay Cláusulas Contractuales Tipo — sí. Si no lo mencionaste, tienes que hacer una legitimación (interés legítimo con LIA + opt-out) o pedir consentimiento explícito antes.

¿Cada cuánto debería re-exportar? Cada 6 meses mínimo. Cada 3 meses si tu tienda tiene >5 años (el churn acumulado va rápido).


Lo que viene después del export

El CSV no es el fin — es el principio. Antes de subirlo a la nueva herramienta, mira qué te llevas de verdad.

Analiza tu CSV en ClearRows gratis en 30 segundos →

Sin registro, sin tarjeta, tu archivo se elimina en 24h.

ClearRows — Barcelona. Datos limpios, ventas reales.