我正在使用NopCommerce。我想在类别主页上显示前三畅销产品。
我知道在视图端使用CategoryTemplate.ProductsInGridOrLines.cshtml
和控制器端CatalogController.cs > HomepageBestSellers
方法。
我已将类别ID作为参数传递给HomepageBestSellers方法。此类别ID作为参数传递给BestSellersReport方法。
我的问题是如何使用类别ID在类别主页上显示畅销产品?
答案 0 :(得分:7)
在此方法中,您应该使用BestSellersReport方法,如下所示:
_orderReportService.BestSellersReport(storeId:_storeContext.CurrentStore.Id,categoryId:categoryId)
这个新方法与CatalogController中的HomepageBestSellers非常相似。看看它是如何完成的。
答案 1 :(得分:0)
NopeCommerce中的畅销产品代码
#region bestsellers and products
[ChildActionOnly]
public ActionResult BestSellProduct(int categoryId)
{
//load and cache report
var report = _orderReportService.BestSellersReport(storeId: _storeContext.CurrentStore.Id, categoryId: categoryId);
//load products
var products = _productService.GetProductsByIds(report.Select(x => x.ProductId).ToArray());
//ACL and store mapping
products = products.Where(p => _aclService.Authorize(p) && _storeMappingService.Authorize(p)).ToList();
//availability dates
products = products.Where(p => p.IsAvailable()).ToList();
if (!products.Any())
return Content("");
//prepare model
var model = PrepareProductOverviewModels(products, true, true, categoryId).ToList();
return PartialView(model);
}
#endregion