Ampliar limite de c...
Avisos
Vaciar todo

Ampliar limite de clientes en Hoja Google  

Página 2 / 2
 
Antonio
 Antonio
Usuario experto

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
Antonio
 Antonio
Usuario experto

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 4 semanas por Antonio
ResponderCitar
Respondido : 05/03/2025 8:56 am

Cursos Gratuitos WordPress

Pepe
 Pepe
Soporte CMS Webempresa 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

ResponderCitar
Respondido : 05/03/2025 10:02 am
Antonio
 Antonio
Usuario experto

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

 

ResponderCitar
Respondido : 05/03/2025 12:16 pm

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

Pepe
 Pepe
Soporte CMS Webempresa 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 4 semanas por Pepe
ResponderCitar
Respondido : 05/03/2025 12:26 pm
Página 2 / 2