<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WooCommerce | Eligeunaweb Agencia de marketing y programación web</title>
	<atom:link href="https://eligeunaweb.es/category/e-commerce/woocommerce/feed/" rel="self" type="application/rss+xml" />
	<link>https://eligeunaweb.es</link>
	<description>Diseño de paginas web, tiendas online, posicionamiento SEO  y redes sociales</description>
	<lastBuildDate>Mon, 28 Jul 2025 06:42:32 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://eligeunaweb.es/wp-content/uploads/2018/09/favicon.png</url>
	<title>WooCommerce | Eligeunaweb Agencia de marketing y programación web</title>
	<link>https://eligeunaweb.es</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Integrar PrestaShop con Notion o Airtable a través de n8n</title>
		<link>https://eligeunaweb.es/integrar-prestashop-con-notion-o-airtable-a-traves-de-n8n/</link>
					<comments>https://eligeunaweb.es/integrar-prestashop-con-notion-o-airtable-a-traves-de-n8n/#respond</comments>
		
		<dc:creator><![CDATA[eligeunaweb]]></dc:creator>
		<pubDate>Wed, 30 Jul 2025 07:30:00 +0000</pubDate>
				<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Recomendaciones]]></category>
		<category><![CDATA[WooCommerce]]></category>
		<guid isPermaLink="false">https://eligeunaweb.es/?p=987611031</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_0 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_0">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_0  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_0  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>PrestaShop es una de las plataformas ecommerce más flexibles, pero su backoffice no siempre permite trabajar con herramientas modernas como Notion o Airtable. Gracias a n8n puedes integrar ambos mundos y sincronizar datos como productos, stock, pedidos o métricas.</p>
<p>&nbsp;</p>
<h2>Índice</h2>
<ul>
<li><a href="#casos">Casos de uso útiles</a></li>
<li><a href="#conexion">Cómo conectar PrestaShop a n8n (API REST)</a></li>
<li><a href="#notion">Enviar datos a Notion</a></li>
<li><a href="#airtable">Enviar datos a Airtable</a></li>
<li><a href="#automatizar">Automatización y filtrado</a></li>
</ul>
<div style="height: 40px;"></div>
<h2 id="casos">Casos de uso</h2>
<ul>
<li>Crear una base de productos en Notion para revisar precios y stock</li>
<li>Volcar nuevos pedidos en Airtable para coordinación con logística</li>
<li>Generar dashboards personalizados con datos de PrestaShop</li>
</ul>
<div style="height: 40px;"></div>
<h2 id="conexion">Conectar PrestaShop a n8n</h2>
<p>PrestaShop expone una API REST que puedes usar con n8n vía HTTP Request:</p>
<pre class="caja-codigo-blog">GET https://midominio.com/api/products
Authorization: Basic BASE64(TU_TOKEN:)</pre>
<p>Desde n8n:</p>
<ul>
<li>HTTP Request Node → Auth: HTTP Basic</li>
<li>Parse XML (porque PrestaShop devuelve XML por defecto)</li>
</ul>
<div style="height: 40px;"></div>
<h2 id="notion">Enviar datos a Notion</h2>
<p>Requisitos:</p>
<ul>
<li>Tener una integración creada en <a href="https://www.notion.so/my-integrations">Notion Developers</a></li>
<li>Base con columnas coincidentes</li>
</ul>
<p>Desde n8n:</p>
<ol>
<li>Agregar nodo Notion → Create Page</li>
<li>Mapear datos: nombre, stock, categoría</li>
</ol>
<div style="height: 40px;"></div>
<h2 id="airtable">Enviar datos a Airtable</h2>
<p>Airtable tiene integración directa en n8n:</p>
<ul>
<li>API Key y base preconfigurada</li>
<li>Usar nodo «Airtable → Create Record»</li>
<li>Mapear columnas según la tabla: SKU, cantidad, precio</li>
</ul>
<pre class="caja-codigo-blog">{
  "fields": {
    "Nombre": "Zapato deportivo",
    "Stock": 18,
    "Precio": 39.95
  }
}</pre>
<div style="height: 40px;"></div>
<h2 id="automatizar">Automatizar y filtrar</h2>
<p>Recomendaciones:</p>
<ul>
<li>Usar Cron cada 6h o Webhook cuando haya cambios</li>
<li>Filtrar productos sin stock o más vendidos</li>
<li>Almacenar logs y fallos para revisión</li>
</ul>
<div style="height: 40px;"></div>
<h2>Conclusión</h2>
<p>Con n8n puedes extender las capacidades de PrestaShop integrando herramientas como Notion o Airtable sin escribir código. Esto permite flujos de trabajo más modernos, accesibles y automatizados.</p>
<p><strong>¿Quieres que conectemos tu ecommerce con tu entorno de trabajo digital?</strong> <a href="/contacto">Contáctanos</a>.</p></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>La entrada <a href="https://eligeunaweb.es/integrar-prestashop-con-notion-o-airtable-a-traves-de-n8n/">Integrar PrestaShop con Notion o Airtable a través de n8n</a> apareció primero en <a href="https://eligeunaweb.es">Eligeunaweb Agencia de marketing y programación web</a>.]]></content:encoded>
					
					<wfw:commentRss>https://eligeunaweb.es/integrar-prestashop-con-notion-o-airtable-a-traves-de-n8n/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo crear un webhook personalizado en WooCommerce para sincronizar inventario</title>
		<link>https://eligeunaweb.es/como-crear-un-webhook-personalizado-en-woocommerce-para-sincronizar-inventario/</link>
					<comments>https://eligeunaweb.es/como-crear-un-webhook-personalizado-en-woocommerce-para-sincronizar-inventario/#respond</comments>
		
		<dc:creator><![CDATA[eligeunaweb]]></dc:creator>
		<pubDate>Tue, 29 Jul 2025 07:00:00 +0000</pubDate>
				<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Recomendaciones]]></category>
		<category><![CDATA[WooCommerce]]></category>
		<guid isPermaLink="false">https://eligeunaweb.es/?p=987611021</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_1 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_1">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_1  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_1  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><p>Si vendes en múltiples canales o conectas tu tienda con ERP o almacenes externos, necesitas mantener sincronizado el stock. En este artículo aprenderás a crear un webhook personalizado en WooCommerce para enviar cambios de inventario en tiempo real.</p>
<p>&nbsp;</p>
<h2>Índice</h2>
<ul>
<li><a href="#que-es">¿Qué es un webhook y por qué usarlo?</a></li>
<li><a href="#crear">Crear un webhook en WooCommerce (interfaz)</a></li>
<li><a href="#custom">Webhook personalizado desde funciones.php</a></li>
<li><a href="#payload">Formato de datos enviado</a></li>
<li><a href="#seguridad">Seguridad y validación del webhook</a></li>
</ul>
<div style="height: 40px;"></div>
<h2 id="que-es">¿Qué es un webhook?</h2>
<p>Es una llamada automática a una URL externa que se dispara al producirse un evento. En WooCommerce, puedes usarlo para notificar a otro sistema cuando cambia el stock de un producto.</p>
<div style="height: 40px;"></div>
<h2 id="crear">Crear un webhook desde el admin</h2>
<ol>
<li>Ir a WooCommerce → Ajustes → Avanzado → Webhooks</li>
<li>Crear webhook nuevo</li>
<li>Evento: <code>product.updated</code></li>
<li>URL: <code>https://mi-servidor.com/api/stock-receiver</code></li>
</ol>
<div style="height: 40px;"></div>
<h2 id="custom">Webhook desde código personalizado</h2>
<p>Si quieres controlar exactamente qué datos se envían y cuándo:</p>
<pre class="caja-codigo-blog">add_action('woocommerce_update_product', 'notificar_stock_personalizado', 10, 1);
function notificar_stock_personalizado($product_id) {
    $product = wc_get_product($product_id);
    $data = [
        'sku' =&gt; $product-&gt;get_sku(),
        'stock' =&gt; $product-&gt;get_stock_quantity(),
        'id' =&gt; $product_id
    ];
    wp_remote_post('https://midominio.com/api/stock', [
        'method' =&gt; 'POST',
        'body' =&gt; json_encode($data),
        'headers' =&gt; ['Content-Type' =&gt; 'application/json']
    ]);
}
</pre>
<h3>Ventajas del webhook personalizado:</h3>
<ul>
<li>Envías solo los datos necesarios</li>
<li>Mayor control y trazabilidad</li>
<li>Puedes usar condiciones (sólo si cambia stock)</li>
</ul>
<div style="height: 40px;"></div>
<h2 id="payload">Ejemplo de datos enviados</h2>
<pre class="caja-codigo-blog">{
  "sku": "ABC123",
  "stock": 12,
  "id": 305
}</pre>
<p>Tu receptor (ERP, API externa, etc.) puede usar este JSON para actualizar su inventario.</p>
<div style="height: 40px;"></div>
<h2 id="seguridad">Consejos de seguridad</h2>
<ul>
<li>Validar origen por IP o token</li>
<li>Guardar logs de envíos y errores</li>
<li>Usar HTTPS siempre</li>
<li>Reintentar si hay fallo de conexión</li>
</ul>
<div style="height: 40px;"></div>
<h2>Conclusión</h2>
<p>Un webhook bien configurado te permite mantener el inventario sincronizado en tiempo real con tu logística, almacén o software externo. Es rápido, flexible y 100% automatizable.</p>
<p><strong>¿Quieres que implementemos este sistema en tu WooCommerce?</strong> <a href="/contacto">Contáctanos</a>.</p></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>La entrada <a href="https://eligeunaweb.es/como-crear-un-webhook-personalizado-en-woocommerce-para-sincronizar-inventario/">Cómo crear un webhook personalizado en WooCommerce para sincronizar inventario</a> apareció primero en <a href="https://eligeunaweb.es">Eligeunaweb Agencia de marketing y programación web</a>.]]></content:encoded>
					
					<wfw:commentRss>https://eligeunaweb.es/como-crear-un-webhook-personalizado-en-woocommerce-para-sincronizar-inventario/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo optimizar la base de datos de WooCommerce eliminando transients y datos huérfanos</title>
		<link>https://eligeunaweb.es/como-optimizar-la-base-de-datos-de-woocommerce-eliminando-transients-y-datos-huerfanos/</link>
					<comments>https://eligeunaweb.es/como-optimizar-la-base-de-datos-de-woocommerce-eliminando-transients-y-datos-huerfanos/#respond</comments>
		
		<dc:creator><![CDATA[eligeunaweb]]></dc:creator>
		<pubDate>Mon, 21 Jul 2025 07:00:00 +0000</pubDate>
				<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Recomendaciones]]></category>
		<category><![CDATA[WooCommerce]]></category>
		<guid isPermaLink="false">https://eligeunaweb.es/?p=987610965</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_2 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_2">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_2  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_2  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h1>Cómo optimizar la base de datos de WooCommerce eliminando transients y datos huérfanos</h1>

<p>La base de datos de WooCommerce puede volverse lenta y pesada con el tiempo, especialmente en tiendas con mucho tráfico o productos. En este artículo, te enseñamos a identificar y eliminar transients, datos huérfanos y otros registros innecesarios que afectan al rendimiento.</p>

<h2>Índice</h2>
<ul>
  <li><a href="#que-son-transients">¿Qué son los transients?</a></li>
  <li><a href="#como-identificarlos">Cómo identificarlos desde MySQL</a></li>
  <li><a href="#eliminar-datos">Eliminar datos huérfanos</a></li>
  <li><a href="#script-php">Script PHP automatizado</a></li>
  <li><a href="#buenas-practicas">Buenas prácticas y backups</a></li>
</ul>

<div style="height:40px;"></div>

<h2 id="que-son-transients">¿Qué son los transients?</h2>
<p>Los transients son variables temporales almacenadas en la tabla <code>wp_options</code> con prefijos como <code>_transient_</code> o <code>_transient_timeout_</code>. WooCommerce los usa para almacenar resultados de consultas, información de caché y otros datos temporales.</p>

<div style="height:40px;"></div>

<h2 id="como-identificarlos">Cómo identificarlos desde MySQL</h2>
<pre class="caja-codigo-blog">SELECT option_name, option_value 
FROM wp_options 
WHERE option_name LIKE '%_transient_%';</pre>
<p>Este comando muestra todos los transients almacenados. Muchos de ellos ya están expirados pero siguen ocupando espacio.</p>

<div style="height:40px;"></div>

<h2 id="eliminar-datos">Eliminar datos huérfanos</h2>
<p>WooCommerce deja registros sin uso en varias tablas tras eliminar productos, pedidos o variaciones. Algunas consultas útiles:</p>
<pre class="caja-codigo-blog">-- Transients expirados
DELETE FROM wp_options 
WHERE option_name LIKE '_transient_%' 
AND option_name NOT LIKE '_transient_timeout_%';</pre>

<pre class="caja-codigo-blog">-- Metadatos huérfanos
DELETE pm 
FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL;</pre>

<pre class="caja-codigo-blog">-- Termmeta huérfano
DELETE tm
FROM wp_termmeta tm
LEFT JOIN wp_terms t ON t.term_id = tm.term_id
WHERE t.term_id IS NULL;</pre>

<div style="height:40px;"></div>

<h2 id="script-php">Script PHP automatizado</h2>
<p>Este script puede programarse con cron para ejecutarse semanalmente:</p>
<pre class="caja-codigo-blog">
<?php
require_once('wp-load.php');

global $wpdb;
$wpdb->query("DELETE FROM {$wpdb->options} WHERE option_name LIKE '_transient_%' AND option_name NOT LIKE '_transient_timeout_%'");
$wpdb->query("DELETE pm FROM {$wpdb->postmeta} pm LEFT JOIN {$wpdb->posts} wp ON wp.ID = pm.post_id WHERE wp.ID IS NULL");
$wpdb->query("DELETE tm FROM {$wpdb->termmeta} tm LEFT JOIN {$wpdb->terms} t ON t.term_id = tm.term_id WHERE t.term_id IS NULL");
echo "Limpieza completada.";
?>
</pre>

<div style="height:40px;"></div>

<h2 id="buenas-practicas">Buenas prácticas y backups</h2>
<ul>
  <li>Haz backup completo antes de ejecutar scripts SQL.</li>
  <li>Utiliza un entorno staging si tienes alto tráfico.</li>
  <li>Verifica la integridad con plugins como WP-DBManager.</li>
  <li>Evita plugins de limpieza automática agresiva sin control.</li>
</ul>

<div style="height:40px;"></div>

<h2>Conclusión</h2>
<p>Eliminar datos temporales y huérfanos mejora el rendimiento de tu tienda y reduce el uso de recursos. Esta práctica debería ser parte de tu mantenimiento mensual.</p>
<p><strong>¿Quieres que revisemos y optimicemos tu base de datos WooCommerce?</strong> <a href="/contacto">Contáctanos</a>.</p></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>La entrada <a href="https://eligeunaweb.es/como-optimizar-la-base-de-datos-de-woocommerce-eliminando-transients-y-datos-huerfanos/">Cómo optimizar la base de datos de WooCommerce eliminando transients y datos huérfanos</a> apareció primero en <a href="https://eligeunaweb.es">Eligeunaweb Agencia de marketing y programación web</a>.]]></content:encoded>
					
					<wfw:commentRss>https://eligeunaweb.es/como-optimizar-la-base-de-datos-de-woocommerce-eliminando-transients-y-datos-huerfanos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo detectar productos nunca vendidos en WooCommerce con SQL</title>
		<link>https://eligeunaweb.es/como-detectar-productos-nunca-vendidos-en-woocommerce-con-sql-2/</link>
					<comments>https://eligeunaweb.es/como-detectar-productos-nunca-vendidos-en-woocommerce-con-sql-2/#respond</comments>
		
		<dc:creator><![CDATA[eligeunaweb]]></dc:creator>
		<pubDate>Mon, 14 Jul 2025 07:00:00 +0000</pubDate>
				<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Recomendaciones]]></category>
		<category><![CDATA[WooCommerce]]></category>
		<guid isPermaLink="false">https://eligeunaweb.es/?p=987610925</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_3 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_3">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_3  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_3  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h1>Cómo detectar productos nunca vendidos en WooCommerce con SQL</h1>

<p>¿Sabías que en muchas tiendas WooCommerce existen productos que jamás han tenido ni una sola venta? Estos productos ocupan espacio en tu catálogo, ralentizan tus procesos y pueden dañar tu estrategia de marketing y SEO. En este artículo aprenderás cómo detectarlos directamente en tu base de datos usando SQL, para poder decidir si eliminarlos, promocionarlos o darles otra utilidad.</p>

<div style="height:40px;"></div>

<h2>Índice de contenidos</h2>

<ul>
  <li><a href="#por-que-detectar">¿Por qué detectar productos nunca vendidos?</a></li>
  <li><a href="#estructura-bbdd">Estructura de la base de datos en WooCommerce</a></li>
  <li><a href="#consultas-sql">Consultas SQL para detectarlos</a></li>
  <li><a href="#ejemplo-practico">Ejemplo práctico paso a paso</a></li>
  <li><a href="#acciones">¿Qué hacer con estos productos?</a></li>
  <li><a href="#buenas-practicas">Buenas prácticas y seguridad</a></li>
  <li><a href="#seo-beneficios">Impacto SEO y comercial</a></li>
  <li><a href="#conclusion">Conclusión</a></li>
</ul>

<div style="height:40px;"></div>

<h2 id="por-que-detectar">¿Por qué detectar productos nunca vendidos?</h2>

<p>Identificar estos productos es clave porque:</p>

<ul>
  <li>Te ayudan a depurar tu catálogo.</li>
  <li>Evitas cargar de datos innecesarios tu web.</li>
  <li>Detectas posibles errores en fichas de producto.</li>
  <li>Optimiza recursos de marketing hacia productos que sí convierten.</li>
</ul>

<div style="height:40px;"></div>

<h2 id="estructura-bbdd">Estructura de la base de datos en WooCommerce</h2>

<p>Las ventas se guardan en estas tablas clave:</p>

<table border="1" cellpadding="5" cellspacing="0">
  <tr>
    <th>Tabla</th>
    <th>Descripción</th>
  </tr>
  <tr>
    <td>wp_posts</td>
    <td>Contiene los productos (post_type = &#8216;product&#8217;).</td>
  </tr>
  <tr>
    <td>wp_woocommerce_order_items</td>
    <td>Contiene los ítems de cada pedido.</td>
  </tr>
  <tr>
    <td>wp_woocommerce_order_itemmeta</td>
    <td>Relaciona cada ítem con el product_id.</td>
  </tr>
</table>

<div style="height:40px;"></div>

<h2 id="consultas-sql">Consultas SQL para detectarlos</h2>

<p>Para saber qué productos jamás se han vendido, podemos usar esta consulta:</p>

<pre class="caja-codigo-blog">
SELECT p.ID, p.post_title
FROM wp_posts p
WHERE p.post_type = 'product'
AND p.ID NOT IN (
    SELECT meta_value
    FROM wp_woocommerce_order_itemmeta
    WHERE meta_key = '_product_id'
);
</pre>

<p>Explicación línea a línea:</p>

<ul>
  <li><code>wp_posts</code> → contiene todos los productos.</li>
  <li><code>NOT IN</code> → excluye los productos que aparecen en pedidos.</li>
  <li><code>wp_woocommerce_order_itemmeta</code> → guarda los productos comprados.</li>
</ul>

<div style="height:40px;"></div>

<h2 id="ejemplo-practico">Ejemplo práctico paso a paso</h2>

<p>Supongamos que quieres identificar los productos huérfanos para analizarlos. Ejecuta la consulta SQL anterior en phpMyAdmin o vía consola MySQL:</p>

<pre class="caja-codigo-blog">
mysql -u tu_usuario -p tu_base_datos
</pre>

<p>Luego ejecuta la SELECT y exporta resultados a CSV para analizarlos.</p>

<div style="height:40px;"></div>

<h2 id="acciones">¿Qué hacer con estos productos?</h2>

<ul>
  <li>Analiza si tienen errores en sus fichas.</li>
  <li>Considera promocionarlos o darles mayor visibilidad.</li>
  <li>Elimínalos si son antiguos o irrelevantes.</li>
</ul>

<p>¡Esto ayudará a que tu catálogo sea más rentable!</p>

<div style="height:40px;"></div>

<h2 id="buenas-practicas">Buenas prácticas y seguridad</h2>

<ul>
  <li>Haz siempre un backup antes de modificar datos.</li>
  <li>Prueba primero en entornos de staging.</li>
  <li>Documenta cambios realizados.</li>
</ul>

<div style="height:40px;"></div>

<h2 id="seo-beneficios">Impacto SEO y comercial</h2>

<p>Eliminar o mejorar estos productos puede:</p>

<ul>
  <li>Evitar URLs huérfanas.</li>
  <li>Mejorar la experiencia del usuario.</li>
  <li>Optimizar el crawl budget de Google.</li>
</ul>

<div style="height:40px;"></div>

<h2 id="conclusion">Conclusión</h2>

<p>Identificar productos nunca vendidos en WooCommerce es fundamental para mantener tu catálogo sano y rentable. Con estas consultas SQL puedes encontrarlos rápidamente y tomar decisiones estratégicas.</p>

<p><strong>¿Quieres que hagamos esta auditoría por ti?</strong> ¡<strong>Contáctanos y optimiza tu WooCommerce!</strong></p>

<div style="height:40px;"></div>

<h2>Textos para redes sociales</h2>

<h3>LinkedIn (versión no técnica)</h3>
<p>🛒 <strong>¿Sabes cuántos productos de tu WooCommerce nunca se han vendido?</strong><br><br>
A veces, tenemos productos que ocupan espacio en el catálogo, consumen recursos y jamás han tenido una sola venta.<br><br>
Hoy te explico cómo detectarlos con SQL para mejorar tu tienda y tu rentabilidad.<br><br>
#WooCommerce #Ecommerce #SQL #NegocioDigital #TiendaOnline</p>

<div style="height:20px;"></div>

<h3>LinkedIn (versión técnica)</h3>
<p><strong>WooCommerce y los “productos fantasmas.”</strong><br><br>
¿Sabes detectar los productos que jamás se han vendido en tu tienda?<br><br>
Aquí comparto cómo identificarlos directamente desde la base de datos:<br>
✅ Tablas implicadas (wp_posts, order_itemmeta).<br>
✅ Query SQL explicada paso a paso.<br>
✅ Estrategias para limpiar tu catálogo.<br><br>
¡Un must para devs y ecommerce managers!<br><br>
#WooCommerce #SQL #DataCleaning #Ecommerce #DesarrolloWeb</p>

<div style="height:20px;"></div>

<h3>Facebook / Instagram publicación</h3>
<p>🛒 <strong>¡Detecta productos nunca vendidos en tu WooCommerce!</strong><br><br>
Aprende cómo identificarlos con SQL y optimiza tu tienda para vender más.<br><br>
👉 Descúbrelo paso a paso en nuestro blog.<br><br>
#WooCommerce #SQL #TiendaOnline #NegocioDigital</p>

<div style="height:20px;"></div>

<h3>Carrusel Instagram / Facebook</h3>
<p><strong>Slide 1:</strong> 🛒 ¿Tienes productos en WooCommerce que nunca se han vendido?<br><br>
<strong>Slide 2:</strong> 🤔 Ocupan espacio y ralentizan tu tienda.<br><br>
<strong>Slide 3:</strong> 💻 Encuéntralos con una simple consulta SQL.<br><br>
<strong>Slide 4:</strong> 🚀 Optimiza tu catálogo y vende mejor.<br><br>
<strong>Slide 5:</strong> 👉 Aprende cómo en nuestro blog técnico.</p>

<div style="height:40px;"></div></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>La entrada <a href="https://eligeunaweb.es/como-detectar-productos-nunca-vendidos-en-woocommerce-con-sql-2/">Cómo detectar productos nunca vendidos en WooCommerce con SQL</a> apareció primero en <a href="https://eligeunaweb.es">Eligeunaweb Agencia de marketing y programación web</a>.]]></content:encoded>
					
					<wfw:commentRss>https://eligeunaweb.es/como-detectar-productos-nunca-vendidos-en-woocommerce-con-sql-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo reasignar productos de una categoría a otra en WooCommerce con SQL</title>
		<link>https://eligeunaweb.es/como-reasignar-productos-de-una-categoria-a-otra-en-woocommerce-con-sql-2/</link>
					<comments>https://eligeunaweb.es/como-reasignar-productos-de-una-categoria-a-otra-en-woocommerce-con-sql-2/#respond</comments>
		
		<dc:creator><![CDATA[eligeunaweb]]></dc:creator>
		<pubDate>Mon, 07 Jul 2025 07:00:00 +0000</pubDate>
				<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Recomendaciones]]></category>
		<category><![CDATA[WooCommerce]]></category>
		<guid isPermaLink="false">https://eligeunaweb.es/?p=987610895</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_4 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_4">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_4  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_4  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h1>Cómo reasignar productos de una categoría a otra en WooCommerce con SQL: Guía completa para ecommerce y desarrolladores</h1>

<p>¿Tienes una tienda online en WooCommerce y necesitas mover productos de una categoría a otra de forma masiva? ¿Te preocupa perder tiempo editando producto por producto? En esta guía aprenderás cómo reasignar cientos o miles de productos a nuevas categorías directamente desde la base de datos usando SQL, de forma segura y rápida.</p>

<p>Este artículo está pensado tanto para dueños de ecommerce que quieren entender el proceso, como para técnicos y agencias que gestionan tiendas WooCommerce. Te explicaré:</p>

<ul>
  <li>Cómo está estructurada la base de datos de categorías y productos en WooCommerce.</li>
  <li>Consultas SQL reales y explicadas línea por línea.</li>
  <li>Cómo hacer backups antes de tocar la base de datos.</li>
  <li>Errores frecuentes y cómo evitarlos.</li>
  <li>Beneficios SEO de mantener categorías bien organizadas.</li>
</ul>

<p>¡Vamos paso a paso!</p>

<div style="height:40px;"></div>

<h2>Índice de contenidos</h2>

<ul>
  <li><a href="#por-que-reasignar">¿Por qué reasignar productos de categoría en WooCommerce?</a></li>
  <li><a href="#estructura-bbdd">Estructura de la base de datos de categorías en WooCommerce</a></li>
  <li><a href="#consultas-sql">Consultas SQL para reasignar productos</a></li>
  <li><a href="#ejemplo-practico">Ejemplo práctico paso a paso</a></li>
  <li><a href="#pros-contras">Pros y contras de usar SQL vs backend</a></li>
  <li><a href="#buenas-practicas">Buenas prácticas y seguridad</a></li>
  <li><a href="#seo-beneficios">Beneficios SEO de mantener categorías ordenadas</a></li>
  <li><a href="#conclusion">Conclusión</a></li>
</ul>

<div style="height:40px;"></div>

<h2 id="por-que-reasignar">¿Por qué reasignar productos de categoría en WooCommerce?</h2>

<p>En WooCommerce, la organización de categorías es clave tanto para la experiencia de usuario como para el SEO. A veces necesitas mover productos masivamente porque:</p>

<ul>
  <li>Has cambiado la estructura de categorías de tu tienda.</li>
  <li>Quieres optimizar el SEO y agrupar productos de otra manera.</li>
  <li>Detectas categorías con muy pocos productos y quieres consolidar.</li>
  <li>Necesitas actualizar tu catálogo tras una importación masiva.</li>
</ul>

<p>Si tu tienda tiene pocos productos, podrías hacerlo manualmente desde el panel de WooCommerce. Pero cuando tienes cientos o miles de productos, es mucho más rápido y seguro hacerlo vía SQL.</p>

<div style="height:40px;"></div>

<h2 id="estructura-bbdd">Estructura de la base de datos de categorías en WooCommerce</h2>

<p>WooCommerce usa la base de datos de WordPress. Los datos de categorías de productos están en estas tablas principales:</p>

<table border="1" cellpadding="5" cellspacing="0">
  <tr>
    <th>Tabla</th>
    <th>Descripción</th>
  </tr>
  <tr>
    <td>wp_terms</td>
    <td>Contiene el nombre y slug de las categorías.</td>
  </tr>
  <tr>
    <td>wp_term_taxonomy</td>
    <td>Indica a qué taxonomía pertenece (en WooCommerce suele ser <code>product_cat</code>).</td>
  </tr>
  <tr>
    <td>wp_term_relationships</td>
    <td>Relaciona productos (post_id) con la taxonomía.</td>
  </tr>
  <tr>
    <td>wp_posts</td>
    <td>Los productos son un tipo de post.</td>
  </tr>
</table>

<p>Así funciona la relación:</p>

<ul>
  <li>El producto está en <code>wp_posts</code> (post_type = product).</li>
  <li>La categoría está en <code>wp_terms</code> y <code>wp_term_taxonomy</code>.</li>
  <li>La relación entre producto y categoría está en <code>wp_term_relationships</code>.</li>
</ul>

<div style="height:40px;"></div>

<h2 id="consultas-sql">Consultas SQL para reasignar productos</h2>

<p>Vamos a ver cómo reasignar productos de una categoría a otra.</p>

<p>Supongamos:</p>

<ul>
  <li>La categoría vieja tiene ID = 20.</li>
  <li>La categoría nueva tiene ID = 35.</li>
</ul>

<p>La tabla clave es <code>wp_term_relationships</code>. Aquí se guardan las relaciones entre productos y categorías.</p>

<p>**Paso 1: Localizar productos en la categoría antigua.**</p>

<pre class="caja-codigo-blog">
SELECT object_id
FROM wp_term_relationships
WHERE term_taxonomy_id = 20;
</pre>

<p>Explicación:</p>

<ul>
  <li><code>object_id</code> → es el ID del producto (post ID).</li>
  <li><code>term_taxonomy_id = 20</code> → busca todos los productos en la categoría 20.</li>
</ul>

<div style="height:40px;"></div>

<p>**Paso 2: Asignar esos productos a la nueva categoría.**</p>

<p>Insertamos nuevas relaciones en <code>wp_term_relationships</code>:</p>

<pre class="caja-codigo-blog">
INSERT INTO wp_term_relationships (object_id, term_taxonomy_id)
SELECT object_id, 35
FROM wp_term_relationships
WHERE term_taxonomy_id = 20;
</pre>

<p>Explicación línea a línea:</p>

<ul>
  <li><code>INSERT INTO wp_term_relationships</code>: creamos nuevas relaciones.</li>
  <li><code>object_id</code>: ID de producto.</li>
  <li><code>term_taxonomy_id = 35</code>: la nueva categoría.</li>
  <li>Seleccionamos todos los <code>object_id</code> de la categoría antigua.</li>
</ul>

<div style="height:40px;"></div>

<p>**Paso 3: Eliminar relaciones antiguas si queremos quitar la categoría vieja.**</p>

<pre class="caja-codigo-blog">
DELETE FROM wp_term_relationships
WHERE term_taxonomy_id = 20;
</pre>

<p>¡Ojo! Solo borra si estás seguro de no necesitar mantener la categoría anterior en paralelo.</p>

<div style="height:40px;"></div>

<h2 id="ejemplo-practico">Ejemplo práctico paso a paso</h2>

<p>Imagina que necesitas mover todos los productos de la categoría “Verano” (ID 20) a la categoría “Rebajas” (ID 35).</p>

<p>**1. Haz backup de la base de datos:**</p>

<pre class="caja-codigo-blog">
mysqldump -u user -p database_name > backup_woocommerce.sql
</pre>

<p>**2. Ejecuta esta query para asignar los productos a la nueva categoría:**</p>

<pre class="caja-codigo-blog">
INSERT INTO wp_term_relationships (object_id, term_taxonomy_id)
SELECT object_id, 35
FROM wp_term_relationships
WHERE term_taxonomy_id = 20;
</pre>

<p>**3. (Opcional) Borra la relación antigua si ya no quieres la categoría “Verano”:**</p>

<pre class="caja-codigo-blog">
DELETE FROM wp_term_relationships
WHERE term_taxonomy_id = 20;
</pre>

<p>Con esto, todos los productos pasarán a estar asociados a la nueva categoría.</p>

<div style="height:40px;"></div>

<h2 id="pros-contras">Pros y contras de usar SQL vs backend</h2>

<table border="1" cellpadding="5" cellspacing="0">
  <tr>
    <th>Ventajas SQL</th>
    <th>Desventajas SQL</th>
  </tr>
  <tr>
    <td>Mucho más rápido para grandes catálogos.</td>
    <td>Requiere conocimientos técnicos.</td>
  </tr>
  <tr>
    <td>Permite cambios masivos en pocos segundos.</td>
    <td>Si cometes un error, puedes romper relaciones.</td>
  </tr>
  <tr>
    <td>Ideal para tiendas con miles de productos.</td>
    <td>Obliga a hacer backups antes de tocar nada.</td>
  </tr>
</table>

<p>Para cambios pequeños, mejor usar el backend. Para grandes volúmenes, SQL es imbatible.</p>

<div style="height:40px;"></div>

<h2 id="buenas-practicas">Buenas prácticas y seguridad</h2>

<ul>
  <li>Siempre haz backup antes de ejecutar SQL.</li>
  <li>Prueba en un entorno staging antes que en producción.</li>
  <li>Verifica los IDs de las categorías antes de escribir queries.</li>
  <li>No borres datos si no estás seguro de sus relaciones.</li>
  <li>Consulta logs de errores tras los cambios.</li>
</ul>

<p>¡Más vale invertir 10 minutos en una copia de seguridad que perder toda la tienda!</p>

<div style="height:40px;"></div>

<h2 id="seo-beneficios">Beneficios SEO de mantener categorías ordenadas</h2>

<p>Una estructura de categorías bien definida es clave para el SEO:</p>

<ul>
  <li>Permite que Google entienda mejor tu catálogo.</li>
  <li>Evita canibalización de palabras clave.</li>
  <li>Facilita la navegación para los usuarios.</li>
  <li>Reduce URLs huérfanas y enlaces rotos.</li>
</ul>

<p>Reasignar productos puede parecer solo “mover productos”, pero en realidad puede tener un impacto enorme en la visibilidad de tu tienda online.</p>

<div style="height:40px;"></div>

<h2 id="conclusion">Conclusión</h2>

<p>Reasignar productos de una categoría a otra en WooCommerce con SQL es una técnica imprescindible para tiendas con catálogos grandes. Te ahorra horas de trabajo y mantiene tu ecommerce ordenado y optimizado para SEO.</p>

<p><strong>¿Quieres que te ayudemos a reasignar categorías en tu WooCommerce sin riesgo y de forma segura?</strong> ¡<strong>Contáctanos!</strong></p>

<div style="height:40px;"></div></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>La entrada <a href="https://eligeunaweb.es/como-reasignar-productos-de-una-categoria-a-otra-en-woocommerce-con-sql-2/">Cómo reasignar productos de una categoría a otra en WooCommerce con SQL</a> apareció primero en <a href="https://eligeunaweb.es">Eligeunaweb Agencia de marketing y programación web</a>.]]></content:encoded>
					
					<wfw:commentRss>https://eligeunaweb.es/como-reasignar-productos-de-una-categoria-a-otra-en-woocommerce-con-sql-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo crear informes de clientes recurrentes con MySQL en WooCommerce</title>
		<link>https://eligeunaweb.es/como-crear-informes-de-clientes-recurrentes-con-mysql-en-woocommerce/</link>
					<comments>https://eligeunaweb.es/como-crear-informes-de-clientes-recurrentes-con-mysql-en-woocommerce/#respond</comments>
		
		<dc:creator><![CDATA[eligeunaweb]]></dc:creator>
		<pubDate>Mon, 16 Jun 2025 10:12:33 +0000</pubDate>
				<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Recomendaciones]]></category>
		<category><![CDATA[WooCommerce]]></category>
		<guid isPermaLink="false">https://eligeunaweb.es/?p=987610802</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_5 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_5">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_5  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_5  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h3><strong>Introducción</strong></h3>
<p>Identificar y premiar a los clientes recurrentes es clave para aumentar la fidelidad y el ticket medio en cualquier tienda online.</p>
<p>En este artículo aprenderás cómo <strong>crear un informe de clientes recurrentes en WooCommerce usando MySQL</strong>, para saber quiénes compran más de una vez y cómo usar esa información para tus campañas de marketing.</p>

<div style="height:40px;"></div>

<h4>Índice</h4>
<ul>
<li><a href="#estructura"><strong>1. Estructura de pedidos y usuarios en WooCommerce</strong></a></li>
<li><a href="#consulta"><strong>2. Consulta SQL para identificar clientes con compras repetidas</strong></a></li>
<li><a href="#exportar"><strong>3. Exportar el informe a CSV</strong></a></li>
<li><a href="#dashboard"><strong>4. Mostrar el informe en un dashboard PHP</strong></a></li>
<li><a href="#ideas"><strong>5. Ideas de uso: cupones, segmentación y remarketing</strong></a></li>
<li><a href="#conclusion"><strong>6. Conclusión</strong></a></li>
</ul>

<div style="height:40px;"></div>

<h3 id="estructura"><strong>1. Estructura de la base de datos</strong></h3>
<table>
<thead><tr><th>Tabla</th><th>Descripción</th></tr></thead>
<tbody>
<tr><td>wp_posts</td><td>Pedidos (<code>post_type = 'shop_order'</code>)</td></tr>
<tr><td>wp_postmeta</td><td>Datos del pedido (totales, métodos)</td></tr>
<tr><td>wp_users</td><td>Clientes registrados</td></tr>
</tbody>
</table>

<div style="height:40px;"></div>

<h3 id="consulta"><strong>2. Consulta SQL para clientes recurrentes</strong></h3>
<pre class="caja-codigo-blog">SELECT u.ID, u.user_email, COUNT(p.ID) AS num_pedidos
FROM wp_users u
JOIN wp_posts p ON p.post_author = u.ID
WHERE p.post_type = 'shop_order' AND p.post_status IN ('wc-completed','wc-processing')
GROUP BY u.ID
HAVING num_pedidos &gt; 1
ORDER BY num_pedidos DESC;</pre>

<p>📊 Esto devuelve usuarios con más de un pedido completado o en proceso.</p>

<div style="height:40px;"></div>

<h3 id="exportar"><strong>3. Exportar a CSV</strong></h3>
<pre class="caja-codigo-blog">&lt;?php
$result = mysqli_query($conn, $consulta);
$fp = fopen('clientes_recurrentes.csv', 'w');
while ($row = mysqli_fetch_assoc($result)) {
  fputcsv($fp, $row);
}
fclose($fp);
?&gt;</pre>

<div style="height:40px;"></div>

<h3 id="dashboard"><strong>4. Mostrar en un dashboard PHP</strong></h3>
<p>Puedes usar el resultado para crear tablas HTML o gráficos con librerías como Chart.js.</p>
<pre class="caja-codigo-blog">&lt;table&gt;
  &lt;tr&gt;&lt;th&gt;Email&lt;/th&gt;&lt;th&gt;Pedidos&lt;/th&gt;&lt;/tr&gt;
  &lt;?php while($row = mysqli_fetch_assoc($result)): ?&gt;
    &lt;tr&gt;&lt;td&gt;&lt;?= $row['user_email'] ?&gt;&lt;/td&gt;&lt;td&gt;&lt;?= $row['num_pedidos'] ?&gt;&lt;/td&gt;&lt;/tr&gt;
  &lt;?php endwhile; ?&gt;
&lt;/table&gt;</pre>

<div style="height:40px;"></div>

<h3 id="ideas"><strong>5. Ideas de uso</strong></h3>
<ul>
<li>🎯 Crear listas de correo para campañas exclusivas</li>
<li>🎁 Enviar cupones de descuento a clientes VIP</li>
<li>📈 Analizar frecuencia de compra y optimizar el stock</li>
</ul>

<div style="height:40px;"></div>

<h3 id="conclusion"><strong>6. Conclusión</strong></h3>
<p>Analizar clientes recurrentes en WooCommerce con SQL te da control total para premiar la lealtad, aumentar ventas y planificar campañas más efectivas.</p>
<p>📩 ¿Te gustaría un informe automático y visual? Escríbenos y lo implementamos para tu tienda.</p></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>La entrada <a href="https://eligeunaweb.es/como-crear-informes-de-clientes-recurrentes-con-mysql-en-woocommerce/">Cómo crear informes de clientes recurrentes con MySQL en WooCommerce</a> apareció primero en <a href="https://eligeunaweb.es">Eligeunaweb Agencia de marketing y programación web</a>.]]></content:encoded>
					
					<wfw:commentRss>https://eligeunaweb.es/como-crear-informes-de-clientes-recurrentes-con-mysql-en-woocommerce/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo modificar atributos de productos en WooCommerce desde SQL</title>
		<link>https://eligeunaweb.es/como-modificar-atributos-de-productos-en-woocommerce-desde-sql/</link>
					<comments>https://eligeunaweb.es/como-modificar-atributos-de-productos-en-woocommerce-desde-sql/#respond</comments>
		
		<dc:creator><![CDATA[eligeunaweb]]></dc:creator>
		<pubDate>Mon, 09 Jun 2025 07:00:00 +0000</pubDate>
				<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Recomendaciones]]></category>
		<category><![CDATA[WooCommerce]]></category>
		<guid isPermaLink="false">https://eligeunaweb.es/?p=987610740</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_6 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_6">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_6  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_6  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h3><strong>Introducción</strong></h3>
<p>WooCommerce guarda atributos como talla, color o marca en la base de datos de forma distribuida, especialmente en <code>wp_postmeta</code>.  
Modificar estos atributos manualmente puede ser tedioso, pero con SQL puedes automatizar y actualizar atributos masivamente.</p>
<p>En esta guía te mostramos cómo <strong>modificar atributos de productos en WooCommerce directamente con consultas SQL</strong>, de forma segura y eficiente.</p>

<div style="height:40px;"></div>

<h4>Índice</h4>
<ul>
<li><a href="#estructura"><strong>1. Estructura de atributos en WooCommerce</strong></a></li>
<li><a href="#buscar"><strong>2. Cómo localizar los atributos de un producto</strong></a></li>
<li><a href="#modificar"><strong>3. Modificar valores de atributos existentes</strong></a></li>
<li><a href="#crear"><strong>4. Añadir atributos nuevos con SQL</strong></a></li>
<li><a href="#variaciones"><strong>5. Cómo afectan los atributos a productos variables</strong></a></li>
<li><a href="#seguridad"><strong>6. Precauciones, backups y buenas prácticas</strong></a></li>
<li><a href="#conclusion"><strong>7. Conclusión</strong></a></li>
</ul>

<div style="height:40px;"></div>

<h3 id="estructura"><strong>1. ¿Dónde se guardan los atributos?</strong></h3>
<table>
<thead><tr><th>Tabla</th><th>Descripción</th></tr></thead>
<tbody>
<tr><td>wp_postmeta</td><td>Atributos y metadatos de productos</td></tr>
<tr><td>wp_posts</td><td>Productos principales (post_type = &#8216;product&#8217;)</td></tr>
<tr><td>wp_term_relationships</td><td>Relación con taxonomías de atributos</td></tr>
<tr><td>wp_termmeta</td><td>Valores y configuración del atributo</td></tr>
</tbody>
</table>

<div style="height:40px;"></div>

<h3 id="buscar"><strong>2. Cómo localizar atributos existentes</strong></h3>
<p>Ejemplo para ver atributos registrados para un producto concreto:</p>
<pre class="caja-codigo-blog">SELECT post_id, meta_key, meta_value
FROM wp_postmeta
WHERE post_id = 123 AND meta_key LIKE 'attribute_%';</pre>

<p>🔍 Puedes buscar por slug del atributo como <code>attribute_pa_color</code>.</p>

<div style="height:40px;"></div>

<h3 id="modificar"><strong>3. Modificar valores existentes</strong></h3>
<p>Actualizar el atributo «color» a «rojo» en todos los productos con «verde»:</p>
<pre class="caja-codigo-blog">UPDATE wp_postmeta
SET meta_value = 'rojo'
WHERE meta_key = 'attribute_pa_color' AND meta_value = 'verde';</pre>

<p>💡 Usa esto con cuidado para no romper productos variables ya generados.</p>

<div style="height:40px;"></div>

<h3 id="crear"><strong>4. Añadir atributos nuevos con SQL</strong></h3>
<pre class="caja-codigo-blog">INSERT INTO wp_postmeta (post_id, meta_key, meta_value)
VALUES (123, 'attribute_pa_marca', 'Nike');</pre>

<p>Después, recuerda regenerar los términos o sincronizar desde el admin si es necesario.</p>

<div style="height:40px;"></div>

<h3 id="variaciones"><strong>5. Productos variables y atributos</strong></h3>
<p>Las variaciones dependen de atributos definidos previamente.  
Cambiar un atributo usado en variaciones puede causar productos rotos o precios invisibles.</p>

<p>✅ Siempre revisa si <code>_product_attributes</code> y <code>_default_attributes</code> están sincronizados.</p>

<div style="height:40px;"></div>

<h3 id="seguridad"><strong>6. Buenas prácticas</strong></h3>
<ul>
<li>💾 Haz backup antes de modificar directamente</li>
<li>🔁 Prueba primero en un staging</li>
<li>📊 Exporta y revisa los valores antes y después</li>
<li>🔐 No modifiques productos en producción sin pruebas previas</li>
</ul>

<div style="height:40px;"></div>

<h3 id="conclusion"><strong>7. Conclusión</strong></h3>
<p>Modificar atributos en WooCommerce desde SQL te permite ahorrar tiempo, corregir errores masivos y automatizar cambios.  
Con las precauciones adecuadas, puedes gestionar catálogos grandes sin depender del panel de administración.</p>
<p>📩 Si necesitas un script para sincronizar atributos entre productos, ¡escríbenos y te lo creamos a medida!</p></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>La entrada <a href="https://eligeunaweb.es/como-modificar-atributos-de-productos-en-woocommerce-desde-sql/">Cómo modificar atributos de productos en WooCommerce desde SQL</a> apareció primero en <a href="https://eligeunaweb.es">Eligeunaweb Agencia de marketing y programación web</a>.]]></content:encoded>
					
					<wfw:commentRss>https://eligeunaweb.es/como-modificar-atributos-de-productos-en-woocommerce-desde-sql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Eliminar pedidos antiguos en WooCommerce con SQL para aligerar la base de datos</title>
		<link>https://eligeunaweb.es/eliminar-pedidos-antiguos-en-woocommerce-con-sql-para-aligerar-la-base-de-datos/</link>
					<comments>https://eligeunaweb.es/eliminar-pedidos-antiguos-en-woocommerce-con-sql-para-aligerar-la-base-de-datos/#respond</comments>
		
		<dc:creator><![CDATA[eligeunaweb]]></dc:creator>
		<pubDate>Tue, 03 Jun 2025 07:00:00 +0000</pubDate>
				<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Recomendaciones]]></category>
		<category><![CDATA[WooCommerce]]></category>
		<guid isPermaLink="false">https://eligeunaweb.es/?p=987610694</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_7 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_7">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_7  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_7  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h3><strong>Introducción</strong></h3>
<p>En tiendas WooCommerce con varios años de actividad, la base de datos puede llenarse de pedidos antiguos que ya no son útiles. Estos datos ralentizan el backend, afectan el rendimiento general y hacen más pesada la administración.</p>
<p>En esta guía te mostramos cómo <strong>eliminar pedidos antiguos en WooCommerce usando SQL</strong>, sin romper relaciones ni integridad de la base.</p>

<div style="height:40px;"></div>

<h4>Índice</h4>
<ul>
<li><a href="#estructura"><strong>1. Tablas que intervienen en los pedidos</strong></a></li>
<li><a href="#localizar"><strong>2. Cómo localizar pedidos antiguos</strong></a></li>
<li><a href="#eliminar"><strong>3. SQL para eliminar pedidos por fecha o estado</strong></a></li>
<li><a href="#relaciones"><strong>4. Cómo eliminar los metadatos relacionados</strong></a></li>
<li><a href="#respaldo"><strong>5. Hacer copia de seguridad antes de borrar</strong></a></li>
<li><a href="#automatizar"><strong>6. Automatizar esta limpieza con cron</strong></a></li>
<li><a href="#consejos"><strong>7. Buenas prácticas y precauciones</strong></a></li>
<li><a href="#conclusion"><strong>8. Conclusión</strong></a></li>
</ul>

<div style="height:40px;"></div>

<h3 id="estructura"><strong>1. Tablas implicadas en pedidos</strong></h3>
<p>Un pedido en WooCommerce se guarda como un <code>post_type = 'shop_order'</code>. Está relacionado con:</p>
<table>
<thead><tr><th>Tabla</th><th>Descripción</th></tr></thead>
<tbody>
<tr><td>wp_posts</td><td>Contiene los pedidos (como posts)</td></tr>
<tr><td>wp_postmeta</td><td>Datos del pedido (totales, dirección, métodos)</td></tr>
<tr><td>wp_woocommerce_order_items</td><td>Líneas del pedido (productos comprados)</td></tr>
<tr><td>wp_woocommerce_order_itemmeta</td><td>Metadatos de cada línea</td></tr>
</tbody>
</table>

<div style="height:40px;"></div>

<h3 id="localizar"><strong>2. Localizar pedidos antiguos</strong></h3>
<pre class="caja-codigo-blog">SELECT ID, post_date, post_status
FROM wp_posts
WHERE post_type = 'shop_order' AND post_date &lt; '2022-01-01';</pre>

<p>🔎 Cambia la fecha para tu criterio y usa filtros como <code>post_status = 'wc-completed'</code> para conservar los activos.</p>

<div style="height:40px;"></div>

<h3 id="eliminar"><strong>3. Eliminar pedidos por SQL</strong></h3>
<p>Primero eliminas los ítems del pedido:</p>
<pre class="caja-codigo-blog">DELETE itemmeta
FROM wp_woocommerce_order_items AS items
JOIN wp_woocommerce_order_itemmeta AS itemmeta ON itemmeta.order_item_id = items.order_item_id
WHERE order_id IN (
  SELECT ID FROM wp_posts WHERE post_type = 'shop_order' AND post_date &lt; '2022-01-01'
);</pre>

<p>Luego los ítems:</p>
<pre class="caja-codigo-blog">DELETE FROM wp_woocommerce_order_items
WHERE order_id IN (
  SELECT ID FROM wp_posts WHERE post_type = 'shop_order' AND post_date &lt; '2022-01-01'
);</pre>

<div style="height:40px;"></div>

<h3 id="relaciones"><strong>4. Eliminar metadatos y el pedido</strong></h3>
<pre class="caja-codigo-blog">DELETE FROM wp_postmeta
WHERE post_id IN (
  SELECT ID FROM wp_posts WHERE post_type = 'shop_order' AND post_date &lt; '2022-01-01'
);

DELETE FROM wp_posts
WHERE post_type = 'shop_order' AND post_date &lt; '2022-01-01';</pre>

<div style="height:40px;"></div>

<h3 id="respaldo"><strong>5. Hacer backup antes</strong></h3>
<p>Antes de cualquier limpieza masiva, realiza una copia de seguridad completa de la base de datos. Puedes usar:</p>
<ul>
<li><code>mysqldump -u usuario -p base > backup.sql</code></li>
<li>Exportación desde phpMyAdmin</li>
</ul>

<div style="height:40px;"></div>

<h3 id="automatizar"><strong>6. Automatizar con cron</strong></h3>
<p>Usa un cron semanal para borrar pedidos antiguos automáticamente:</p>
<pre class="caja-codigo-blog">0 4 * * 0 /usr/bin/php /var/www/limpiar_pedidos_antiguos.php</pre>

<p>💡 Dentro del script puedes definir fecha dinámica con <code>strtotime("-18 months")</code>.</p>

<div style="height:40px;"></div>

<h3 id="consejos"><strong>7. Consejos finales</strong></h3>
<ul>
<li>✅ Filtra por estado para no eliminar pedidos activos</li>
<li>🧪 Haz pruebas primero en una copia de tu base</li>
<li>📊 Revisa cómo afecta al rendimiento en dashboards y backoffice</li>
</ul>

<div style="height:40px;"></div>

<h3 id="conclusion"><strong>8. Conclusión</strong></h3>
<p>Eliminar pedidos antiguos en WooCommerce desde SQL permite aligerar tu base de datos, mejorar tiempos de respuesta y liberar espacio innecesario. Automatizar este proceso es especialmente útil en tiendas con alto volumen de ventas.</p>
<p>📩 ¿Quieres que te preparemos un sistema de limpieza programado o un dashboard para visualizarlo? Escríbenos.</p></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>La entrada <a href="https://eligeunaweb.es/eliminar-pedidos-antiguos-en-woocommerce-con-sql-para-aligerar-la-base-de-datos/">Eliminar pedidos antiguos en WooCommerce con SQL para aligerar la base de datos</a> apareció primero en <a href="https://eligeunaweb.es">Eligeunaweb Agencia de marketing y programación web</a>.]]></content:encoded>
					
					<wfw:commentRss>https://eligeunaweb.es/eliminar-pedidos-antiguos-en-woocommerce-con-sql-para-aligerar-la-base-de-datos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo crear un informe de clientes recurrentes en WooCommerce con MySQL</title>
		<link>https://eligeunaweb.es/como-crear-un-informe-de-clientes-recurrentes-en-woocommerce-con-mysql/</link>
					<comments>https://eligeunaweb.es/como-crear-un-informe-de-clientes-recurrentes-en-woocommerce-con-mysql/#respond</comments>
		
		<dc:creator><![CDATA[eligeunaweb]]></dc:creator>
		<pubDate>Fri, 09 May 2025 05:00:00 +0000</pubDate>
				<category><![CDATA[E-commerce]]></category>
		<category><![CDATA[Recomendaciones]]></category>
		<category><![CDATA[WooCommerce]]></category>
		<guid isPermaLink="false">https://eligeunaweb.es/?p=987501780</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_8 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_8">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_8  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_8  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h3><strong>Introducción</strong></h3>
<p>Conocer cuántos clientes repiten compra en tu tienda es clave para medir la fidelidad y rentabilidad del negocio.</p>
<p>En este artículo aprenderás cómo <strong>generar un informe de clientes recurrentes en WooCommerce usando consultas MySQL</strong>, con filtros por fecha, número de pedidos y valor total comprado.</p>
<p>Ideal para tiendas con volumen de ventas que quieren segmentar su base de clientes y tomar decisiones de marketing personalizadas.</p>

<div style="height:40px;"></div>

<h4>Índice</h4>
<ul>
<li><a href="#paso1"><strong>1. ¿Qué es un cliente recurrente?</strong></a></li>
<li><a href="#paso2"><strong>2. Tablas que intervienen en WooCommerce</strong></a></li>
<li><a href="#paso3"><strong>3. Consulta SQL para obtener clientes con múltiples pedidos</strong></a></li>
<li><a href="#paso4"><strong>4. Añadir filtros por fecha o importe</strong></a></li>
<li><a href="#paso5"><strong>5. Exportar resultados y visualizarlos</strong></a></li>
<li><a href="#paso6"><strong>6. Cómo usar esta información en marketing</strong></a></li>
<li><a href="#paso7"><strong>7. Conclusión</strong></a></li>
</ul>

<div style="height:40px;"></div>

<h3 id="paso1"><strong>1. ¿Qué consideramos un cliente recurrente?</strong></h3>
<p>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).</p>

<div style="height:40px;"></div>

<h3 id="paso2"><strong>2. Tablas clave en WooCommerce</strong></h3>
<table>
<thead><tr><th>Tabla</th><th>Contenido</th></tr></thead>
<tbody>
<tr><td>wp_posts</td><td>Pedidos (`post_type = shop_order`)</td></tr>
<tr><td>wp_postmeta</td><td>Datos del pedido (total, user_id, etc.)</td></tr>
<tr><td>wp_users</td><td>Clientes registrados</td></tr>
</tbody></table>

<div style="height:40px;"></div>

<h3 id="paso3"><strong>3. Consulta SQL para detectar clientes con múltiples pedidos</strong></h3>
<pre class="caja-codigo-blog">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 &gt; 1
ORDER BY total_pedidos DESC;</pre>

<p><strong>Explicación:</strong></p>
<ul>
<li>Filtra pedidos completados o en proceso</li>
<li>Agrupa por usuario</li>
<li>Devuelve solo los que han hecho 2 o más pedidos</li>
</ul>

<div style="height:40px;"></div>

<h3 id="paso4"><strong>4. Filtros adicionales: fecha e importe total</strong></h3>

<p><strong>Filtrar por fecha (últimos 6 meses):</strong></p>
<pre class="caja-codigo-blog">AND p.post_date &gt; NOW() - INTERVAL 6 MONTH</pre>

<p><strong>Calcular total gastado:</strong></p>
<pre class="caja-codigo-blog">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 &gt; 100;</pre>

<div style="height:40px;"></div>

<h3 id="paso5"><strong>5. Exportar el informe a CSV</strong></h3>
<pre class="caja-codigo-blog">&lt;?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;
?&gt;</pre>

<div style="height:40px;"></div>

<h3 id="paso6"><strong>6. ¿Para qué sirve este informe?</strong></h3>
<ul>
<li>Enviar campañas personalizadas a los mejores clientes</li>
<li>Detectar embajadores de marca o revendedores</li>
<li>Ofrecer cupones por fidelidad o club VIP</li>
<li>Activar remarketing más segmentado</li>
</ul>

<div style="height:40px;"></div>

<h3 id="paso7"><strong>7. Conclusión</strong></h3>
<p>Un cliente que repite es más rentable que uno nuevo.  
Con estas consultas puedes segmentar y cuidar mejor tu base de clientes.</p>
<p>¿Quieres que lo conectemos con Google Sheets o lo integramos en tu backoffice?  
📩 Escríbenos y lo automatizamos para ti.</p></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>La entrada <a href="https://eligeunaweb.es/como-crear-un-informe-de-clientes-recurrentes-en-woocommerce-con-mysql/">Cómo crear un informe de clientes recurrentes en WooCommerce con MySQL</a> apareció primero en <a href="https://eligeunaweb.es">Eligeunaweb Agencia de marketing y programación web</a>.]]></content:encoded>
					
					<wfw:commentRss>https://eligeunaweb.es/como-crear-un-informe-de-clientes-recurrentes-en-woocommerce-con-mysql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo detectar productos sin stock pero visibles en WooCommerce con SQL</title>
		<link>https://eligeunaweb.es/como-detectar-productos-sin-stock-pero-visibles-en-woocommerce-con-sql/</link>
					<comments>https://eligeunaweb.es/como-detectar-productos-sin-stock-pero-visibles-en-woocommerce-con-sql/#respond</comments>
		
		<dc:creator><![CDATA[eligeunaweb]]></dc:creator>
		<pubDate>Mon, 05 May 2025 05:00:00 +0000</pubDate>
				<category><![CDATA[Recomendaciones]]></category>
		<category><![CDATA[WooCommerce]]></category>
		<guid isPermaLink="false">https://eligeunaweb.es/?p=987501760</guid>

					<description><![CDATA[]]></description>
										<content:encoded><![CDATA[<div class="et_pb_section et_pb_section_9 et_section_regular" >
				
				
				
				
				
				
				<div class="et_pb_row et_pb_row_9">
				<div class="et_pb_column et_pb_column_4_4 et_pb_column_9  et_pb_css_mix_blend_mode_passthrough et-last-child">
				
				
				
				
				<div class="et_pb_module et_pb_text et_pb_text_9  et_pb_text_align_left et_pb_bg_layout_light">
				
				
				
				
				<div class="et_pb_text_inner"><h3><strong>Introducción</strong></h3>
<p>En WooCommerce, es común encontrarse con productos que aparecen en la tienda aunque no tengan stock. Esto puede generar una mala experiencia de usuario si el cliente accede a un producto y no puede comprarlo.</p>
<p>Este artículo te muestra cómo <strong>detectar productos sin stock que aún están visibles</strong> en la tienda mediante consultas SQL, explicando paso a paso cómo funciona el sistema de inventario en WooCommerce.</p>
<h4>Índice</h4>
<ul>
<li><a href="#paso1"><strong>1. Cómo funciona el stock en WooCommerce</strong></a></li>
<li><a href="#paso2"><strong>2. Tablas involucradas</strong></a></li>
<li><a href="#paso3"><strong>3. Consulta SQL para encontrar productos sin stock visibles</strong></a></li>
<li><a href="#paso4"><strong>4. Opciones para ocultar productos automáticamente</strong></a></li>
<li><a href="#paso5"><strong>5. Exportar resultados para revisión</strong></a></li>
<li><a href="#paso6"><strong>6. Buenas prácticas para la gestión de stock</strong></a></li>
<li><a href="#paso7"><strong>7. Conclusión</strong></a></li>
</ul>
<h3><strong></strong></h3>
<h3><strong></strong></h3>
<h3 id="paso1"><strong>1. Cómo funciona el stock en WooCommerce</strong></h3>
<p>WooCommerce utiliza el campo <code>_stock</code> y el campo <code>_stock_status</code> dentro de la tabla <code>wp_postmeta</code> para controlar si un producto está en inventario.</p>
<p>Además, también puede depender del ajuste de «gestionar inventario» activado o no. Si un producto tiene stock = 0 pero <code>_stock_status</code> = &#8216;instock&#8217;, seguirá apareciendo en la tienda.</p>
<h3><strong></strong></h3>
<h3><strong></strong></h3>
<h3 id="paso2"><strong>2. Tablas involucradas</strong></h3>
<table>
<thead>
<tr>
<th>Tabla</th>
<th>Uso</th>
</tr>
</thead>
<tbody>
<tr>
<td>wp_posts</td>
<td>Contiene los productos (post_type = &#8216;product&#8217;)</td>
</tr>
<tr>
<td>wp_postmeta</td>
<td>Contiene el stock y estado de stock de cada producto</td>
</tr>
</tbody>
</table>
<h3><strong></strong></h3>
<h3><strong></strong></h3>
<h3 id="paso3"><strong>3. Consulta SQL para productos sin stock pero visibles</strong></h3>
<p>Esta consulta detecta productos cuyo stock es 0 pero están marcados como «instock»:</p>
<pre class="caja-codigo-blog">SELECT p.ID, p.post_title, pm_stock.meta_value AS stock, pm_status.meta_value AS stock_status
FROM wp_posts p
JOIN wp_postmeta pm_stock ON p.ID = pm_stock.post_id AND pm_stock.meta_key = '_stock'
JOIN wp_postmeta pm_status ON p.ID = pm_status.post_id AND pm_status.meta_key = '_stock_status'
WHERE p.post_type = 'product'
  AND p.post_status = 'publish'
  AND CAST(pm_stock.meta_value AS SIGNED) = 0
  AND pm_status.meta_value = 'instock';</pre>
<p><strong>Explicación:</strong><br />&#8211; Se cruzan los productos publicados con su valor de stock<br />&#8211; Se verifica si el stock es 0<br />&#8211; Y que el estado sea aún «instock»</p>
<h3><strong></strong></h3>
<h3><strong></strong></h3>
<h3 id="paso4"><strong>4. Opciones para ocultar productos automáticamente</strong></h3>
<p>WooCommerce tiene una opción para ocultar productos sin stock:</p>
<ul>
<li>Ve a WooCommerce → Ajustes → Productos → Inventario</li>
<li>Marca la casilla <em>«Ocultar artículos sin inventario del catálogo»</em></li>
</ul>
<p>Sin embargo, si eso no está activo o si tienes productos personalizados, es mejor detectarlos con SQL.</p>
<h3><strong></strong></h3>
<h3><strong></strong></h3>
<h3 id="paso5"><strong>5. Exportar resultados a CSV</strong></h3>
<p>Ejemplo de script PHP para exportar la consulta anterior:</p>
<pre class="caja-codigo-blog">&lt;?php
require('wp-load.php');
global $wpdb;
$results = $wpdb-&gt;get_results("
SELECT p.ID, p.post_title, pm_stock.meta_value AS stock, pm_status.meta_value AS stock_status
FROM wp_posts p
JOIN wp_postmeta pm_stock ON p.ID = pm_stock.post_id AND pm_stock.meta_key = '_stock'
JOIN wp_postmeta pm_status ON p.ID = pm_status.post_id AND pm_status.meta_key = '_stock_status'
WHERE p.post_type = 'product'
  AND p.post_status = 'publish'
  AND CAST(pm_stock.meta_value AS SIGNED) = 0
  AND pm_status.meta_value = 'instock'", ARRAY_A);

header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename=productos_sin_stock_visibles.csv');

$output = fopen('php://output', 'w');
fputcsv($output, ['ID', 'Título', 'Stock', 'Estado']);

foreach ($results as $row) {
    fputcsv($output, $row);
}
fclose($output);
exit;
?&gt;</pre>
<h3><strong></strong></h3>
<h3><strong></strong></h3>
<h3 id="paso6"><strong>6. Buenas prácticas para el stock</strong></h3>
<ul>
<li>Activa la opción de ocultar productos sin inventario</li>
<li>Usa productos variables con stock independiente por variación</li>
<li>Limpia productos sin ventas y sin stock regularmente</li>
<li>Valida que el stock se actualice desde fuentes fiables (ERP, CSV, APIs)</li>
</ul>
<h3><strong></strong></h3>
<h3><strong></strong></h3>
<h3 id="paso7"><strong>7. Conclusión</strong></h3>
<p>Detectar productos sin stock pero que siguen visibles puede mejorar la experiencia de usuario y evitar errores de compra.</p>
<p>Con una simple consulta SQL puedes identificar estos casos rápidamente y tomar decisiones informadas.</p>
<p>¿Quieres que lo revisemos en tu tienda? 📩 Escríbenos y te ayudamos a automatizarlo.</p></div>
			</div>
			</div>
				
				
				
				
			</div>
				
				
			</div>La entrada <a href="https://eligeunaweb.es/como-detectar-productos-sin-stock-pero-visibles-en-woocommerce-con-sql/">Cómo detectar productos sin stock pero visibles en WooCommerce con SQL</a> apareció primero en <a href="https://eligeunaweb.es">Eligeunaweb Agencia de marketing y programación web</a>.]]></content:encoded>
					
					<wfw:commentRss>https://eligeunaweb.es/como-detectar-productos-sin-stock-pero-visibles-en-woocommerce-con-sql/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
