Historial de cambios o flujos del stock por Producto en WooCommerce

LucusHost, el mejor hosting

En el ámbito del comercio, tener un control preciso sobre el inventario es crucial para evitar sobrestock o desabastecimiento, los cuales pueden afectar directamente la satisfacción del cliente, la gestión interna de la empresa y la rentabilidad del negocio. Existen varias formas de llevar un control preciso del stock y más en una tienda online que está todo informatizado.

En este tutorial veremos la parte de tener un informe del flujo de cambios de stock que tiene cada producto. Fundamental, para saber de dónde vienen todos los cambios de stock, por qué han ocurrido, fecha/hora de la modificación y qué usuario hizo ese cambio manual. A continuación, descubrirás por qué esta función es indispensable y cómo implementarla en tu WooCommerce.

Ventajas de Gestionar el Historial de Cambios de Stock

Control Preciso: Saber en todo momento la cantidad de productos disponibles.
Optimización de Inventario: Evita sobrestock y optimiza la reordenación de productos.
Análisis de Ventas: Identifica patrones de ventas y ajusta tu estrategia de stock acorde. Ideal para aumentar tus ventas.
Satisfacción del Cliente: Evita roturas de stock para garantizar que el producto que compra el cliente puede llegar. Ahorrándonos también mucho tiempo de atención al cliente.

Historial de cambios por código

Si lo que necesitamos es solo un registro simple de cambios y no un plugin que realice esta función y otras varias. Lo ideal es usar el siguiente fragmento de código:

add_action( 'woocommerce_product_before_set_stock', 'dl_historial_cambios_producto_stock' );
add_action( 'woocommerce_variation_before_set_stock', 'dl_historial_cambios_producto_stock' );
 
function dl_historial_cambios_producto_stock( $product ) {
   $stock_history = get_post_meta( $product->get_id(), '_stock_history', true ) ? get_post_meta( $product->get_id(), '_stock_history', true ) : array();
   $stock_history[time()] = (int)get_post_meta( $product->get_id(), '_stock', true );
   update_post_meta( $product->get_id(), '_stock_history', $stock_history );
}
 
add_action( 'add_meta_boxes', 'dl_product_meta_box' );
 
function dl_product_meta_box() {
    add_meta_box( 'stock_history', 'Historial de cambios de inventario', 'dl_display_stock_history', 'product', 'advanced', 'high' );
}
 
function dl_display_stock_history() {
   global $post;
   $product = wc_get_product( $post->ID );
 
   if ( $product->get_type() == 'variable' ) {
        foreach ( $product->get_available_variations() as $key ) {
            $products[] = $key['variation_id'];
      }
   } else $products[] = $post->ID;
    
   foreach ( $products as $product_id ) {
      $product = wc_get_product( $product_id );
      echo '<h3>' . $product->get_name() . '</h3>';
      $stock_history = get_post_meta( $product_id, '_stock_history', true );
      if ( $stock_history ) {
         foreach ( $stock_history as $timestamp => $stockvalue ) {
            if ( ! $stockvalue ) continue;
            echo '<p>' . date( DATE_COOKIE, $timestamp ) . ': <b>' . $stockvalue . '</b></p>';
         }
      }; 
      echo '<p>Stock actual: <b>' . $product->get_stock_quantity() . '</b></p>';   
   }
    
}

Código adaptado de BusinessBloomer

Recurda que debes añadirlo al fichero functions.php de tu Child Theme o bien a tu plugin de funcionalidades como explico aquí. Una vez añadido, dentro de cada producto podremos ver los 10 últimos cambios que ha sufrido el producto(para no saturar la base de datos):

registro cambio stock woocommerce

Como podéis ver algo muy sencillo y simple. Si necesitamos algo más avanzado mi recomendación es:

Stock Manager for WooCommerce

Este plugin ya lo he explicado en otros tutoriales, pero no para la función del historial de inventario. Lo podéis descargar de forma gratuita desde el repositorio de WordPress o desde este enlace. Una vez instalado en el menú principal del administrador de WordPress encontraremos una pestaña de gestión de inventario o existencias. Dentro de ese menú encontraremos «Registro de inventario».

Una vez dentro hay un listado con todos los productos de la tienda online. En la parte de la derecha, podremos ver un botón de historial:

plugin historial cambio de existencias woocommerce

Al hacer clic en historial, encontraremos igual que con el código, los logs de cambios con la hora y stock:

flujo de existencias logs woocommerce

Conclusiones

Si necesitas también hacer grandes cambios de inventario, te recomiendo usar el plugin, puesto que te servirá para realizar estos cambios y ver el historial. Si no, utiliza el código para algo puntual.

Cualquier duda sobre el tutorial te leo en comentarios y para dudas avanzadas o consultas tienes mi servicio de consultoría o mantenimiento.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)
mailerlite diegol

Especialista en Comercio electrónico con Woocommerce. Te ayudo a crear, gestionar y publicitar tu Ecommerce en función de tu sector y público objetivo. Puedes encontrarme en Diegol.top

¿Necesitas ayuda con este tutorial? Mándame un correo y te resuelvo todas las dudas!


Ver servicios Curso de WooCommerce

También puedes realizar una donacion para seguir apoyando la salida de nuevos tutoriales y actualizaciones

mailerlite diegol

Reader Interactions

comentarios

Deja una respuesta

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