在 Netsuite 中,如何在从项目履行生成的电子邮件中包含跟踪号列表?

Posted

技术标签:

【中文标题】在 Netsuite 中,如何在从项目履行生成的电子邮件中包含跟踪号列表?【英文标题】:In Netsuite how can I include a list of tracking numbers in an email generated from an Item Fulfillment? 【发布时间】:2018-12-28 05:18:09 【问题描述】:

我需要从 Netsuite 中的项目履行记录发送自定义“已发货”电子邮件。我正在使用 freemarker 制作电子邮件模板。我想在电子邮件中包含与项目履行相关的包裹的跟踪号。

我尝试过使用:

<#list transaction.package as pkg>$pkg.packagetrackingnumber </#list>

但是,当我从项目履行的通信选项卡发送电子邮件模板(具有多个带有跟踪号的包裹)时,我在电子邮件中看不到任何内容。

然后我尝试了:

<#list transaction.package as pkg>TEST</#list>

但仍然什么也没看到(我本来希望看到“TEST”的次数与有多少个包一样多),所以看起来包列表是空的,尽管我可以在这个项目的 UI 中看到很多包履行。

如何将跟踪号添加到从项目履行发送的电子邮件模板中?

【问题讨论】:

【参考方案1】:

要获取有关商品配送的所有跟踪号,您应该考虑所有可能的跟踪号。 NetSuite 使用了三种:

    transaction.package transaction.packageups transaction.packagefedex

FreeMarker 中引用了实际的跟踪链接,如下所示:

    <#list transaction.package as pkg>$pkg.packagetrackingnumber</#list> <#list transaction.packageups as pkg>$pkg.packagetrackingnumberups</#list> <#list transaction.packagefedex as pkg>$pkg.packagetrackingnumberfedex</#list>

下面是一些有助于列出所有跟踪号的示例代码。请注意示例中的几件事:

我列出了每个包裹跟踪号,并使用 FreeMarker ?is_last 标签来确定这是最后一个跟踪号(所以放一个句点)还是还有更多(所以放一个逗号和空格)。这种逻辑并不完美,因为您可能会列出 UPS 包裹并到最后,而不是放置空格,然后列出 Fedex 包裹,并且您会在最后一个 UPS 链接旁边拥有第一个 Fedex 链接。我想你可以说这是假设每次履行只使用一个承运人:) 对于非 UPS、非 Fedex 链接,我使用 if 语句并引用 shipmethod 字段来确定链接应该是什么。 为了便于阅读,我已自动格式化代码,但您显然可以删除换行符/空格以使段落正确显示。
We have made a shipment against your PO $transaction.createdfrom.otherrefnum, with tracking number(s) <#list
    transaction.packagefedex as pkg> <a
        href="https://www.fedex.com/fedextrack/?trknbr=$pkg.packagetrackingnumberfedex">$pkg.packagetrackingnumberfedex</a>
    <#if pkg?is_last>
        <#else>,
    </#if>
</#list>
<#list transaction.packageups as pkg><a
        href="https://www.ups.com/track?tracknum=$pkg.packagetrackingnumberups">$pkg.packagetrackingnumberups</a>
    <#if pkg?is_last>
        <#else>,
    </#if>
</#list>
<#list transaction.package as pkg>
    <#if transaction.shipmethod?contains("DHL")><a
            href="https://www.dhl.com/en/express/tracking.html?AWB=$pkg.packagetrackingnumber&amp;brand=DHL">$pkg.packagetrackingnumber</a>
        <#else>$pkg.packagetrackingnumber
    </#if>
    <#if pkg?is_last>
        <#else>,
    </#if>
</#list>

【讨论】:

【参考方案2】:

解决方案是使用transaction.packagefedex 引用包裹并使用transaction.packagefedex.packagetrackingnumberfedex 作为跟踪号

【讨论】:

以上是关于在 Netsuite 中,如何在从项目履行生成的电子邮件中包含跟踪号列表?的主要内容,如果未能解决你的问题,请参考以下文章

报告中的 Netsuite 字段为空白,并保存了转移单的搜索

如何在公式中提取事务级别线 (NetSuite)

NetSuite - 使用订单项字段自动填充自定义正文字段

NetSuite - 从一个估算(又名报价)生成多个销售订单

Freemarker / Netsuite - 将变量分配给特定的项目数量

如何知道 XCTestExpectation 当前的履行计数