Netsuite:使用 SuiteScript 1.0 获取特定日期的价格区间

问题描述 投票:0回答:1

在 Netsuite REST API 中,可以通过此端点查询特定订阅的价格间隔:

/record/v1/subscription/{SUBSCRIPTION_ID}/priceInterval

这将返回每个订阅行的价格区间列表。例如,以下是有关订阅行号 16 的响应摘录:

    {
        "links": [
            {
                "rel": "self",
                "href": "https://XXXXXXXXX.suitetalk.api.netsuite.com/services/rest/record/v1/subscription/123456/priceInterval/subscriptionPlanLineNumber=16,startDate=2024-06-05"
            }
        ]
    },
    {
        "links": [
            {
                "rel": "self",
                "href": "https://XXXXXXXXX.suitetalk.api.netsuite.com/services/rest/record/v1/subscription/123456/priceInterval/subscriptionPlanLineNumber=16,startDate=2024-08-01"
            }
        ]
    },
    {
        "links": [
            {
                "rel": "self",
                "href": "https://XXXXXXXXX.suitetalk.api.netsuite.com/services/rest/record/v1/subscription/123456/priceInterval/subscriptionPlanLineNumber=16,startDate=2024-08-11"
            }
        ]
    },

然后,通过访问相关的URL,我可以获取该时间点的订阅线状态的详细信息(例如数量、金额、状态等)。

在 SuiteScript 1.0 中,可以通过首先加载订阅来完成类似的操作:

let subscriptionId = 123456;
let subscription = nlapiLoadRecord('subscription', subscriptionId, {
    "recordmode": "dynamic"
});

然后查询该行,例如:

let lineNumber = 16;
let quantity = subscription.getLineItemValue('subscriptionline', 'quantity', lineNumber);

但是 - 这是我的问题 - 这似乎总是返回订阅的第 first 价格区间的数量(startDate=2024-06-05 的那个)。如何使用SuiteScript 1.0查询订阅特定时间间隔的数量,即startDate=2024-08-11的最后一个数量?

非常感谢任何帮助或想法。

netsuite suitescript netsuite-rest-api suitescript1.0
1个回答
0
投票

SuiteScript 1.0 API 不直接支持按日期查询价格区间,您必须通过代码逻辑来处理。

  1. 加载订阅记录:使用

    nlapiLoadRecord
    加载订阅记录以访问其行项目和价格区间。

  2. 检索所有价格区间:迭代行项目的所有价格区间,以找到具有所需开始日期的价格区间。

  3. 提取所需间隔的信息:比较开始日期以确定正确的间隔并使用

    getLineItemValue
    检索必要的详细信息,例如数量。

© www.soinside.com 2019 - 2024. All rights reserved.