asp.net 核心电子商务产品变体 UI

asp.net core e-commerce product variations UI

我决定在 asp.net 核心建立一个电子商务网站,但我还没有走得太远,我仍在努力敲定产品细节,但当它出现时我被卡住了谈到改变价格的产品变体/属性,以及我将如何允许用户创建这些变体而无需他们完全重新创建产品。

这个问题很相似,但没有回答我的问题,因为它没有显示价格变化,也没有显示您如何允许用户在创建产品时添加这些东西: How to show product variation in detail page in ASP.NET 到目前为止,我的产品型号是这样的:

    public class Product
{
    [Key]
    public Guid Id { get; set; }

    [ForeignKey("Brand")]
    public Guid? BrandId { get; set; }
    public Brand Brand { get; set; }

    public string Name { get; set; }
    public ICollection<ProductCategory> Categories { get; set; }

    [Column(TypeName = "money")]
    public decimal BaseCost { get; set; }
    public ICollection<ProductAttribute> ProductAttributes { get; set; }

    public Guid TaxTypeId { get; set; }
    public TaxType TaxType { get; set; }

    public double? Weight { get; set; }

    public decimal? ProductHeight { get; set; }
    public decimal? ProductWidth { get; set; }
    public decimal? ProductDepth { get; set; }

    public string MainImageUrl { get; set; }
    public string MainThumbnailUrl { get; set; }

    public ICollection<ProductGalleryImage> ProductGalleryImages { get; set; }
} 

这是我的属性

public class ProductAttribute
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public ICollection<AttributeValue> Values { get; set; }
}
public class AttributeValue
{
    public string Name { get; set; }
    public decimal Cost { get; set; }
}

如您所见,每个属性都有一个名称和一个 "values" 的集合,每个 "value" 也有一个名称和一个成本。这是为了允许这样的事情:通用鞋 - 尺寸 10,50 英镑 ||尺码 5 £25

如果这些是没有 add/change 价格的通用设置值(尺寸、颜色),我可能只是让用户从产品中单独创建它们(事实上,这可能仍然是一个选项),并在产品创建期间使用令牌字段或其他东西添加属性。

我环顾四周,没能找到最好的方法,在我尝试让它工作之前,一切似乎都很简单!如果价格没有因变化而改变,我会笑的(可能卡在别处了!)。也许我可以让用户制作产品,然后重定向到一个表单,通过 ajax 一次添加一个属性/变体!?人们对此有何看法,完成这项工作的最佳方式是什么?如果有人能让我开始或指出我的方向,我将不胜感激!现在是 2:20am,所以我要去睡觉了,哈哈,又是一个深夜,我的头在我的桌子上撞来撞去!

马克,

您是对的,当您开始查看可能会或可能不会改变产品成本的产品属性时,事情会变得非常困难。我从事过许多电子商务解决方案,我们总能找到最好的方法是用户创建具有标准定义的产品。

然后他们可以添加附加到产品的属性。这通常是在带有 AJAX 模型、帖子等的网格中完成的。这个概念与您在上面列出的差不多,是我们通常采用的方式。

对于属性,我们允许用户创建一个属性(未绑定到产品),即尺寸、颜色等。然后他们可以将该属性添加到产品并提供该产品可用的值具体来说。这允许他们重复使用相同的属性,但为每个产品提供不同的值。

现在这更进一步,因为它可能会或可能不会影响价格,但也可能会影响产品的库存水平。假设您有 10 件粉色 5 号鞋,但只有 2 件蓝色 5 号鞋。

我知道这并没有直接告诉您如何做,而是让您了解如何实现。

现在有一个非常好的开源参考。检查 NopCommerce 产品属性和属性组合。

免责声明。我不为 NopCommerce 工作,但在该平台上做了很多工作。