Ampliar limite de c...
 
Avisos
Vaciar todo

Ampliar limite de clientes en Hoja Google

19 Respuestas
3 Usuarios
0 Reactions
58 Visitas
Respuestas: 51
Trusted Member
Topic starter
 

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


 
Respondido : 27/02/2025 9:51 am
Respuestas: 51
Trusted Member
Topic starter
 

Dejo por aquí esta información por si le sirven a alguien.

 Tengo ahora 2 hojas de sheets :

- Una con el script que hizo Pepe, pero el limitado a solo 8 registros de pedidos, esta hoja se actualiza cada vez que la abro, sin pegas...

- la segunda, con el código de Bruno, no hace caso,,,, quizás sea por que lleva mucha cantidad de pedidos...

 

las dos con el mismo ajuste de actualización, que dejo aquí....

1

 

No sé si se podría ajustar la importación a solo los últimos 100 pedidos, por ejemplo, y de esa forma no recargar la solicitud de datos


Esta publicación ha sido modificada el hace 8 meses por Antonio
 
Respondido : 05/03/2025 8:56 am
Pepe
 Pepe
Respuestas: 41296
Illustrious Member Admin
 

hola Antonio.

Todos los códigos que te dimos están probados y funcionando, son códigos estándar que solo modificamos algunas cosas como por ejemplo ahora que solo quieres los 100 últimos pedidos:

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();

// Obtener los IDs de pedidos ya importados para evitar duplicados
var lastRow = sheet.getLastRow();
var existingOrderIds = new Set();

if (lastRow > 1) {
var idColumn = sheet.getRange(2, 1, lastRow - 1, 1).getValues().flat();
idColumn.forEach(id => existingOrderIds.add(id.toString())); // Guardar los IDs en un Set
}

var perPage = 50;
var maxOrders = 100;
var page = 1;
var totalFetched = 0;
var newData = [];

while (totalFetched < maxOrders) {
var response = UrlFetchApp.fetch(urlBase + '?per_page=' + perPage + '&page=' + page + '&order=desc&orderby=date', {
"method": "get",
"headers": { "Authorization": auth }
});

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

if (orders.length === 0) break;

orders.forEach(function(order) {
if (totalFetched >= maxOrders) return;

if (existingOrderIds.has(order.id.toString())) return; // Omitimos pedidos ya importados

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) {
newData.push([
order.id,
invoiceNumber,
order.date_created,
order.status,
order.billing.first_name + ' ' + order.billing.last_name,
order.billing.phone,
order.billing.email,
order.payment_method_title,
order.total,
item.name,
item.quantity,
item.price
]);
});

totalFetched++;
});

page++;
}

// Agregar solo los pedidos nuevos
if (newData.length > 0) {
sheet.getRange(sheet.getLastRow() + 1, 1, newData.length, newData[0].length).setValues(newData);
}
}


Acuérdate que tienes que modificar esto:

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

 

Si después de esto sigues con el problema lo que te aconsejo es que utilices el plugin que te indicamos. 

 

Un saludo


 
Respondido : 05/03/2025 10:02 am
Respuestas: 51
Trusted Member
Topic starter
 

Os acordais de este código de error, ha vuelto a saltar en una de las hojas que tengo de pruebas

 

Screenshot 20250305 131440

esta vez si que he seguido el enlace

 


 
Respondido : 05/03/2025 12:16 pm
Pepe
 Pepe
Respuestas: 41296
Illustrious Member Admin
 

Hola Antonio.

El error que muestras es porque la URL Base no esta bien definida, tiene que ser esto:

var urlBase = 'https://tuweb.com/wp-json/wc/v3/orders';

Es posible que lo tengas en mayúscula o no este bien, por ejemplo como esto:

var URLBase = 'https://tuweb.com/wp-json/wc/v3/orders'; // Con mayúsculas

 

Ten en cuenta que el lenguaje distingue entre urlBase y URLBase, por lo que URLBase no funcionará si en otro lugar usas urlBase

No se que codigo es en el que tienes el error pero buenos tienes que revisar lo que te comento y si tienes problemas, no te calientes la cabeza, utiliza el plugin.

 

Acuérdate que tienes que modificar esto por la URL de tu web y añadir las Key:

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

 

 

Un saludo


Esta publicación ha sido modificada el hace 8 meses por Pepe
 
Respondido : 05/03/2025 12:26 pm
Página 2 / 2