Oferta SiteGround Black Friday

Cómo limitar las ventas diarias de un producto en WooCommerce

Gestionar el inventario es fundamental en cualquier comercio, pero especialmente en el comercio electrónico, en el que no está tan a la vista la cantidad de productos, donde todo puede parecernos virtual, cuando en realidad no es así.

En tu Ecommerce va a ver ocasiones en las que querrás impedir muchas ventas diarias de ciertos productos, normalmente porque las existencias reales de almacén sean escasas, y no quieras ni dejar el inventario a cero, ni impedir que tus clientes compren esos productos.

Limitar las ventas diarias de ciertos productos puede, tanto evitar meterte en problemas de entregas con tus clientes, como mantenerte en el negocio, permitiendo que el stock de ciertos productos nunca esté a cero.

También, por qué no, puede resultar en una estrategia de marketing, generando inquietud por conseguir las existencias del día, algo que muchos comercios electrónicos utilizan habitualmente, poniendo solo unas pocas existencias de ciertos productos cada día, generando así una ansiedad en el consumidor que termina haciendo viral la venta de esos productos, y sino acuérdate de qué pasa cada vez que Lidl saca a la venta existencias limitadas de su robot de cocina, o las zapatillas deportivas con los colores de su marca.

Hecha esta introducción, que creía necesaria, no para quien ya tiene claro que quiere añadir a WooCommerce la funcionalidad de limitar las ventas diarias de algunos productos, sino a quien se encuentre este artículo y no haya acertado a encontrar sus posibilidades, vamos a ponerlo en práctica.

Para limitar las ventas diarias de algún producto en WooCommerce debes crear una función como la siguiente:

/* Limitar ventas diarias del producto con ID 12345 */
add_filter( 'woocommerce_is_purchasable', 'ayudawp_limite_ventas_diarias_12345', 9999, 2 );
function ayudawp_limite_ventas_diarias_12345( $is_purchasable, $product ) {
$limit_product_id = 12345; //ESTE DEBE SER EL ID DEL PRODUCTO A LIMITAR
if ( $product->get_id() !== $limit_product_id ) return $is_purchasable;
// OBTENEMOS LOS PEDIDOS DIARIOS Y VOLVEMOS AL LOOP
$all_orders = wc_get_orders(
array(
'limit' => -1,
'date_created' => date( 'Y-m-d' ),
'return' => 'ids',
)
);
$count = 0;
foreach ( $all_orders as $all_order ) {
$order = wc_get_order( $all_order );
$items = $order->get_items();
foreach ( $items as $item ) {
$product_id = $item->get_product_id();
if ( $product_id && $product_id == $limit_product_id ) {
$count = $count + absint( $item['qty'] ); 
}
}
}
// LIMITAMOS A 15 VENTAS DIARIAS
if ( $count >= 15 ) return false;
return $is_purchasable;
}

En el código anterior hay 2 elementos que debes cambiar:

  1. El número (ID) de $limit_product_id por el ID del producto que quieras limitar.
  2. El valor de $count por el número de ventas diarias que permites para el producto.

Con esos cambios hechos, añade el código a tu tienda online como prefieras.

Tu tienda funcionará como siempre pero, para el producto del ID declarado en el código, cuando llegue al número de ventas diarias permitidas, ya no podrá añadirse al carrito, y en un mundo ideal deberías mostrar un mensaje informando a tus clientes del límite de ventas diarias del mismo, animándoles a volver al día siguiente en caso de haberse llegado al límite ¿verdad?

¿De cuánta utilidad te ha parecido este contenido?

¡Haz clic en los emoticonos para valorarlo!

Promedio de puntuación 4.2 / 5. Total de votos: 6

Hasta ahora ¡no hay votos!. Sé el primero en valorar este contenido.

Ya que has encontrado útil este contenido...

¡Sígueme en las redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Ayúdame a mejorar este contenido!

Por favor, dime, ¿cómo puedo mejorarlo?

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

Sobre el autor

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Información base sobre privacidad:
- Responsable: Fernando Tellado ([email protected])
- Fin del tratamiento: Moderación de comentarios para evitar spam
- Legitimación: Tu consentimiento
- Comunicación de los datos: No se comunicarán los datos a terceros salvo por obligación legal
- Derechos: Acceso, rectificación, portabilidad, olvido

 

Scroll al inicio