Avisos
Vaciar todo

[Resuelto] Sincronización del stock de productos de la web a través de un csv que actualiza el proovedor cada día  

 
Roberto
 Roberto
Estimable Member

Hola, necesitamos que todos los días sobre las 05:00 AM el woocommerce vaya a un csv y verifique el stock de cada producto de los que tenemos en venta en la web para que salga si está disponible o no desde un csv que actualiza el proveedor cada día por la noche. Cómo podemos hacerlo? 

Nos podeis recomendar plugin para hacerlo? Nos han hablado de https://www.wpallimport.com/woocommerce-product-import/ pero es bastante caro y pago anual.

Luego tenemos que crear un cron en el hosting, nos podeis ayudar con toda esta tarea? 

Muchas gracias,

Roberto.

Contenido solo visible a usuarios registrados

Respondido : 21/07/2025 11:23 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Roberto.

El CSV lo descargáis vosotros o los datos los recoge de una URL que os proporciona vuestro proveedor ? la UIRL del archivo es del servidor de vuestro proveedor o esta por ejemplo en Google google sheets ?

No es fácil lo que buscas pero si nos das un poco mas de información podríamos ver si se puede hacer algo.

 

Un Saludo

Respondido : 21/07/2025 12:09 pm

optimiza-automaticamente-todas-las-imagenes-de-tu-wordpress

Roberto
 Roberto
Estimable Member

Hola @pepesoler, el csv está en un ftp del proveedor,

A continuación envío información para acceder a la FTP para la descarga de ficheros CSV con la información de los productos.

Servidor: http://www.albainox.com&source=gmail&ust=1753183040160000&usg=AOvVaw2zGfYJ-X_ch-CuASGoot0 t">www.albainox.com

con un usuario y contraseña entramos en una carpeta donde hay varios archivos y uno de ellos es el csv con la información de los productos, mando un ejemplo en captura: 

el csv tiene estos campos pero nosotros solo queremos ver por cada producto que tenemos en la web, que no son todos, si hay o no stock:

Un saludo y cualquier pregunta me dices!

Muchas gracias,

Roberto.

Esta publicación ha sido modificada el hace 2 meses por Pepe
Respondido : 21/07/2025 12:24 pm
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Roberto.

Por FTP no podrás hacerlo de manera fácil ya que se tiene que conectar al servidor del distribuidor.

Si que hay plugins que lo permiten pero en su version Pro ( De pago ) por ejemplo:

-> https://es.wordpress.org/plugins/product-import-export-for-woo/

Se podría crear una función para que se actualice pero eso ya seria algo a medida, te puedo poner un ejemplo:

add_action('init', 'programar_actualizacion_stock');
function programar_actualizacion_stock() {
if (!wp_next_scheduled('actualizar_stock_csv_ftp')) {
wp_schedule_event(time(), 'hourly', 'actualizar_stock_csv_ftp');
}
}

add_action('actualizar_stock_csv_ftp', 'descargar_y_actualizar_stock');
function descargar_y_actualizar_stock() {
$ftp_host = 'ftp.distribuidor.com';
$ftp_user = 'usuario';
$ftp_pass = 'contraseña';
$remote_file = '/ruta/archivo.csv';
$local_file = WP_CONTENT_DIR . '/uploads/archivo-stock.csv';

$conn = ftp_connect($ftp_host);
if ($conn && ftp_login($conn, $ftp_user, $ftp_pass)) {
ftp_get($conn, $local_file, $remote_file, FTP_BINARY);
ftp_close($conn);

if (file_exists($local_file)) {
$csv = array_map('str_getcsv', file($local_file));
foreach ($csv as $i => $row) {
if ($i === 0) continue; // saltar cabecera
$sku = trim($row[0]);
$stock = (int) $row[1];

if ($sku) {
$product_id = wc_get_product_id_by_sku($sku);
if ($product_id) {
$product = wc_get_product($product_id);
$product->set_stock_quantity($stock);
$product->set_manage_stock(true);
$product->save();
}
}
}
}
}
}

 

Un Saludo

Respondido : 21/07/2025 1:04 pm
Roberto me gusta

Cursos Gratuitos WordPress

Roberto
 Roberto
Estimable Member

ok, Muchas gracias!!

Respondido : 21/07/2025 5:49 pm
Bruno
 Bruno
Soporte CMS Webempresa Moderator

Hola Roberto,

Segun entiendo hemos podido aclarar el motivo de tu consulta por lo que la marcaremos como completada

Si tienes alguna otra duda estaremos atentos

Saludos!

Respondido : 21/07/2025 6:04 pm

wpdoctor-revisa-la-salud-de-tu-wordpress