gpt4 book ai didi

javascript - 在 SuiteScript 中更改履行的发货方法

转载 作者:行者123 更新时间:2023-12-02 23:56:17 29 4
gpt4 key购买 nike

因此,我们遇到的情况是,订单创建了履行,而外部公司实际处理订单的履行和运输。数据会导出给他们,对于已完成的订单,该信息会重新导入。不过,有时,使用的承运商与创建初始订单的人员预期的承运商不同,因此必须更改承运商。然而,在使用 SuiteScript 时,如果您必须更改承运商/运输方式,NetSuite 可能会有点无情。根据需要更改的内容,您可能会遇到以下错误:

Error: Switching the shipping method to another carrier is an unsupported operation, because it requires reloading the item fulfillment form for that carrier.

根据我的经验,这意味着必须删除履行,更改订单上的运输选项(这可能会扰乱现有的成本计算),然后创建新的履行。此路线是不可取的,因为它破坏了与第三方仓库的数据链。这种方法也是必需的,因为第三方的系统不允许延期交货,并且在创建履行之前尝试管理发送可从订单履行的数据已被证明是一场噩梦。

例如,出现此问题是因为订单接受者假设承运人为 UPS,并且方法为 UPS cargo 。现实情况可能是,载体可能是 YRC 或 Old Dominion,这需要不同的记录结构。但是,也不能假设它不是 UPS Freight,因为第三方仓库也使用 UPS Freight。他们根据到达目的地的最低成本做出不同的承运商选择。我认为这一切都取决于 NetSuite 如何根据承运人/运输方法管理三到四个不同的包裹子列表。当您通过 UI 进行更改时,它将重新加载包含必要更改的履行,您可以从那里开始。

对于任何想要代码示例的人,这是目前我可以提供的最佳示例,如果 NetSuite 确定更改需要不同的包子列表,该示例将会失败:

var recId = 1234;
var shipMethod = 5678;
var ifRec = nlapiLoadRecord("itemfulfillment", recId, { recordmode : "dynamic" });
ifRec.setFieldValue("shipcarrier", "nonups");
ifRec.setFieldValue("shipmethod", shipMethod);
nlapiSubmitRecord(ifRec);

我认为也许可以在加载履行时使用初始化值来完成此操作,但我尝试过的任何操作似乎都不允许作为值初始化值。我的尝试包括以下参数:

  • 载体形式
  • 承运商
  • 运输方式
  • nsi(当您在用户界面中更改承运商/方法时,会显示在 URL 中)

最佳答案

我无意中找到了问题的答案...

nlapiSubmitField("itemfulfillment", fulfillmentId,
["carrierform", "shipcarrier", "shipmethod"],
["ns", "nonups", shipMethod]
);

“carrierform”和“shipcarer”传入的值因目标运输方法而异。鉴于 NetSuite 根据承运商是否为 UPS、FedEx、USPS 或其他而具有不同的“表单”,从而决定了项目履行记录中实际可用的包装子列表,因此必须查找“carrierform”值。我只知道 UPS 运输的值为“ups”,其他运输的值为“ns”。我还没有找到使用 FedEx 或 USPS 包装子列表时的值。

关于javascript - 在 SuiteScript 中更改履行的发货方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55361487/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com