You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改商品Feed解析脚本 仅提取有库存商品的URL与分类信息

修改方案

标准商品贸易Feed中会用<g:availability>字段标识库存状态,有库存的商品该字段值通常为in_stock,你只需要在原有解析逻辑中新增库存状态的判断,仅保留符合有库存条件的商品即可。

修改后的完整代码

// 注意如果之前没有全局声明output变量,先添加以下这行
var output = [];
// 提前定义好你的Feed地址、表格地址、工作表名常量
const FeedURL = "替换为你的Feed实际地址";
const SPREADSHEET_URL = "替换为你的谷歌表格实际地址";
const SHEET_NAME = "替换为你的目标工作表名称";

function main() {
  // 每次运行先清空上次的输出结果,避免数据重复
  output = [];
  getURLs();
  pushToSheet();
}

function getURLs() {
  var FeedXML = UrlFetchApp.fetch(FeedURL).getContentText(); 
  var items = FeedXML.split('<item>');
  var len = items.length;

  for(var key = 0; key < len; key++){
    var url_temp = items[key].split('<g:link>')[1];
    var url = undefined;
    if (typeof(url_temp) !== "undefined"){
      url = url_temp.split('</g:link>')[0];
    }

    var cat_temp = items[key].split('<g:product_type>')[1];
    var cat = undefined;
    if(cat_temp !== undefined){
      cat = cat_temp.split('</g:product_type>')[0];
    }

    // 新增:提取库存状态字段
    var availability_temp = items[key].split('<g:availability>')[1];
    var isInStock = false;
    if(availability_temp !== undefined){
      var availability = availability_temp.split('</g:availability>')[0].trim().toLowerCase();
      // 判断是否为有库存状态,如果你家Feed的有库存标识不是in_stock,替换成对应值即可
      isInStock = availability === 'in_stock';
    }

    // 新增库存判断条件,只有有库存的商品才写入输出数组
    if(url !== undefined && isInStock){
      output.push([url, cat]);
    }
  }
}

function pushToSheet(){
  var sheetURL = SpreadsheetApp.openByUrl(SPREADSHEET_URL);
  var sheet2 = sheetURL.getSheetByName(SHEET_NAME);
  sheet2.clearContents();
  sheet2.appendRow(['URL', 'Custom label']);
  // 加判空逻辑,避免没有符合条件的商品时报错
  if(output.length > 0){
    sheet2.getRange(sheet2.getLastRow()+1, 1, output.length, output[0].length).setValues(output); 
  }
}

核心修改点说明

  • 新增了库存状态字段<g:availability>的提取逻辑,自动去除取值前后空格并转小写,避免大小写格式差异导致的判断失效
  • 优化了变量声明逻辑,避免循环中变量提升导致的异常值
  • 写入输出数组的判断条件新增了有库存校验,仅保留有库存的商品
  • 新增了写入表格前的输出数组判空逻辑,避免没有符合条件的商品时脚本报错
  • 新增了运行前清空上次输出的逻辑,避免多次运行数据重复

内容的提问来源于stack exchange,提问作者Дмитрий Громко

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 03:15:10