
Armaste una página de venta (con un constructor, con un bloque HTML o con ayuda de una IA), pusiste un botón grande de Comprar y, al probarlo, el cliente llega al checkout con el carrito vacío. O peor: a veces funciona y a veces no.
El problema casi nunca está en el botón. Está en cómo se arma el enlace y en la caché.
Cómo funciona un enlace de compra
WooCommerce agrega un producto al carrito cuando recibe el parámetro add-to-cart con el ID del producto:
https://tudominio.cl/?add-to-cart=152
Puedes indicar la cantidad y mandar al cliente directo al pago:
https://tudominio.cl/finalizar-compra/?add-to-cart=152&quantity=2
Para productos variables (talla, color) hay que usar el ID de la variación, no el del producto padre:
https://tudominio.cl/finalizar-compra/?add-to-cart=158
El ID de un producto aparece al pasar el mouse sobre su nombre en Productos → Todos los productos. El de una variación, en la pestaña Variaciones de ese producto, junto a cada una.
Las IAs suelen inventar enlaces con el slug del producto (?add-to-cart=polera-negra) o con parámetros que no existen. WooCommerce solo entiende el ID numérico. Revisa cada botón generado.
Causa 1: la caché guarda la página del checkout
Si tu caché (del plugin, del hosting o de Cloudflare) guarda una copia de la página de carrito o de checkout, todos ven la misma copia: la de un carrito vacío.
Asegúrate de que estas páginas estén excluidas de la caché:
/carrito/(o como se llame tu página de carrito)/finalizar-compra//mi-cuenta/- Cualquier URL con
add-to-carten la dirección.
Los plugins de caché más usados excluyen las páginas de WooCommerce solos, pero si cambiaste sus nombres o usas una caché a nivel de servidor o de Cloudflare, revísalo a mano. En Cloudflare, crea una regla de caché que omita la caché cuando la URL contenga add-to-cart o la ruta empiece por /carrito o /finalizar-compra.
Causa 2: la cookie de sesión no llega
WooCommerce identifica el carrito de cada visitante con una cookie. Si el enlace lleva a un dominio distinto (con y sin www, o un subdominio de la landing), la cookie se crea en uno y el checkout está en otro: carrito vacío.
- Usa siempre la misma dirección que tienes en Ajustes → Generales.
- Si la landing está en otro dominio o en otra plataforma, el enlace debe ir al dominio de la tienda y que sea ella quien agregue el producto.
Causa 3: la página de destino tiene el carrito en caché del navegador
Si el cliente ya había visitado el checkout vacío, su navegador puede mostrar la versión guardada. Por eso es importante que las páginas de carrito y checkout se envíen sin caché (WooCommerce ya lo hace, salvo que algún plugin lo altere).
Probar el flujo completo
Prueba cada botón en una ventana de incógnito, que simula a un cliente nuevo:
- Clic en el botón de la landing.
- ¿Llegas al checkout con el producto y la cantidad correctos?
- Repite en el celular, con datos móviles (otra red, otra caché).
- Haz un pedido de prueba completo con un medio de pago en modo de pruebas.
Si quieres que el botón vacíe el carrito antes de agregar el producto (útil en páginas de un solo producto), hay plugins de «compra directa» o «checkout de un clic» que lo hacen de forma segura. Evita soluciones caseras que borran el carrito en cada visita.
¿Tu botón de compra sigue llegando vacío? Comparte en el foro cómo armaste el enlace y qué caché usas, y lo revisamos.





