Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
492a96e
feat: Add price and section ID to configuration items and include pro…
alexeyshibanov Dec 9, 2025
e38fca4
feat: Implement product snapshot saving in customer orders
alexeyshibanov Jan 25, 2026
d6128c9
feat: Filter configuration items for checkout in customer orders
alexeyshibanov Jan 25, 2026
c127f04
feat: Update dependency versions for variation configuration type
alexeyshibanov Jan 25, 2026
7b3fcb3
feat: Update product retrieval method to use GetNoCloneAsync without …
alexeyshibanov Jan 25, 2026
3b80d66
feat: Refactor order indexing logic (#476)
alexeyshibanov Dec 19, 2025
6b368a1
feat: Add LineItemId property to ConfigurationItem and update entity …
alexeyshibanov Jan 27, 2026
c7fd2ed
feat: Update dependency versions for Cart and Catalog modules
alexeyshibanov Jan 27, 2026
103b4b5
Merge origin/dev into feat/variation-configuration-type
alexeyshibanov Jan 28, 2026
4c40d22
Update dependencies to Wave 1 alpha versions
alexeyshibanov Jan 28, 2026
5a174e9
Update module.manifest dependencies to Wave 1 alpha versions
alexeyshibanov Jan 28, 2026
4dfe5a7
Merge remote-tracking branch 'origin/dev' into feat/variation-configu…
alexeyshibanov Feb 18, 2026
bd9d7bf
chore: Update Catalog and Cart dependencies to alpha versions
alexeyshibanov Feb 18, 2026
70f3fae
chore: remove .serena from version control
alexeyshibanov Mar 9, 2026
b880849
refactor: use ProductJsonSerializer from CatalogModule.Core instead o…
alexeyshibanov Mar 10, 2026
6ab6c85
refactor: narrow snapshot response group + fix LineItem.Clone for Con…
alexeyshibanov Mar 10, 2026
6113f92
Merge remote-tracking branch 'origin/dev' into feat/variation-configu…
alexeyshibanov Mar 10, 2026
d061d63
chore: update CatalogModule.Core to 3.1007.0-alpha.2486
alexeyshibanov Mar 10, 2026
52f8ed9
fix: make ConfigurationItem.Clone() virtual for subclass support
alexeyshibanov Mar 11, 2026
e18a13e
Merge branch 'dev' into feat/variation-configuration-type
OlegoO Mar 12, 2026
af2a777
Bump versions to release
OlegoO Mar 13, 2026
a65e081
Bump platform version to 3.1004
OlegoO Mar 13, 2026
aeddade
Fix versions
OlegoO Mar 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="VirtoCommerce.Platform.Data.SqlServer" Version="3.1002.0" />
<PackageReference Include="VirtoCommerce.Platform.Data.SqlServer" Version="3.1004.0" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\..\src\VirtoCommerce.OrdersModule.Core\VirtoCommerce.OrdersModule.Core.csproj" />
Expand Down
17 changes: 15 additions & 2 deletions src/VirtoCommerce.OrdersModule.Core/Model/ConfigurationItem.cs
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
using System;
using System.Collections.Generic;
using System.Linq;
using VirtoCommerce.Platform.Core.Common;
Expand All @@ -6,16 +7,26 @@
namespace VirtoCommerce.OrdersModule.Core.Model;

[SwaggerSchemaId("OrderConfigurationItem")]
public class ConfigurationItem : AuditableEntity
public class ConfigurationItem : AuditableEntity, ICloneable
{
public string LineItemId { get; set; }

public string ProductId { get; set; }

public string SectionId { get; set; }

public string Name { get; set; }

public string Sku { get; set; }

public int Quantity { get; set; }

public decimal Price { get; set; }

public decimal SalePrice { get; set; }

public virtual decimal ExtendedPrice => SalePrice * Quantity;

public string ImageUrl { get; set; }

public string CatalogId { get; set; }
Expand All @@ -26,9 +37,11 @@ public class ConfigurationItem : AuditableEntity

public string CustomText { get; set; }

public string ProductSnapshot { get; set; }

public IList<ConfigurationItemFile> Files { get; set; }

public object Clone()
public virtual object Clone()
{
var result = (ConfigurationItem)MemberwiseClone();

Expand Down
17 changes: 12 additions & 5 deletions src/VirtoCommerce.OrdersModule.Core/Model/LineItem.cs
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public class LineItem : AuditableEntity, IHasOuterId, IHasTaxDetalization, ISupp

public decimal DiscountTotalWithTax { get; set; }

//Any extra Fee
//Any extra Fee
public virtual decimal Fee { get; set; }

public virtual decimal FeeWithTax { get; set; }
Expand Down Expand Up @@ -109,6 +109,8 @@ public class LineItem : AuditableEntity, IHasOuterId, IHasTaxDetalization, ISupp

public bool IsConfigured { get; set; }

public string ProductSnapshot { get; set; }

#region IHaveDimension Members

public string WeightUnit { get; set; }
Expand Down Expand Up @@ -191,22 +193,27 @@ public virtual object Clone()

if (DynamicProperties != null)
{
result.DynamicProperties = new List<DynamicObjectProperty>(DynamicProperties.Select(x => x.Clone() as DynamicObjectProperty));
result.DynamicProperties = DynamicProperties.Select(x => x.CloneTyped()).ToList();
}

if (Discounts != null)
{
result.Discounts = new List<Discount>(Discounts.Select(x => x.Clone() as Discount));
result.Discounts = Discounts.Select(x => x.CloneTyped()).ToList();
}

if (TaxDetails != null)
{
result.TaxDetails = new List<TaxDetail>(TaxDetails.Select(x => x.Clone() as TaxDetail));
result.TaxDetails = TaxDetails.Select(x => x.CloneTyped()).ToList();
}

if (FeeDetails != null)
{
result.FeeDetails = new List<FeeDetail>(FeeDetails.Select(x => x.Clone() as FeeDetail));
result.FeeDetails = FeeDetails.Select(x => x.CloneTyped()).ToList();
}

if (ConfigurationItems != null)
{
result.ConfigurationItems = ConfigurationItems.Select(x => x.CloneTyped()).ToList();
}

return result;
Expand Down
9 changes: 9 additions & 0 deletions src/VirtoCommerce.OrdersModule.Core/ModuleConstants.cs
Original file line number Diff line number Diff line change
Expand Up @@ -278,6 +278,14 @@ public static class General
IsPublic = true,
};

public static SettingDescriptor ProductSnapshotEnabled { get; } = new SettingDescriptor
{
Name = "Order.ProductSnapshot.Enable",
GroupName = "Orders|Products",
ValueType = SettingValueType.Boolean,
DefaultValue = false,
};

public static SettingDescriptor MaxOrderDocumentCount { get; } = new SettingDescriptor
{
Name = "Order.MaxOrderDocumentCount",
Expand Down Expand Up @@ -327,6 +335,7 @@ public static IEnumerable<SettingDescriptor> AllSettings
yield return PurchasedProductIndexation;
yield return EventBasedPurchasedProductIndexation;
yield return PurchasedProductStoreFilter;
yield return ProductSnapshotEnabled;
yield return MaxOrderDocumentCount;
yield return DashboardStatisticsEnabled;
yield return DashboardStatisticsRangeMonths;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@
</PropertyGroup>
<ItemGroup>

<PackageReference Include="VirtoCommerce.CartModule.Core" Version="3.1000.0" />
<PackageReference Include="VirtoCommerce.CartModule.Core" Version="3.1002.0" />
<PackageReference Include="VirtoCommerce.CoreModule.Core" Version="3.1000.0" />
<PackageReference Include="VirtoCommerce.CustomerModule.Core" Version="3.1000.0" />
<PackageReference Include="VirtoCommerce.NotificationsModule.Core" Version="3.1000.0" />
<PackageReference Include="VirtoCommerce.PaymentModule.Core" Version="3.1000.0" />
<PackageReference Include="VirtoCommerce.Platform.Core" Version="3.1002.0" />
<PackageReference Include="VirtoCommerce.Platform.Core" Version="3.1004.0" />
<PackageReference Include="VirtoCommerce.ShippingModule.Core" Version="3.1000.0" />
<PackageReference Include="VirtoCommerce.StoreModule.Core" Version="3.1000.0" />
<PackageReference Include="VirtoCommerce.SearchModule.Core" Version="3.1000.0" />
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using VirtoCommerce.OrdersModule.Data.Model;

namespace VirtoCommerce.OrdersModule.Data.MySql
{
public class ConfigurationItemEntityConfiguration : IEntityTypeConfiguration<ConfigurationItemEntity>
{
public void Configure(EntityTypeBuilder<ConfigurationItemEntity> builder)
{
builder.Property(x => x.Price).HasColumnType("decimal").HasPrecision(18, 4);
builder.Property(x => x.SalePrice).HasColumnType("decimal").HasPrecision(18, 4);
}
}
}
Loading
Loading