Hybris 6.5:以Excel格式在PLP页面中导出搜索结果

2020-09-15 05:13发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们需要以excel格式从PLP页面导出搜索结果,因此文件中的产品数量应等于页面中显示的数量。 当前,搜索结果将仅包含100种产品的数据(页面中没有产品显示)。 任何建议/想法都一样。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我们需要以excel格式从PLP页面导出搜索结果,因此文件中的产品数量应等于页面中显示的数量。 当前,搜索结果将仅包含100种产品的数据(页面中没有产品显示)。 任何建议/想法都一样。

付费偷看设置
发送
7条回答
灬番茄
1楼-- · 2020-09-15 05:40

抱歉,没有收到您的问题。

例如,Solr返回的总结果为72,而您的第一页仅显示24个结果。 然后第二页显示结果25到48,然后第三页显示49到72。

您是否希望仅在某些用户操作下先导出24个,然后再导出下一个24个,或者
您是否希望一次性导出所有72个?

该策略将取决于您希望多长时间出口一次这些产品? 如果可以的话,出口中是否可以包含任何过时的数据(例如价格)?

如果您需要进一步的帮助,请通过 saurabh24grover@gmail.com 与我联系。

樱桃小丸子0093
2楼-- · 2020-09-15 05:33

:正确答案,而不是根据要求的最佳答案。

奄奄一息的小鱼
3楼-- · 2020-09-15 05:32

这是不可取的,因为如果说,如果您有2000个类别的产品,则必须从solr中获取所有产品。 官方solr文档说,它适用于较小的结果集。

从solr获取2000结果也会减慢页面加载速度。

如果必须在每次页面加载时都这样做,我个人认为这是一个疯狂的主意。 例如,假设您的网站上有500位活跃用户,其中10%的用户通过单击类别点击了PLP,而10%的用户通过搜索点击了PLP。 这意味着达到PLP 100次。 每次您获取大量产品时,因为您的要求是获取整个数据集。

所以,现在的下一个问题是,您是否必须针对每次页面加载还是一天只执行一次或两次?

SAP小黑
4楼-- · 2020-09-15 05:34

嗨,我们的想法是在PLP页面中引入一种新的下载功能。 当用户单击下载按钮时,则必须在整个搜索结果的后台下载(不影响任何其他功能)(在我们的网站中最多18k)。 因此,将结果加载到页面上将仅基于定义的分页。 请让我知道任何建议。

bbpeas
5楼-- · 2020-09-15 05:37

:假设,如果我通过单击名为"包"的类别进入PLP页面,并且您执行了相同的操作,则我们都将下载相同的文件。 本质上,我试图建立的是文件内容仅基于类别而不是用户。

我能想到的最好的方法是每当用户单击"下载"按钮时都生成一个事件。 因此,创建一个名为PLPCrazyFileDownloadController的控制器,并创建一个名为downloadFileForCategory的函数。 在此处传递类别代码。 参见下面的代码

  @Controller
  @RequestMapping("/img/downloadexcel")
  公共类PLPCrazyFileDownloadController {
 
    @RequestMapping("/img/{category}",method = RequestMethod.POST)
    公共字符串downloadFileForCategory(@PathVariable最终字符串类别)
    {
          //使用与类别页面相同的查询击中solr并赋予页面
         //大小为10000
         
    }
  }

  

假设您在"手表"类别的PLP页面上。 一旦您使用category ='watches'且没有pageSize属性或 pageSize = 命中solr。 Solr将为您提供与此类别有关的所有结果。 现在,您将不得不将这些结果转换为您的ProductData并将其写入excel并将该excel发送给用户。

现在我是你了,我对需求团队的问题是,我们总共有多少个类别? 如果总共有200-300个类别,则在将"手表"类别文件发送给用户之前。 我会将这个文件保存在hybris/data/category-excels/文件夹中,名称为watchs.xls。 每当第二个,第三个或第四个用户想要此文件时。 我不会打solr,但给他们相同的文件。

假设您的完整solr索引每天运行一次。 一旦完整的solr索引成功,我将删除所有这些文件,然后第二天早上的第一个请求将再次生成这些文件。

因此,基本上,如果一天有1000个客户点击下载按钮,则在运行完整的solr索引时,您只会生成一次文件,接下来的999个客户将获得相同的文件。

这类似于24小时后使缓存失效。 Solr索引成功后,您必须使文件无效。

让我知道您的生活,如果有帮助,请喜欢我的回答。 这样其他人也可以受益。

南山jay
6楼-- · 2020-09-15 05:31

yup,pageSize和offset。 如果pageSize为36且offset为0,则将获得0到36个结果。 如果pageSize为36且offset为10,则将获得10到46个结果

如果pageSize为100,偏移量为0,则将获得100个结果。

因此,pageSize控制结果数,而offset控制从何处开始计数。 我建议您准备好Solr文档并调试CategoryPageController和SearchPageController

祝你好运。

一周热门 更多>