En el editor de productos de WooCommerce hay varias cajas meta de información, como la de valoraciones, los campos personalizados y muchas otras, pero en ninguna parte de WooCommerce puedes revisar el historial de inventario de tus productos.
Conocer el histórico del inventario de un producto puede ayudar al gestor de la tienda a realizar pedidos de estocaje más precisos, mejorando la gestión global de la tienda.
Si quieres añadir esta funcionalidad, y ver el histórico de los últimos cambios en el inventario de cada producto de tu tienda online, puedes agregar este código:
/* Historial de stock de producto */
add_action( 'woocommerce_product_before_set_stock', 'ayudawp_historial_stock_superior' );
add_action( 'woocommerce_variation_before_set_stock', 'ayudawp_historial_stock_superior' );
function ayudawp_historial_stock_superior( $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', 'ayudawp_caja_meta_historial_stock' );
function ayudawp_caja_meta_historial_stock() {
add_meta_box( 'stock_history', 'Historial de inventario', 'ayudawp_mostrar_historial_stock', 'product', 'advanced', 'high' );
}
function ayudawp_mostrar_historial_stock() {
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>Existencias actuales: <b>' . $product->get_stock_quantity() . '</b></p>';
}
}
Este código puedes copiarlo y pegarlo en el archivo functions.php del tema (hijo) activo, en un plugin de personalizaciones o cualquier otro método que prefieras.
Lo que hace este código es añadir una caja meta llamada «Historial de inventario» al final de la pantalla del editor de productos, en la que se pueden ver los últimos cambios de existencias del producto abierto, y el estado actual de las mismas en la última linea.
- Da igual si el cambio de stock ha sido por modificación manual o debido a pedidos.
- El código sirve para productos simples y variables.
- Se muestra la fecha y horario en que cambió el inventario.
Esta personalización puede ser de gran interés y utilidad en tiendas en las que la gestión de inventario es vital, y el único cuidado que debes tener es si tu tienda online tiene miles de productos y cambios de inventario, en cuyo caso, por cuestiones de rendimiento, podría ser interesante limitar la visualización de cambios a una cantidad límite, e incluso almacenar esta información en una tabla específica.

0 Commentaires