Introduccion

Uno de los dolores más repetidos que tienen los dueños de tiendas WooCommerce es mantener actualizado el stock sin complicarse. Muchos ya usan hojas de cálculo para gestionar sus productos, pero no saben cómo automatizar el proceso.

La mayoría de soluciones pasan por usar plugins caros, mal mantenidos o con limitaciones.

 

En este artículo te voy a mostrar cómo:

  • Usar Google Sheets como tu fuente de stock.
  • Conectar esa hoja con WooCommerce.
  • Hacer que el stock se actualice automáticamente desde una hoja online, sin entrar a tu web.

Esta solución es perfecta para:

  • Comerciantes que usan hojas externas.
  • Tiendas que reciben stock de múltiples proveedores.
  • Negocios que quieren controlar todo sin complicarse.

Requisitos previos

  • WooCommerce funcionando.
  • Acceso a la raíz de tu WordPress vía FTP/SSH.
  • Acceso a Google Cloud Console.
  • Hoja de cálculo con columnas SKU y stock.

Composer instalado para añadir la librería de Google API.

Paso 1: Crear la hoja en Google Sheets

  1. Crea una hoja con el nombre que desees.
  2. En la fila 1, pon los encabezados: SKU y STOCK.
  3. A partir de la fila 2, empieza a añadir tus productos.

Ejemplo:

SKUSTOCK
woo-00110
woo-0020
woo-00345

💡 Consejo: No uses espacios ni caracteres raros en el SKU. WooCommerce se basa en coincidencias exactas.

Paso 2: Activar la API de Google y obtener credenciales

  1. Ve a Google Cloud Console
  2. Crea un proyecto o selecciona uno.
  3. Activa:
    • Google Sheets API
    • Google Drive API
  4. Crea una cuenta de servicio (Service Account).
  5. Descarga el archivo .json con las credenciales.
  6. Comparte la hoja de cálculo con el email de la cuenta de servicio (xxxx@project.iam.gserviceaccount.com), con permiso de lector.

Paso 3: Instalar Google API Client en tu proyecto

Desde consola, en una carpeta externa a WordPress o en /sync-scripts/, corre:

bash

CopiarEditar

composer require google/apiclient:^2.0

Esto descargará la librería necesaria para conectar con Google Sheets desde PHP.

Paso 4: Script PHP completo y comentado

Aquí tienes el código PHP. Puedes alojarlo en una carpeta externa a WordPress o dentro del mismo proyecto.

<?php

require ‘vendor/autoload.php’;

require ‘wp-load.php’; // Ajusta el path según tu estructura

 

// Configura acceso a Google Sheets

$client = new Google_Client();

$client->setAuthConfig(‘credenciales.json’); // Ruta a tu JSON

$client->addScope(Google_Service_Sheets::SPREADSHEETS_READONLY);

$service = new Google_Service_Sheets($client);

 

// ID y rango de la hoja

$spreadsheetId = ‘TU_ID_HOJA’;

$range = ‘Sheet1!A2:B’;

 

// Obtener datos

$response = $service->spreadsheets_values->get($spreadsheetId, $range);

$values = $response->getValues();

 

// Recorrer filas

foreach ($values as $row) {

    $sku = trim($row[0] ?? »);

    $stock = isset($row[1]) ? (int) $row[1] : null;

 

    if (!$sku || $stock === null) continue;

 

    $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_stock_status($stock > 0 ? ‘instock’ : ‘outofstock’);

        $product->save();

 

        echo «SKU $sku → Stock actualizado a $stock\n»;

    } else {

        echo «⚠️ SKU no encontrado: $sku\n»;

    }

}

?>

Explicación técnica de cada parte Te explico paso a paso el flujo:
  1. Autenticación con Google Cargamos el .json que permite a nuestro script leer la hoja.
  2. Lectura de datos Usamos la API para traer los valores de la hoja (solo lectura).
  3. Búsqueda por SKU WooCommerce nos permite buscar productos por SKU con wc_get_product_id_by_sku().
  4. Actualización del stock Si encuentra el producto, actualiza el stock y el estado (instock o outofstock).
  5. Feedback Se imprime por consola el resultado de cada línea.

Seguridad del script

Si vas a ejecutar esto desde navegador o vía cron:

  • Protege el script con una clave secreta en la URL: ?token=abc123
  • O limita la ejecución a IPs específicas.
  • Usa HTTPS siempre.
  • No subas credenciales.json a un repo público.

Log de resultados

Para registrar las actualizaciones:

file_put_contents('log.txt', "[".date('Y-m-d H:i:s')."] SKU $sku actualizado a $stock\n", FILE_APPEND);

Puedes también enviar un correo si lo automatizas por cron.

Programar ejecución automática

Opción 1: Cron job en servidor

*/30 * * * * /usr/bin/php /ruta/a/sync-stock.php

Esto ejecutará el script cada 30 minutos.

Opción 2: WordPress Cron (WP-Cron)

Integra el script como función en un plugin y usa wp_schedule_event() para ejecutarlo desde el entorno de WordPress.

Extensiones avanzadas

  1. Leer también precios desde Sheets (PRICE) y actualizar precio en Woo.
  2. Actualizar productos variables, usando SKUs de las variaciones.
  3. Sincronizar de WooCommerce → Google Sheets, para tener una copia diaria del stock actual.
  4. Diferenciar almacenes añadiendo columnas Stock Almacén 1, Stock Almacén 2.

Conclusión

Con esta solución automatizas algo que te consume horas: actualizar stock.
El script es flexible, extensible y no depende de plugins externos.

Ideal para tiendas que manejan inventarios en hojas, reciben actualizaciones externas o quieren mantener WooCommerce actualizado con control.

¿Quieres que te lo dejemos funcionando? ¿Te interesa extenderlo a precios o productos variables?

👉 Contáctanos y te lo configuramos a medida.

Ir al contenido