Ampliar limite de c...
Avisos
Vaciar todo

Ampliar limite de clientes en Hoja Google  

 
Antonio
 Antonio
Usuario eminente

Perdonar por retomar este tema.... https://www.webempresa.com/foro/packs-webempresa/enlazar-woocommerce-con-google-sheets#post-476469

 

Pero me he dado cuenta que al actualizar la hoja de google, no amplia la lista de pedidos, sino que queda limitada a 10 clientes...lo suyo es que la importación de datos fuera de los últimos 100 pedidos, por ejemplo.... otra cosa podría ser, que no se borrara la hoja antes de poner los datos importados y los datos se fueran añadiendo a los que ya están en la hoja...

 

No sé que opción puede resultar mejor para que esa cantidad no se limite y los pedidos se vayan acumulando en la hoja ?

 

Perdonar por abrir otro tema, pero no he conseguido escribir en el otro. A ver si podéis fusionar este tema con el anterior.

 

Gracias

Contenido solo visible a usuarios registrados

Citar
Respondido : 27/02/2025 9:51 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

Hola Antonio.

El problema está en que WooCommerce sólo devuelve por defecto 10 resultados por solicitud.

Vamos a ver si podemos solucionarlo con esto:

function importarPedidos() {
var urlBase = 'https://tuweb.com/wp-json/wc/v3/orders';
var consumerKey = 'TU_CONSUMER_KEY';
var consumerSecret = 'TU_CONSUMER_SECRET';

var auth = "Basic " + Utilities.base64Encode(consumerKey + ":" + consumerSecret);

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();

// Si la hoja está vacía, escribimos los encabezados
if (sheet.getLastRow() === 0) {
sheet.appendRow(['ID Pedido', 'Número de Factura', 'Fecha del Pedido', 'Estado', 'Nombre del Cliente', 'Teléfono', 'Email', 'Método de Pago', 'Total', 'Nombre del Producto', 'Cantidad', 'Precio Unitario']);
}

var existingOrders = new Set(); // Para evitar duplicados
var lastRow = sheet.getLastRow();
if (lastRow > 1) {
var orderIds = sheet.getRange(2, 1, lastRow - 1, 1).getValues();
orderIds.forEach(function(row) {
existingOrders.add(row[0]); // Guardamos los IDs de pedidos existentes
});
}

var page = 1;
var perPage = 100; // WooCommerce permite hasta 100 pedidos por solicitud
var hasMoreOrders = true;

while (hasMoreOrders) {
var response = UrlFetchApp.fetch(urlBase + '?per_page=' + perPage + '&page=' + page, {
"method": "get",
"headers": { "Authorization": auth }
});

var orders = JSON.parse(response.getContentText());

if (orders.length === 0) {
hasMoreOrders = false; // Si no hay más pedidos, detenemos la paginación
break;
}

orders.forEach(function(order) {
if (!existingOrders.has(order.id)) { // Solo agregamos pedidos nuevos
var invoiceNumber = "";
if (order.meta_data) {
order.meta_data.forEach(function(meta) {
if (meta.key === "_wcpdf_invoice_number") {
invoiceNumber = meta.value;
}
});
}

order.line_items.forEach(function(item) {
sheet.appendRow([
order.id, // ID del Pedido
invoiceNumber, // Número de Factura
order.date_created, // Fecha del Pedido
order.status, // Estado
order.billing.first_name + ' ' + order.billing.last_name, // Nombre del Cliente
order.billing.phone, // Teléfono
order.billing.email, // Email
order.payment_method_title, // Método de Pago
order.total, // Total del Pedido
item.name, // Nombre del Producto
item.quantity, // Cantidad
item.price // Precio Unitario
]);
});
}
});

page++; // Pasamos a la siguiente página
}
}


Revisa si con eso se soluciona y nos comentas.

 

Un Saludo

ResponderCitar
Respondido : 27/02/2025 10:15 am

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

Antonio
 Antonio
Usuario eminente

@pepesoler

 

Pues parece que funciona, se ha tirado un rato cuando lo he ejecutado la primera vez y ha cargado los pedidos hechos...

 

 vamos a ver como va funcionando ahora con las actualizaciones

 

muchas gracias

ResponderCitar
Respondido : 27/02/2025 11:13 am
Pepe
 Pepe
Soporte CMS Webempresa Admin

hola Antonio.

Ok, dejo el hilo abierto por si necesitas retomarlo.

 

Un Saludo 

ResponderCitar
Respondido : 27/02/2025 11:41 am

Gestor de Contraseñas - VPN Conexión Segura - Gestor 2FA (Segundo Factor de Autenticación