Shopify REST Admin API - 通过 line_items[0].title = something 获取订单

Shopify REST Admin API - fetch orders by line_items[0].title = something

对于上下文,我通过 node-fetch Shopify Admin REST API orders.json 请求,并使用我的代码中显示的查询。出于某种原因,这只是 returns 最新订单,无论我是否添加 status=any 或 limit=250(这是订单的标准限制)。在详细介绍之前,让我展示一下我的代码,以便您理解查询。

const User = require('../models/User.model');
const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args));

const getReportsPartner = async (req, res, next) => {
    const user = await User.findById(req.user.id)
    const url = 'https://astore.com/admin/orders.json?fields=total_price_usd,line_items';
    const headers = {
        'X-Shopify-Access-Token': 'anaccesstoken',
        'Content-type': 'application/json',
        'Authorization': 'anauthkey'
    }

    fetch(url, { method: 'GET', headers: headers })
        .then(res => res.json())
        .then(json => {
            const orders = json.orders[0]
            console.log(orders)
            const partner = orders.line_items[0].title
            const commission = (orders.total_price_usd * .125).toFixed(2)
            res.render('reports/partnerReport', { partner: partner, commission: commission })
        })
}

module.exports = { getReportsPartner }

除了状态和限制之外,我还尝试以其他方式修改 URL。我将在下面列出其中一些: https://astore.com/admin/orders.json?fields=total_price_usd,line_items.title=something https://astore.com/admin/orders.json?fields=total_price_usd,line_items&line_items.title=something

我也在 url 中尝试了 line_items[0].title=something,但这似乎使整个请求无效。感谢您提供的任何帮助。如果您需要更多上下文,请告诉我。最终,我计划按标题获取最近的订单,并以报告格式绘制订单和佣金图表。对于未来的订单,我将使用网络钩子,所以目前我只担心过去。

正如 HymnZzy 在评论中提到的那样,无法仅查询 line_items 标题。我决定做的是对最近 250 个订单或某个日期范围内的订单提出请求。这是一个带有查询的示例 url。

`https://${yourshop}.com/admin/api/2022-01/orders.json?limit=250&status=any&financial_status=paid&fields=line_items,total_price_usd`

然后我遍历结果并对每个具有特定标题的订单做一些事情。

for (let i=0; i<json.orders.length; i++) {
              try {
              let title = json.orders[i].line_items[0].title
              let price = json.orders[i].total_price_usd
              /* Do Something with title and price here */
            } catch (err) {
              console.log(err)
            }
          } 

我唯一的问题是这种方法的速度,但是如果我们想通过 REST Admin API 按 line_items 标题查找订单,Shopify 似乎限制了我们这样的事情。