Introducción
Conocer cuántos clientes repiten compra en tu tienda es clave para medir la fidelidad y rentabilidad del negocio.
En este artículo aprenderás cómo generar un informe de clientes recurrentes en WooCommerce usando consultas MySQL, con filtros por fecha, número de pedidos y valor total comprado.
Ideal para tiendas con volumen de ventas que quieren segmentar su base de clientes y tomar decisiones de marketing personalizadas.
Índice
- 1. ¿Qué es un cliente recurrente?
- 2. Tablas que intervienen en WooCommerce
- 3. Consulta SQL para obtener clientes con múltiples pedidos
- 4. Añadir filtros por fecha o importe
- 5. Exportar resultados y visualizarlos
- 6. Cómo usar esta información en marketing
- 7. Conclusión
1. ¿Qué consideramos un cliente recurrente?
Un cliente que ha hecho más de una compra en un período determinado (ej. últimos 6 meses) o que ha superado cierto gasto acumulado (ej. más de 100€ en total).
2. Tablas clave en WooCommerce
Tabla | Contenido |
---|---|
wp_posts | Pedidos (`post_type = shop_order`) |
wp_postmeta | Datos del pedido (total, user_id, etc.) |
wp_users | Clientes registrados |
3. Consulta SQL para detectar clientes con múltiples pedidos
SELECT u.ID, u.user_email, COUNT(p.ID) AS total_pedidos FROM wp_users u JOIN wp_posts p ON u.ID = p.post_author WHERE p.post_type = 'shop_order' AND p.post_status IN ('wc-completed','wc-processing') GROUP BY u.ID HAVING total_pedidos > 1 ORDER BY total_pedidos DESC;
Explicación:
- Filtra pedidos completados o en proceso
- Agrupa por usuario
- Devuelve solo los que han hecho 2 o más pedidos
4. Filtros adicionales: fecha e importe total
Filtrar por fecha (últimos 6 meses):
AND p.post_date > NOW() - INTERVAL 6 MONTH
Calcular total gastado:
SELECT u.ID, u.user_email, SUM(m.meta_value) AS total_gastado FROM wp_users u JOIN wp_posts p ON u.ID = p.post_author JOIN wp_postmeta m ON p.ID = m.post_id AND m.meta_key = '_order_total' WHERE p.post_type = 'shop_order' AND p.post_status IN ('wc-completed') GROUP BY u.ID HAVING total_gastado > 100;
5. Exportar el informe a CSV
<?php require('wp-load.php'); global $wpdb; $results = $wpdb->get_results(" SELECT u.ID, u.user_email, COUNT(p.ID) AS total_pedidos FROM {$wpdb->prefix}users u JOIN {$wpdb->prefix}posts p ON u.ID = p.post_author WHERE p.post_type = 'shop_order' AND p.post_status IN ('wc-completed','wc-processing') GROUP BY u.ID HAVING total_pedidos > 1 ", ARRAY_A); header('Content-Type: text/csv'); header('Content-Disposition: attachment;filename=clientes_recurrentes.csv'); $output = fopen('php://output', 'w'); fputcsv($output, ['ID Usuario', 'Email', 'Total Pedidos']); foreach ($results as $row) { fputcsv($output, $row); } fclose($output); exit; ?>
6. ¿Para qué sirve este informe?
- Enviar campañas personalizadas a los mejores clientes
- Detectar embajadores de marca o revendedores
- Ofrecer cupones por fidelidad o club VIP
- Activar remarketing más segmentado
7. Conclusión
Un cliente que repite es más rentable que uno nuevo. Con estas consultas puedes segmentar y cuidar mejor tu base de clientes.
¿Quieres que lo conectemos con Google Sheets o lo integramos en tu backoffice? 📩 Escríbenos y lo automatizamos para ti.