我正在尝试创建一个自定义命令,在其中我想利用 Shopware 6 的动态产品组功能来获取与特定产品组(又称产品流)中的过滤器匹配的产品。我这样做是为了最初获取流,但我不知道如何应用过滤器来获取产品。 $streamCriteria = new Criteria($productStreamIds); $streamCriteria->addAssociation('productCrossSellings'); $streamCriteria->addAssociation('productExports'); $streamCriteria->addAssociation('filters'); $streams = $this->streamRepository->search($streamCriteria, $context)->getEntities(); /** @var ProductStreamEntity $stream */ foreach ($streams as $stream) { foreach ($stream->getFilters() as $filter) { $productCriteria->addAggregation($filter); // DOES NOT WORK $productCriteria->addFilter($filter); // DOES NOT WORK EITHER } }我试图获取这filters给了我在产品流中应用的过滤器数组,但由于不同的预期类型,它并不直接适用于criteria->addFilter()。和productCrossSellings关联productExports也全部返回null(虽然我不知道这些变量有什么用,但我想也许它在内部以某种方式用于获取该组的关联产品)。所以我的问题是,我们如何获得与产品组中的过滤器匹配的产品?
1 回答
天涯尽头无女友
TA贡献1831条经验 获得超9个赞
您可以检查\Shopware\Core\Content\ProductStream\Service\ProductStreamBuilder
它的使用方式\Shopware\Core\Content\Product\SalesChannel\CrossSelling\SalesChannelCrossSellingController::loadProductsForCrossSelling
我希望这会有所帮助。
- 1 回答
- 0 关注
- 85 浏览
添加回答
举报
0/150
提交
取消