From ae5451bfcf87684b8cfd6e98a4becaa9f236779d Mon Sep 17 00:00:00 2001 From: Dmitriy Benyuk Date: Fri, 22 Aug 2025 12:25:35 +0300 Subject: [PATCH] Fix "Index was out of range" due to discount line --- .../Dynamicweb.Ecommerce.DynamicwebLiveIntegration.csproj | 2 +- .../OrderHandler.cs | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/Dynamicweb.Ecommerce.DynamicwebLiveIntegration.csproj b/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/Dynamicweb.Ecommerce.DynamicwebLiveIntegration.csproj index 6865eda..a449c14 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.28 + 10.4.29 1.0.0.0 Live Integration Live Integration diff --git a/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/OrderHandler.cs b/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/OrderHandler.cs index 20043f5..c6b4887 100644 --- a/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/OrderHandler.cs +++ b/src/Dynamicweb.Ecommerce.DynamicwebLiveIntegration/OrderHandler.cs @@ -638,6 +638,7 @@ private static void ProcessOrderLines(Settings settings, XmlDocument response, O bool keepDiscountOrderLines = !settings.ErpControlsDiscount && order.Complete; // Remove deleted OrderLines + List linesToRemove = new List(); for (int i = order.OrderLines.Count - 1; i >= 0; i--) { var orderLine = order.OrderLines[i]; @@ -650,6 +651,10 @@ private static void ProcessOrderLines(Settings settings, XmlDocument response, O { continue; } + linesToRemove.Add(orderLine); + } + foreach (var orderLine in linesToRemove) + { order.OrderLines.Remove(orderLine); Services.OrderLines.Delete(orderLine.Id); }