【问题标题】:nopCommerce 3.0 How to get user selected store and category on product detail page?nopCommerce 3.0 如何在产品详细信息页面上获取用户选择的商店和类别?
【发布时间】:2013-05-23 04:19:46
【问题描述】:

我想像这样在产品详细信息页面上显示用户选择的商店和类别 商店名称类别名称> 产品名称。 如何从产品详细信息页面获取用户选择的商店和类别。我使用 nopCommerce 3.0。

【问题讨论】:

    标签: nopcommerce


    【解决方案1】:

    对于商店名称,您可以使用商店上下文对象:

    _storeContext.CurrentStore
    

    但是对于类别,您是否知道一个产品可以属于 nopCommerce 中的多个类别?这存储在Product 实体的ProductCategories 集合中。

    【讨论】:

    • 如果用户从某个类别中选择了当前产品,我想在产品详细信息页面上获取用户选择的类别值。这可能吗?
    • 我认为这可能有点复杂。首先,您需要处理用户直接从谷歌搜索结果进入产品详细信息页面的常见情况。其次,您需要确定您想要达到的持久性水平。是否要将上次访问的类别保存在数据库中?还是在饼干里?或者您想将所有访问过的类别的列表保存在堆栈中?或者您可能只需要从 URL 引荐来源 HTTP 标头中获取上次访问的类别。
    • 只记得 nopCommerce 保存了当前用户的最后访问页面。您可以使用MyCurrentCustomerObject.GetAttribute<string>(SystemCustomerAttributeNames.LastVisitedPage); 检索它,但您必须使用Url Record Service 来确定最后访问的页面是否用于某个类别并相应地加载该类别对象。 NopCommerce 使用 URL 记录服务将 SEO 友好的 URL 映射回实体。
    • 如何使用网址记录服务?我可以得到样品吗?
    • 只需搜索_urlRecordService的代码。这始终是任何 URL 记录服务实例的名称。这是管理 URL 记录的服务层类。我相信您在代码中查找后会发现它很简单。
    【解决方案2】:

    我有问题

    _storeContext.CurrentStore
    

    这每次都给我错误的商店信息,原因在这里描述

    plugin-get-current-storeid-multi-store

    所以我使用了从 NivoSlider 插件中获得的以下代码。

    var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext);

    _storeServiceIStoreService 的类型

    _workContextIWorkContext 的类型

    通过构造函数的依赖注入来使用它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多