I'm working on an Acumatica integration through ASP.net that creates Sales Orders in Acumatica via the contract based API. I am using version 5.30. There are certain fields that come standard on the Acumatica objects, and some that don't. For those that don't exist, I was shown a way here using the CustomFields property that you can add data to these fields when a sales order is created. This worked great for the SalesOrder object, however, when I tried this on the Contact object, it does not work. I am trying to update the "Attention" field on the shipping settings tab of a SalesOrder. You can see in the image below that this field maps to the "Salutation" data field.
I try to update this field via the CustomFields property but it does not work:
orderToBeCreated = new SalesOrder
{
OrderType = new StringValue { Value = "SO" },
CustomerID = new StringValue { Value = customerID },
Description = new StringValue { Value = orderDescription },
CustomerOrder = new StringValue { Value = order.order_number.ToString() },
ExternalReference = new StringValue { Value = externalReference },
Details = orderDetails.ToArray<SalesOrderDetail>(),
ShippingAddressOverride = new BooleanValue { Value = true },
ShippingContactOverride = new BooleanValue { Value = true },
ShippingContact = new Contact()
{
DisplayName = new StringValue { Value = order.shipping_address.company },
FirstName = new StringValue { Value = order.shipping_address.first_name },
LastName = new StringValue { Value = order.shipping_address.last_name },
Email = new StringValue { Value = order.customer.email },
Phone1 = new StringValue {
Value = (order.billing_address.phone.Length > 0) ? order.billing_address.phone : "-"
},
Address = new Address()
{
AddressLine1 = new StringValue { Value = order.shipping_address.address_1 },
AddressLine2 = new StringValue { Value = order.shipping_address.address_2 },
City = new StringValue { Value = order.shipping_address.city },
State = new StringValue { Value = order.shipping_address.state },
Country = new StringValue { Value = order.shipping_address.country },
PostalCode = new StringValue { Value = order.shipping_address.postcode }
},
CustomFields = new CustomField[]
{
new CustomStringField
{
Name = "Salutation",
Value = new StringValue { Value = order.shipping_address.first_name + " " + order.shipping_address.last_name },
}
}
},
ShipVia = new StringValue { Value = _shipViaOptions[order.shipping_methods] },
CustomFields = new CustomField[]
{
new CustomStringField
{
Name = "ShipTermsID",
Value = new StringValue { Value = _shipTermsOptions[order.shipping_methods] }
}
}
};
Why would this work for ShippingTermsID and not for Salutation?