From 49bc9d50a97eb656d1c629ebd8510064e9b59df2 Mon Sep 17 00:00:00 2001 From: Dmitriy Benyuk Date: Thu, 10 Apr 2025 13:58:27 +0300 Subject: [PATCH] Fix sending BillingName on the DeliveryName field --- ...Ecommerce.DynamicwebLiveIntegration.csproj | 2 +- .../XmlGenerators/OrderXmlGenerator.cs | 23 +++++++++++-------- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/Dynamicweb.Ecommerce.DynamicwebLiveIntegration.csproj b/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/Dynamicweb.Ecommerce.DynamicwebLiveIntegration.csproj index 150544e..05ebf6f 100644 --- a/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/Dynamicweb.Ecommerce.DynamicwebLiveIntegration.csproj +++ b/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/Dynamicweb.Ecommerce.DynamicwebLiveIntegration.csproj @@ -1,6 +1,6 @@  - 10.4.19 + 10.4.20 1.0.0.0 Live Integration Live Integration diff --git a/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/XmlGenerators/OrderXmlGenerator.cs b/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/XmlGenerators/OrderXmlGenerator.cs index 6cda55d..9a846d3 100644 --- a/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/XmlGenerators/OrderXmlGenerator.cs +++ b/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/XmlGenerators/OrderXmlGenerator.cs @@ -82,9 +82,16 @@ private static void AddCustomerInformation(Settings currentSettings, XmlElement /// The order node. /// The order. private void AddOrderDeliveryInformation(OrderXmlGeneratorSettings settings, XmlElement orderNode, Order order, User user) - { - AddChildXmlNode(orderNode, "OrderDeliveryName", - !string.IsNullOrWhiteSpace(order.CustomerName) ? order.CustomerName : !string.IsNullOrWhiteSpace(user?.Name) ? user.Name : order.DeliveryName); + { + UserAddress deliveryAddress = null; + if (settings.CreateOrder && order.DeliveryAddressId > 0) + { + deliveryAddress = UserManagementServices.UserAddresses.GetAddressById(order.DeliveryAddressId); + } + string deliveryName = (deliveryAddress is object && !string.IsNullOrEmpty(order.DeliveryName)) ? order.DeliveryName : + !string.IsNullOrWhiteSpace(order.CustomerName) ? order.CustomerName : user.Name; + + AddChildXmlNode(orderNode, "OrderDeliveryName", deliveryName); AddChildXmlNode(orderNode, "OrderDeliveryAddress", order.DeliveryAddress); AddChildXmlNode(orderNode, "OrderDeliveryAddress2", order.DeliveryAddress2); AddChildXmlNode(orderNode, "OrderDeliveryCity", order.DeliveryCity); @@ -95,14 +102,10 @@ private void AddOrderDeliveryInformation(OrderXmlGeneratorSettings settings, Xml AddChildXmlNode(orderNode, "OrderDeliveryPhone", order.DeliveryPhone); AddChildXmlNode(orderNode, "OrderDeliveryFax", order.DeliveryFax); AddChildXmlNode(orderNode, "OrderDeliveryCompany", order.DeliveryCompany); - if (settings.CreateOrder && order.DeliveryAddressId > 0) + if (deliveryAddress is object) { - var address = UserManagementServices.UserAddresses.GetAddressById(order.DeliveryAddressId); - if (address is object) - { - AddChildXmlNode(orderNode, "OrderDeliveryAddressId", !string.IsNullOrEmpty(address.ExternalID) ? address.ExternalID : address.UniqueIdentifier); - } - } + AddChildXmlNode(orderNode, "OrderDeliveryAddressId", !string.IsNullOrEmpty(deliveryAddress.ExternalID) ? deliveryAddress.ExternalID : deliveryAddress.UniqueIdentifier); + } } ///