google-apps-script - 在 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 脚本从 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);
}
}
推荐阅读
- java - 为什么有必要创建很多不同的异常类型?
- git - 如何在 git 中更轻松地引用 3rd 方源?
- python - 如何找到测试使用的固定装置?
- python - 为什么 numpy sum 比 + 运算符慢 10 倍?
- android - 如何编辑 RecyclerView 的 FloatingActionButton(可见性等)
- python - 如何获取标有字典键的输出文件
- react-native - 使用未声明的标识符“AIRGoogleMapOverlay”react-native-maps
- jquery - Auto_click_Script_with_ID_changeing using(document.getElementById)
- c# - 为什么输出给我的值为+1?
- go - Golang 简单用户输入产品数学问题,例如 3*2*1 = 6