2014-02-25 3 views
5

Я использую NopCommerce. Я хочу отображать 3 лучших бестселлера на домашней странице категории.NopCommerce: Показать товары бестселлера в категории главная страница

У меня есть идея, что на стороне обзора CategoryTemplate.ProductsInGridOrLines.cshtml и стороне контроллера CatalogController.cs > HomepageBestSellers способ используется.

Я передал идентификатор категории в качестве параметра для метода HomeBestSellers. Этот идентификатор категории передается методу BestSellersReport в качестве параметра.

Мой вопрос в том, как я могу использовать идентификатор категории для отображения товаров бестселлера на домашней странице категории?

ответ

7
  1. Вам необходимо создать новый метод действия для бестселлеров, в котором вы пройдете идентификатор категории.
  2. В этом методе вы должны использовать метод BestSellersReport как здесь:

    _orderReportService.BestSellersReport (StoreID: _storeContext.CurrentStore.Id, CategoryId: CategoryId)

  3. Этот новый метод очень похож на HomepageBestSellers в CatalogController. Посмотрите, как это делается.

  4. И вы должны создать представление, например Views \ Catalog \ HomeBestSellers.cshtml, и показать его там, где вам нужно.
+0

Прежде всего спасибо за ваш ответ ... – Tushar

+0

Пожалуйста, вы можете сказать мне, как я могу присоединиться к категории таблицы с таблицей заказа с помощью запроса? – Tushar

+0

Почему вы хотите это сделать? – mariann

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 
Смежные вопросы