NetSuite SS 2.0:Salesorder 自定义地址

NetSuite SS 2.0: Salesorder Custom address

我们目前正在从第 3 方导入销售订单, Salesorder 创建完成。 我们正在努力处理送货地址,我们需要为每个新的销售订单创建一个自定义送货地址。

当我们使用以下代码时,销售订单中只显示 shipzip,您认为这是什么原因吗?

              var shippingDetails = order[k].shipping_address;
          log.debug('shipping',shippingDetails);
          salesOrder.setValue('shipaddresslist', null);

          salesOrder.setValue('shipcountry', shippingDetails.country_iso_code.substring(0,2));
          log.debug('shipcountry',
                    salesOrder.getValue({
            fieldId: 'shipcountry'
          })
                   );
          salesOrder.setValue('shipisresidential', 'T');
          salesOrder.setValue('shipattention', 'Adresse de livraison');
          log.debug('shipattention',
                    salesOrder.getValue({
            fieldId: 'shipattention'
          })
                   );
          salesOrder.setValue('shipaddressee', shippingDetails.civility +' '+shippingDetails.firstname+' '+shippingDetails.lastname);
          log.debug('shipaddressee',
                    salesOrder.getValue({
            fieldId: 'shipaddressee'
          })
                   );
          salesOrder.setValue('shipaddrphone', shippingDetails.phone);
          salesOrder.setValue('shipaddr1', shippingDetails.street_1);
          salesOrder.setValue('shipaddr2', shippingDetails.street_2);
          salesOrder.setValue('shipcity', shippingDetails.city);
          //salesOrder.setValue('shipstate', 'CA');
          salesOrder.setValue('shipzip', shippingDetails.zip_code);           

作为一种解决方法,我们尝试使用下面的代码,我们怎样才能得到回车 return?:

              salesOrder.setValue('shipaddress', shippingDetails.civility +' '+shippingDetails.firstname+' '+shippingDetails.lastname +'\n'+shippingDetails.street_1+'\n'+shippingDetails.zip_code+' '+shippingDetails.city);

要使用 SuiteScript 2.0 在销售订单上正确设置账单地址或送货地址,您必须使用 subrecord 方法。

这是一个完整的工作示例,它使用指定的 Customer Internal ID 和一个有效的 Item Internal ID

创建销售订单

您可以根据需要对其进行调整。

/**
*@NApiVersion 2.x
*/
require(['N/record'], function (record) {

    var VALID_CUSTOMER_ID = 14907; // A valid Customer Internal ID for testing
    var VALID_ITEM_ID = 7006; // A valid Item Internal ID for testing

    // Example address details
    var shippingDetails = { "country_iso_code": "USA", "civility": "civilty", "firstname": "firstname", "lastname": "lastname", "phone": "0123456789", "street_1": "Street 1", "street_2": "Street 2", "city": "Bell", "shipstate": "California", "zip_code": "90201" };
    var billingDetails = { "country_iso_code": "USA", "civility": "civilty", "firstname": "firstname", "lastname": "lastname", "phone": "0123456789", "street_1": "Street 1", "street_2": "Street 2", "city": "Bell", "shipstate": "California", "zip_code": "90201" };

    function CreateSalesOrder() {

        // Create our new sales order
        var salesOrder = record.create({
            type: record.Type.SALES_ORDER,
            isDynamic: true,
            defaultValues: { entity: VALID_CUSTOMER_ID }
        });

        // Add a line item (just for testing / example)
        salesOrder.selectNewLine({sublistId: 'item'});
        salesOrder.setCurrentSublistValue({
            sublistId: 'item',
            fieldId: 'item',
            value: VALID_ITEM_ID
        });
        salesOrder.setCurrentSublistValue({
            sublistId: 'item',
            fieldId: 'quantity',
            value: 1
        });
        salesOrder.setCurrentSublistValue({
            sublistId: 'item',
            fieldId: 'amount',
            value: 1
        });
        salesOrder.commitLine({sublistId: 'item'});

        // Set our billing address
        salesOrder.setValue({
            fieldId: 'billaddresslist',
            value: null // Needed to override default address
        });
        var billaddrSubrecord = salesOrder.getSubrecord({fieldId: 'billingaddress'});
        billaddrSubrecord.setValue({
            fieldId: 'country',
            value: billingDetails.country_iso_code.substring(0,2)
        });
        billaddrSubrecord.setValue({
            fieldId: 'isresidential',
            value: 'T'
        });
        billaddrSubrecord.setValue({
            fieldId: 'attention',
            value: 'Adresse de livraison'
        });
        billaddrSubrecord.setValue({
            fieldId: 'addressee',
            value: billingDetails.civility +' '+billingDetails.firstname+' '+billingDetails.lastname
        });
        billaddrSubrecord.setValue({
            fieldId: 'addrphone',
            value: billingDetails.phone
        });
        billaddrSubrecord.setValue({
            fieldId: 'addr1',
            value: billingDetails.street_1
        });
        billaddrSubrecord.setValue({
            fieldId: 'addr2',
            value: billingDetails.street_2
        });
        billaddrSubrecord.setValue({
            fieldId: 'city',
            value: billingDetails.city
        });
        billaddrSubrecord.setValue({
            fieldId: 'state',
            value: billingDetails.state
        });
        billaddrSubrecord.setValue({
            fieldId: 'zip',
            value: billingDetails.zip_code
        });

        // Set our shipping address
        salesOrder.setValue({
            fieldId: 'shipaddresslist',
            value: null // Needed to override default address
        });
        var shipaddrSubrecord = salesOrder.getSubrecord({fieldId: 'shippingaddress'});
        shipaddrSubrecord.setValue({
            fieldId: 'country',
            value: shippingDetails.country_iso_code.substring(0,2)
        });
        shipaddrSubrecord.setValue({
            fieldId: 'isresidential',
            value: 'T'
        });
        shipaddrSubrecord.setValue({
            fieldId: 'attention',
            value: 'Adresse de livraison'
        });
        shipaddrSubrecord.setValue({
            fieldId: 'addressee',
            value: shippingDetails.civility +' '+shippingDetails.firstname+' '+shippingDetails.lastname
        });
        shipaddrSubrecord.setValue({
            fieldId: 'addrphone',
            value: shippingDetails.phone
        });
        shipaddrSubrecord.setValue({
            fieldId: 'addr1',
            value: shippingDetails.street_1
        });
        shipaddrSubrecord.setValue({
            fieldId: 'addr2',
            value: shippingDetails.street_2
        });
        shipaddrSubrecord.setValue({
            fieldId: 'city',
            value: shippingDetails.city
        });
        shipaddrSubrecord.setValue({
            fieldId: 'state',
            value: shippingDetails.state
        });
        shipaddrSubrecord.setValue({
            fieldId: 'zip',
            value: shippingDetails.zip_code
        });

        // Save our new sales order
        salesOrder.save({ignoreMandatoryFields: true});
    }

    CreateSalesOrder();
});

工作示例视频

经过一个小时的战斗,这是 2021 年的更新。如有疑问,RTM:https://6396621-sb1.app.netsuite.com/app/help/helpcenter.nl?fid=section_4704101831.html

//Create the custom shipping address
let shipaddr = so.getSubrecord('shippingaddress');
shipaddr.setValue('country', order.shippingAddress.country.id);
shipaddr.setValue('phone', order.deliveryphone);
shipaddr.setValue('isresidential', 'T');
shipaddr.setValue('attention', '');
shipaddr.setValue('addressee', order.shippingAddress.addressee);
shipaddr.setValue('addr1', order.shippingAddress.address1);
shipaddr.setValue('city', order.shippingAddress.city);
shipaddr.setValue('state', order.shippingAddress.state);
shipaddr.setValue('zip', order.shippingAddress.postcode);
log.debug('Shipping',shipaddr);

//Create the custom billing address
let billaddr = so.getSubrecord('billingaddress');
billaddr.setValue('country', order.billingAddress.country.id);
billaddr.setValue('phone', order.billingAddress.phone);
billaddr.setValue('isresidential', 'T');
billaddr.setValue('attention', '');
billaddr.setValue('addressee', order.billingAddress.addressee);
billaddr.setValue('addr1', order.billingAddress.address1);
billaddr.setValue('city', order.billingAddress.city);
billaddr.setValue('state', order.billingAddress.state);
billaddr.setValue('zip', order.billingAddress.postcode);
log.debug('Billing',billaddr);