Purchase Order Ship-To Address Not Updating in NetSuite

Hi Everyone,

I am creating a Purchase Order in NetSuite. I have mapped the shipping address fields in the import mapping, and these mapped fields are also visible in the mapping output. However, the Ship To address fields on the Purchase Order are not getting updated.

Has anyone encountered this issue before? If so, could you please suggest any workaround to resolve it?

I have shared the mapping output and the record processing logs below for reference.

Thanks in advance for your help!

Mapping Output:

{
"customform": 195,
"externalid": "005-2615",
"entity": 300747,
"department": 113,
"location": 15,
"custbody_stp_source_record_id": 2615,
"custbody_stp_source_system": 3,
"subsidiary": 19,
"trandate": "4/13/2026",
"terms": "Net 15",
"custbody_stp_source_total_amount": 1397.75,
"tranid": "PO041302",
"shipaddressee": "Addressee XYZ",
"shipaddr1": "123, New Street",
"shipcity": "Test City",
"shipstate": "MN",
"shipcountry": "United States",
"shipzip": "55344",
"shipphone": "",
"item": [
{
"item": 11939,
"quantity": 1,
"rate": 1397.75
}
]
}

Processing Records Log from Celigo:

r = NRecord.create({"type":"purchaseorder","defaultValues":{"customform":195}});
r.setValue({"fieldId":"externalid","value":"005-2615"});
r.setValue({"fieldId":"entity","value":300747});
r.setValue({"fieldId":"department","value":113});
r.setValue({"fieldId":"location","value":15});
r.setValue({"fieldId":"custbody_stp_source_record_id","value":2615});
r.setValue({"fieldId":"custbody_stp_source_system","value":3});
r.setValue({"fieldId":"subsidiary","value":19});
r.setValue({"fieldId":"trandate","value":"4/13/2026"});
r.setText({"fieldId":"terms","text":"Net 15"});
r.setValue({"fieldId":"custbody_stp_source_total_amount","value":"1397.75"});
r.setValue({"fieldId":"tranid","value":"PO041302"});
sr = r.getSubrecord({"fieldId":"shippingaddress"});
r.insertLine({"sublistId":"item","line":0});
r.setSublistValue({"sublistId":"item","fieldId":"item","line":0,"value":11939});
r.setSublistValue({"sublistId":"item","fieldId":"quantity","line":0,"value":1});
r.setSublistValue({"sublistId":"item","fieldId":"rate","line":0,"value":1397.75});
r.save({"enableSourcing":false,"ignoreMandatoryFields":false});

Hi Nithya,

Thank you for reaching out to Celigo!

By standard design, NetSuite treats the Shipping Address on a Purchase Order as a derived field. It follows a specific "waterfall" logic:

  1. Location Record: If a Location is selected, NetSuite pulls the address from that record.

  2. Subsidiary Record: If no Location address exists, it pulls from the Subsidiary.

  3. Company Information: The final fallback for single-company accounts.

When Celigo sends an address, NetSuite’s internal logic sees the Location or Subsidiary field on the PO and automatically triggers a "re-source." This essentially "stomps" over the custom data Celigo just provided, reverting it back to the warehouse or office address.

As a workaround, can you try creating a subsequent import step to update the shipping address?

Let me know if it works on your end.