在 Google 张中通过电子邮件发送产品数量

Sending the number of products via email in Google Sheets

我有一个 google 表格工具,我可以使用 Shopify API 每小时自动获取我们网站上的产品数量。 https://docs.google.com/spreadsheets/d/1m1lF6jLWPIKhJDOut_G-2tX_zYW4fU9dHKwIs03rr1Y/edit?usp=sharing

我需要为此工具开发代码。此代码将在每次搜索产品编号后检查此产品编号,如果此产品编号低于 1000,它应该给我发一封邮件告知产品编号。我该如何改进?

从站点获取产品数量的函数

function _1() {
  var spreadsheet = SpreadsheetApp.getActiveSheet();
  var startCol = 1
  var lastRow = spreadsheet.getLastRow();

  var rawtext = UrlFetchApp.fetch("https://kolayoto.com/collections/lastikleri.json").getContentText()
  var jsonObj = JSON.parse(rawtext);
  var contentObj = jsonObj.collection

  var columns = Object.keys(contentObj)

  var colName = []
  var result = []
  for (var i = 0; i < columns.length; i++){
    var key = columns[i]
    var value = contentObj[key]
    result.push(value)
  }

  var numRow = 1
  var numCol = columns.length
  if(lastRow+1 == 1){
    spreadsheet.getRange(lastRow+1, startCol, numRow, numCol).setValues([columns]);
    spreadsheet.getRange(lastRow+2, startCol, numRow, numCol).setValues([result]);
  }else {
    spreadsheet.getRange(lastRow+1, startCol, numRow, numCol).setValues([result]);
  }


  spreadsheet.getRange(lastRow+1, startCol).activate();
};

应该取最后一行的 Products Count 数字并在小于 1000 时发送邮件的函数。(它没有工作,尚未完成。 ) https://gyazo.com/e2fd5cdc4043dec00da1fce0e3c6c0ca(6562 是产品数)

function SendEmail() {
  // Fetch the monthly sales
  var spreadsheet = SpreadsheetApp.getActiveSheet();

  // I need your help in here. How can I get the products count in the last row after each run?

  // Check totals sales
  if (productsCount < 1000){ 
  // Send Alert Email.
  var message = 'KolayOto Lastik Ürün Sayısı Uyarısı!'; // Second column
  var subject = 'Ürün sayısı uyarısı!';
  MailApp.sendEmail("bbelcioglu@sekizgen.com", subject, message);
  MailApp.sendEmail("berk.belcioglu@gmail.com", subject, message);
  }
}

我希望我能把问题解释清楚。如果你能帮上忙,我会很高兴。

谢谢。

我相信你的目标如下。

  • 您想使用 Google Apps 脚本从 URL 检索产品计数。
    • 在这种情况下,您想要 return 6562 的值。
  • 您想 return 在 _1() 函数中的那个值。

为此,这个答案怎么样?

修改点:

  • 当看到来自 URL 的 returned 值时,可以使用 contentObj.products_count 检索产品计数。

修改后的脚本:

你的_1()脚本修改后,变成如下

从:
  spreadsheet.getRange(lastRow+1, startCol).activate();
};
到:
  spreadsheet.getRange(lastRow+1, startCol).activate();

  return contentObj.products_count;  // <--- Added
};

并且,通过上面的修改,SendEmail()可以修改如下。

function SendEmail() {
  var productsCount = _1(); // <--- Added

  // Fetch the monthly sales
  var spreadsheet = SpreadsheetApp.getActiveSheet();

  // I need your help in here. How can I get the products count in the last row after each run?

  // Check totals sales
  if (productsCount < 1000){ 
  // Send Alert Email.
  var message = 'KolayOto Lastik Ürün Sayısı Uyarısı!'; // Second column
  var subject = 'Ürün sayısı uyarısı!';
  MailApp.sendEmail("bbelcioglu@sekizgen.com", subject, message);
  MailApp.sendEmail("berk.belcioglu@gmail.com", subject, message);
  }
}