首页 > 解决方案 > 在 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是 products count )

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-scriptgoogle-sheetsshopifygoogle-sheets-macros

解决方案


我相信你的目标如下。

  • 您想使用 Google Apps 脚本从 URL 中检索 Products Count 数字。
    • 在这种情况下,您希望返回 的值6562
  • 您想在 的函数处返回该值_1()

为此,这个答案怎么样?

修改点:

  • 当看到来自 URL 的返回值时,可以使用 检索 Products Count 数字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);
  }
}

推荐阅读