Agrega parámetros a tu query de importación de datos de Google Sheets a Shopify

En el post anterior Importa Data de Shopify a Google Sheets sin herramientas de pago vimos un ejemplo básico que nos permitía crear una aplicación privada en Shopify, conectarnos a esa aplicación vía API desde un script en Google Sheets, y luego invocar esa función desde Google Sheets para obtener el número de clientes de nuestra tienda.

En este post ampliaremos ese ejemplo, para incluir filtros en nuestra query y así podar acotar los resultados de la consulta a lo que realmente necesitemos.

Amplía la Función para Incluir Filtros de Fecha

Si vemos la documentación de la API Customers Count, podremos ver que esta, a la fecha de esta publicación, permite 4 parámetros:

  1. created_at_max: Cuenta los clientes creados antes de una fecha específica.
  2. created_at_min Cuenta los clientes creados después de una fecha específica.
  3. updated_at_max: Cuenta los clientes actualizados después de una fecha específica.
  4. updated_at_min: Cuenta los clientes actualizados antes de una fecha específica.

En todos los casos el formato de la fecha debe ser "2024-02-25T16:15:47-04:00)".

Veremos a continuación cómo modificar la función getShopifyCustomersCount() para que acepte estos parámetros de fecha.

Agregando Parámetros a la Función

Vamos a modificar nuestra función original para incluir cuatro nuevos parámetros: created_at_min, created_at_max, updated_at_min, updated_at_max. Estos parámetros permitirán filtrar los clientes basándose en rangos de fecha específicos.

Modificación de la Función en Google Sheets

Para empezar, regresa a "Extensiones" > "Apps Script" en tu hoja de cálculo de Google Sheets, y actualiza la función getShopifyCustomersCount() de la siguiente manera:

getShopifyCustomersCount(created_at_min, created_at_max, updated_at_min, updated_at_max) {
  var baseUrl = 'https://tu-tienda.myshopify.com/admin/api/2023-10/customers/count.json';
  var username = 'tu_clave_api';
  var password = 'tu_token_acceso_privado';
  
  var queryString = '?';
  if (created_at_min) queryString += 'created_at_min=' + created_at_min + '&';
  if (created_at_max) queryString += 'created_at_max=' + created_at_max + '&';
  if (updated_at_min) queryString += 'updated_at_min=' + updated_at_min + '&';
  if (updated_at_max) queryString += 'updated_at_max=' + updated_at_max;
  
  var fullUrl = baseUrl + queryString;

  var headers = {
    "Authorization": "Basic " + Utilities.base64Encode(username + ':' + password)
  };
  
  var options = {
    "method": "get",
    "headers": headers,
    "muteHttpExceptions": true
  };

  try {
    var response = UrlFetchApp.fetch(fullUrl, options);
    var result = JSON.parse(response.getContentText());
    var count = result.count;

    return count;
  } catch (e) {
    Logger.log("Error fetching customer count with filters: " + e.toString());
    return 'Error';
  }
}

En el script anterior vemos 2 diferencias principales:

  1. La función que antes no tenía ningún parámetro, ahora acepta 4:
getShopifyCustomersCount(created_at_min, created_at_max, updated_at_min, updated_at_max)
  1. Aparece la variable queryString, que agrega a la URL de consulta de la API los valores de las 4 variables con un formato similar al siguiente (este ejemplo trae la cuenta de todos los clientes creados entre el 1 y el 15 de febrero de 2024):
https://{{tu_clave_api}}:{{tu_token_acceso_privado}}@{{tu-tienda.myshopify.com}}/admin/api/2024-01/customers/count.json?created_at_min=2024-02-01&created_at_max=2024-02-15

Para que esta función funcione como esperamos, debemos obtener los valores desde celdas de Google Sheets.

Obtener Valores de Filtro desde Google Sheets

Para utilizar la función mejorada, ingresa las fechas de inicio y fin para la creación y última actualización de los clientes, por ejemplo en las celdas B2, B3, B4, y B5 de tu planilla. Luego, puedes llamar a la función en cualquier celda de la siguiente manera:

=getShopifyCustomersCount(B2, B3, B4, B5)

Esta nueva versión de la función buscará en tu tienda Shopify y retornará el número de clientes que coincidan con los criterios de fecha especificados:

{"count":280}

Ventajas de los Filtros de Fecha

Incorporando estos parámetros de fecha, podrás realizar análisis más detallados sobre el crecimiento de tu base de clientes y entender mejor las tendencias a lo largo del tiempo. Por ejemplo, podrías identificar cuántos clientes nuevos se añadieron durante una campaña de marketing específica o cuántos clientes existentes han actualizado sus datos recientemente.

Próximos pasos

Ahora que ya entendemos bien como traer información y utilizar parámetros en la query, en el próximo ejemplo veremos como traer una mayor cantidad de información, por ejemplo los principales datos de nuestra base de clientes, para poder utilizarla libremente en nuestra planilla.