En este artículo veremos cómo sincronizar el stock y precio de productos WooCommerce desde Google Sheets. Luego de configurar los accesos a Google Sheet, realizaremos la sincronización directamente a través de código.
Generalidades
En un artículo anterior habíamos visto cómo hacer la sincronización con un archivo de Excel, sin embargo es posible que en algunos casos quieras hacer esto a través del servicio remoto Google Sheets.
Obtener las credenciales de Google Sheets
Para conectarnos al servicio de Google Sheets, será necesario usar su API, por lo que necesitaremos hacer algunas configuraciones en tu cuenta de Google para obtener las credenciales en un archivo .JSON.
-
Primero ingresa a la url de Google Cloud Console, desde allí ingresa a la opción de Panel
-
Ingresa a la opción de API y Servicios
-
Habilita la opción de API y Servicios
-
Selecciona Google Sheets API
-
Habilitar Google Sheets API
-
Detalle API habilitada
-
Creación de credenciales
-
Configurar credenciales
-
Continuar para crear nuevas credenciales en caso no querer usar existentes
-
Completar datos para continuar
-
Ver detalles creación
-
Crear nueva clave
-
Selección tipo JSON
Con los pasos anteriores descargarás un archivo JSON el cual usaremos posteriormente.
Compartir la hoja de Google Sheets
Ubica la hoja de Google Sheets en donde están los datos a sincronizar, debería tener la siguiente estructura.
Usamos la opción de compartir para agregar nuevos usuarios y permisos.
Usamos el correo que hemos obtenido anteriormente en la creación de las credenciales para compartir la hoja.
Código para actualizar productos desde Google Sheets
El código para la sincronización es bastante similar al código del artículo Sincronizar WooCommerce y Excel que vimos anteriormente.
Para la conexión con la API de Google Sheets usaremos una librería oficial de Google, la cual se puede usar a través del gestor de paquetes para PHP llamado Composer.
He preparado todo lo necesario en este repositorio de Github Sync WooCommerce Products from Google Sheets.
Simplemente descarga el .zip del repositorio.
Luego puedes copiar esta carpeta a tu tema hijo o plugin, en nuestro caso lo probaremos en base a un tema hijo y una plantilla de página, similar al artículo anterior.
Ubica la carpeta desde el terminal y ejecuta la instalación de los paquetes
composer install
Luego copia el archivo .json dentro de la carpeta auth/data, puedes renombrarlo a credentials.json
Edita el archivo google-sheet-data.php, en este archivo tienes que cambiar los siguientes valores
$path = __DIR__ . '/auth/credentials.json'; // ruta del archivo .json
$spreadsheetId = '1jKQA0szu3w1XTYArIddlpYhAREOMzSBFyZouY39tIoc'; // Id que aparece en la URL de la página de Google Sheet
$range = 'Hoja 1'; //Nombre de la hoja
El archivo que hace la sincronización con WooCommerce es el archivo process-sync.php, por lo que tenemos que hacer referencia a este archivo. Para hacer referencia a este archivo podemos hacerlo desde una plantilla de página.
<?php
/* Template Name: Sincronización Google Sheet y WooCommerce */
include_once ("sync-woocommerce-google-sheets-main/process-sync.php");
De esta forma podemos ejecutar el código en el entorno de WordPress y ademas ejecutarlo a través de una URL lo cual es útil si queremos programar un cron a nivel de servidor.
Conclusión
Como has podido comprobar, puedes conectar el servicio de Google Sheets para sincronizar el stock y precios de productos en WooCommerce, en este artículo hemos visto como realizarlo usando librerías oficiales de Google y código para WordPress.
Ver comentarios (14)
Jhon, ya lo probe en el local y funciona. Ahora estoy probando en el hosting. Subi la carpeta sync-woocommerce-google-sheets dentro de themes-astra pero no funciona. Indicame si para que funcione dentro del hosting se deben hacer otros pasos, cuales serian...gracias!
Hola, teóricamente no, si que debería funcionar, comprueba que tengas la misma versión de PHP en tu hosting, habilita la depuración de errores en caso se generen errores.
Gracias por el aporte, voy a probarlo y te comento como me fue.
Gracias por tu video y post,
Donde se puede conseguir el paquete de documentos , composer install ?
Gracias de antemano
Hola, revisa el sitio oficial: https://getcomposer.org/
Muchas gracias por el aporte! Y cuando se haga una venta como actualizamos el stock en el Google Sheet?
Hola, evaluaré hacer la actualización en ambas direcciones.
Hola, esto tb funcionaría para actualizar pedidos, yo tengo una lista de pedidos que se actualizan en un excel, y me gustaría que cuando el cliente haga un pedido lo envíe a woocommerce
Hola, en ese caso tendrías que tener el ID del cliente y el ID o IDs de productos como parte del pedido para poder sincronizarlo con WooCommerce, pero si que es posible.
Funciona de manera inversa? es decir si se vende algo en el woocomerce, y luego actualizo con el url, aparece descontado en el google sheet ?
Al momento de instalar composer me arroja "Composer could not detect the root package (jmarreros/sync-google-sheet) version, defaulting to '1.0.0'. See https://getcomposer.org/root-version", ¿Cómo puedo solucionarlo?
No e podido ejecutarlo en el servidor
Ejecuta composer localmente, luego cuando ya funcione llevas todo al servidor.
Venía funcionando bárbaro, pero intenté usarlo y al hacer el composer install no descarga el contenido de la carpeta vendor da un error en un repo de git: In GitDownloader.php line 82: git was not found in your PATH, skipping source download.
Te lo comento por las dudas