To resolve the issue of the delivery address not being set correctly in Sales Orders, ensure the Override checkbox is explicitly set to false when creating a Sales Order (SO).
let shipaddrSubrecord = salesOrder.getSubrecord({ fieldId: ‘shippingaddress’ });
shipaddrSubrecord.setText({
fieldId: ‘country’,
value: shipTo?.Address[“@attributes”]?.isoCountryCode
});
shipaddrSubrecord.setValue({ fieldId: ‘attention’, value: ” });
shipaddrSubrecord.setValue({
fieldId: ‘addressee’,
value: Array.isArray(shipTo.Address.PostalAddress.DeliverTo)
? (shipTo.Address.PostalAddress.DeliverTo[0][“#text”] || ”)
: (shipTo.Address.PostalAddress.DeliverTo[“#text”] || ”)
});
shipaddrSubrecord.setValue({
fieldId: ‘addr1’,
value: Array.isArray(shipTo.Address.PostalAddress.Street)
? (shipTo.Address.PostalAddress.Street[0][“#text”] || ”)
: (shipTo.Address.PostalAddress.Street[“#text”] || ”)
});
shipaddrSubrecord.setValue({
fieldId: ‘addr2’,
value: Array.isArray(shipTo.Address.PostalAddress.Street) && shipTo.Address.PostalAddress.Street[1]
? (shipTo.Address.PostalAddress.Street[1][“#text”] || ”)
: ”
});
shipaddrSubrecord.setValue({
fieldId: ‘city’,
value: shipTo?.Address?.PostalAddress?.City[“#text”]
});
shipaddrSubrecord.setValue({
fieldId: ‘zip’,
value: shipTo?.Address?.PostalAddress?.PostalCode[“#text”]
});
shipaddrSubrecord.setValue({
fieldId: ‘override’,
value: false
});
let billaddrSubrecord = salesOrder.getSubrecord({ fieldId: ‘billingaddress’ });
billaddrSubrecord.setText({
fieldId: ‘country’,
value: billTo?.Address[“@attributes”]?.isoCountryCode
});
billaddrSubrecord.setValue({ fieldId: ‘addressee’, value: ” });
billaddrSubrecord.setValue({ fieldId: ‘attention’, value: ” });
billaddrSubrecord.setValue({
fieldId: ‘addr1’,
value: Array.isArray(billTo.Address.PostalAddress.Street)
? (billTo.Address.PostalAddress.Street[0][“#text”] || ”)
: (billTo.Address.PostalAddress.Street[0][“#text”] || ”)
});
billaddrSubrecord.setValue({
fieldId: ‘addr2’,
value: Array.isArray(billTo.Address.PostalAddress.Street) && billTo.Address.PostalAddress.Street[1]
? (billTo.Address.PostalAddress.Street[1][“#text”] || ”)
: ”
});
billaddrSubrecord.setValue({
fieldId: ‘city’,
value: billTo?.Address?.PostalAddress?.City[“#text”]
});
billaddrSubrecord.setValue({
fieldId: ‘zip’,
value: billTo?.Address?.PostalAddress?.PostalCode[“#text”]
});
billaddrSubrecord.setValue({
fieldId: ‘override’,
value: false
});
With this update, the Override checkbox is now explicitly set to false for both shipping and billing addresses, ensuring the correct delivery address is applied in Sales Orders.