Recientemente uno de nuestros clientes, Bestway, nos solicitó un plugin personalizado para enviar a Salesforce los nuevos registros a su newsletter y los carritos abandonados. Además debería generar un cupón de descuento exclusivo para cada nuevo registro confirmado en la newsletter.

Hasta ahí todo bien, fabricamos todo el código necesario y vinculamos los registros generados con Avada Form, creamos un webhook para recepcionar información desde Salesforce sobre la confirmación de los registros para poder activar el cupón previamente creado y enviado a Salesforce y redireccionar al cliente a la página de aterrizaje correspondiente según el idioma en el que registró, y enviamos los carritos abandonados de WooCommerce, y todo ello lo realiza en tiempo real y en segundo plano sin que afecte en forma alguna a la usabilidad o al rendimiento del sitio web.

El problema nos surgió cuando el cliente nos requiere la necesidad de crear una URL para que el cliente pudiera recuperar ese carrito abandonado fácilmente.

Como bien sabréis para ello existe una cadena de consulta que se puede pasar por URL y añade un producto al carrito. En WooCommerce Custom “Add to Cart” URLs – The Ultimate Guide tenéis una fantástica guía para aprender a usar los parámetros add-to-cart y quantity. El problema es que esta consulta no permite añadir nada más que un único producto y una cantidad concreta de unidades para dicho producto, pero nosotros necesitábamos añadir más de un producto y sus cantidades pertinentes para cada uno de ellos.

Buscando por Internet dimos con un fantástico código: WooCommerce: Allow adding multiple products to the cart via the add-to-cart query string, pero no terminaba de servirnos fundamentalmente por uno de los requisitos del cliente, que además de poder añadirse los productos por su ID se pudieran añadir por su SKU.

Además resulta que el código compartido en esta publicación tiene algunos errores y no funciona por lo que el carrito no se rellena nunca.

Manos a la obra

Conocidas las necesidades del cliente y los problemas detectados en el código de base creado por Justin Sainton nos ponemos manos a la obra y fabricamos el siguiente código:

Copiar al portapapeles

Donde además de añadir la posibilidad de utilizar el SKU en lugar del ID del producto, corregimos todos los errores que detectamos en la función woo_hack_invoke_private_method, por lo tanto este código es totalmente operativo y funcional, no devuelve ningún tipo de error y genera el carrito sin ningún tipo de problema.

Con este código añadido en tu plugin personalizado o en tu fichero functions.php del tema hijo, ahora puedes pasar una URL del estilo a https://dominio.ext/checkout?add-to-cart=XXX:x,YYY:y,ZZZ:z en tu sitio web, donde los valores XXX, YYY y ZZZ son IDs o SKUs de producto y los valores x, y y z son las cantidades de cada uno de los productos. Con él en tu sitio web verás que esa URL te redirecciona «mágicamente» al checkout de tu tienda online con todos los productos y sus cantidades correspondientes añadidas al mismo y a la espera de los datos del formulario de facturación para poder finalizar la compra.

Pero ¿cómo fabrico esa URL desde PHP?

Nosotros utilizamos AJAX para generar el envío de los datos del carrito abandonado a Salesforce, entre los que se incluye la URL que generamos en tiempo real.

Un ejemplo sencillo para poder crear esta URL sería esta pequeña función PHP:

Copiar al portapapeles

Esta sencilla función devolverá una URL con el protocolo, el nombre de dominio y la ruta del checkout de tu tienda virtual, seguido del listado de IDs de productos y cantidades a añadir dentro del parámetro add-to-cart.

Así de sencillo es generar una URL dinámica que es capaz de añadir un pedido completo a tu tienda online.

Esperamos que os resulte útil este código y quedamos a la espera de vuestros comentarios.

Artículos relacionados

Comentarios

Suscríbete
Notificar de
guest
0 Comentarios
Más antiguos
Más recientes Más votados

Productos y servicios

Últimas publicaciones

Últimos comentarios

¡Suscríbete!

Lista de correos de APG

PROTECCIÓN DE DATOS: De conformidad con las normativas de protección de datos, le facilitamos la siguiente información del tratamiento: (+)

  • Responsable: Art Project Group.
  • Fines del tratamiento: dar respuesta a las consultas o cualquier tipo de petición que sea realizada por el usuario a través de cualquiera de las formas de contacto que se ponen a su disposición en la página web. Envío de comunicaciones de productos o servicios (con su consentimiento).
  • Derechos que le asisten: acceso, rectificación, portabilidad, supresión, limitación y oposición. Más información sobre el tratamiento en los Política de Privacidad.

¡Lo que contamos en !

Por fin tenemos selectores de color nativos en #WooCommerce . A partir de ahora será posible mostrar variaciones de color mediante muestras visuales, sin necesidad de extensiones adicionales.

Una mejora muy esperada para tiendas de moda, calzado y productos con múltiples colores.

eb1d5986fe51f6434c6a023616268f69
4 de junio de 2026 | 1

Se ha publicado #WooCommerce 10.8.1: corrige un error fatal durante la actualización a 10.8.0 y soluciona un fallo en el selector de tipo de negocio de WooPayments.

Recomendado actualizar cuanto antes si ya has pasado a la rama 10.8.

28 de mayo de 2026

Ayer se publicó #WooCommerce 10.8.0: mejoras de rendimiento, optimizaciones en el checkout y nuevas funciones para la gestión avanzada de productos y pedidos.

Una actualización enfocada en velocidad y escalabilidad para tiendas WooCommerce.

¡Actualiza!

27 de mayo de 2026

Tras cinco días de la publicación de #WordPress 7.0 y sin haber detectado ningún problema, actualizamos el 100% de los sitios web que gestionamos a la nueva versión.

¡Actualiza!

25 de mayo de 2026