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:
- El número (ID) de
$limit_product_id
por el ID del producto que quieras limitar. - 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?
¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!