E commerce Kentico电子商务:获得最畅销类别

E commerce Kentico电子商务:获得最畅销类别,e-commerce,kentico,E Commerce,Kentico,我使用的是Kentico7.0,电子商务版本 我想创建一个侧栏菜单,显示eshop最畅销的产品类别。我是kentico的新手,因此我正在四处寻找正确的术语/指导,以便能够深入挖掘 在我看来,理想的方法是能够在类别上添加一个字段,用于过滤菜单中的类别。通过这种方式,我可以根据销售额自动更新字段,或者为管理员提供手动覆盖,以指定是否在菜单上显示类别。当然,还需要某种权重来指定菜单项的顺序 我应该怎么看?您是否尝试过使用可用的“销售前N名产品”web部件?您可以配置从内容树(产品)的哪个部分提取数据-

我使用的是Kentico7.0,电子商务版本

我想创建一个侧栏菜单,显示eshop最畅销的产品类别。我是kentico的新手,因此我正在四处寻找正确的术语/指导,以便能够深入挖掘

在我看来,理想的方法是能够在类别上添加一个字段,用于过滤菜单中的类别。通过这种方式,我可以根据销售额自动更新字段,或者为管理员提供手动覆盖,以指定是否在菜单上显示类别。当然,还需要某种权重来指定菜单项的顺序


我应该怎么看?

您是否尝试过使用可用的“销售前N名产品”web部件?您可以配置从内容树(产品)的哪个部分提取数据-在Path属性中,您还可以使用动态解析的路径表达式或宏,以便web部件可以在不同的部分显示不同的产品。

为Kentico编写代码的方法很多。我个人觉得API有点笨重,在很多情况下,我很惊讶没有一个方法需要额外的调用才能得到所需的结果。在将数据放入Kentico时,我确实更多地使用Kentico API。我用下面的方法把它拔出来

存储过程

编写一个SQL存储过程,以获取前X个类别-GetTop5类别

查看COM_*表,特别是COM_OrderItem,将OrderItemSKUID链接回COM_SKU(如果需要访问IA,请查看加入的COM_SKU)

这将为您提供最畅销的产品,包括一个group by、一个count、一个top X和一个order by

然后,您可以链接到其他表,如CMS_类别或CMS_文档(取决于您设置类别的方式)。这样做的好处是编译过程,您在那里执行所有数据操作(这是MSSQL的专长!),并且只在结果集中返回您需要的内容

域(利用EF)

我通常创建一个单独的类库项目myproject.domain,并将实体框架edmx映射回Kentico DB。将proc添加到EDMX,然后从新导入的proc创建函数Import MyProject_getopt5categories

从web项目中添加对域项目的引用,并在控件的代码隐藏顶部添加“using”

使用myproject.domain

然后在页面中加载控件:

if(!IsPostBack)
{
var entities=新的MyProjectModelContainer();
var list=entities.MyProject_GetTop5Categories().ToList();
StringBuilder sb=新的StringBuilder(“
    ”); foreach(列表中的var类别) { 某人加上(“
  • ”); } 某人加上(“
      ”); listPlaceHolder=sb.ToString(); }
手写的,所以可能有一两个打字错误:)


HTH

我对展示最畅销的产品不感兴趣。我对销售类别感兴趣(显示包含最畅销产品的类别)。
if(!IsPostBack)
{

var entities = new MyProjectModelContainer();
var list = entities.MyProject_GetTop5Categories().ToList();
StringBuilder sb = new StringBuilder("<ul>");
foreach(var category in list)
{
   sb.Append("<li><a href='"+category.Link+"'>" + category.Name + "</a></li>");
}
sb.Append("<ul>");

listPlaceHolder = sb.ToString();

}