跳转至主要内容
Shopify 开发

如何批量获取 Shopify 店铺全部的产品 id

创建应用

在 Shopify 店铺后台 ~ 应用和销售渠道 ~ 开发应用 ~ 创建应用,名称可以任取,例如:getProductIds

创建 Shopify 应用

配置后台 API 权限

配置 Shopify 后台 API 范围

搜索 product 添加 read_product 权限,勾选并保存。

配置读取产品信息

安装并获取 Token

切换到 “API 凭据”,点击 “安装应用”

安装应用

点击 “只显示一次令牌”,并复制显示的令牌,替换到下方代码中。

复制令牌

创建项目

需要先安装 Node.jsVS Code

创建一个文件夹,初始化项目

npm init -y

安装 axios

npm install axios

创建文件并粘贴代码

getId.js

替换以下代码中的店铺域名和 Token:

const axios = require("axios");
const fs = require("fs").promises;
const shop = "breakthroughdawn.myshopify.com";
const accessToken = "替换 Token 和上面的店铺域名 ↑";

async function getProductIds() {
  try {
    let allProducts = [];
    let url = `https://${shop}/admin/api/2024-10/products.json`;

    while (url) {
      const response = await axios.get(url, {
        headers: {
          "X-Shopify-Access-Token": accessToken,
          "Content-Type": "application/json",
        },
      });

      allProducts = allProducts.concat(response.data.products.map((p) => p.id));

      const link = response.headers.link;
      url =
        link && link.includes('rel="next"')
          ? link
              .split(",")
              .find((s) => s.includes('rel="next"'))
              .split(";")[0]
              .replace(/[<>]/g, "")
          : null;
    }

    await fs.writeFile(
      "product-ids.json",
      JSON.stringify(allProducts, null, 2)
    );
    console.log("总共获取到 " + allProducts.length + " 个产品 ID");
    return allProducts;
  } catch (error) {
    console.error("Error:", error.response?.data || error.message);
  }
}

getProductIds();

获取数据

在 VS Code 终端中执行:

node getId 

获取结果:

获取结果

自动写入文件:

写入文件

通过 id 可以在后台搜索到对应的产品:

通过 id 搜索商品