This article describes and issue with saving Metafields when working with OrderAddress. When trying to save the payment billing address as follows:
IOrderAddress address = GetDefaultBillingAddress(); address.Id = Constants.Order.BillingAddressName; address.Properties["IsValidated"] = true; address.Properties["UserChoosetoOverrideValidation"] = true; payment.BillingAddress = address; ServiceLocator.Current.GetInstance().Save(cart);
All properties are saved properly except the MetaFields. They are all NULL.