我想在客户访问产品时增加产品的计数器。我没有插件就完成了这个
首先我在productservice
中制作了插入方法:
public virtual void InsertMostViewProduct(int productid)
{
var query = from u in _mostviewRepository.Table
where u.ProductId == productid
select u;
if (query.Count()==0)
{
//insert
var Insertproduct = new MostViewProduct();
Insertproduct.ProductId = productid;
Insertproduct.ProductCount = 1;
_mostviewRepository.Insert(Insertproduct);
//event notification
_eventPublisher.EntityInserted(Insertproduct);
}
else
{
//Update
var product = query.FirstOrDefault();
product.ProductCount = product.ProductCount + 1;
_mostviewRepository.Update(product);
// _eventPublisher.EntityUpdated(Updateproduct);
}
}
并在PrepareProductDetailsPageModel
中调用此方法:
#region MostViewProduct
_productService.InsertMostViewProduct(product.Id);
#endregion
如何将prepareProductdetailpage
方法从catalogController
调用到我的插件控制器?
答案 0 :(得分:1)
如果查看代码,PrepareProductDetailsPageModel
不适合您的代码,因为它也会为相关产品列表调用。此外,我建议您尽可能不修改nopCommerce代码。
我的建议是在您的插件中执行此操作。覆盖插件中IRecentlyViewedProductsService
的实现,每次用户访问产品页面时都会调用此服务。