如何从 Shopware 6 中的产品流 ID 获取产品?

我正在尝试创建一个自定义命令,在其中我想利用 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(虽然我不知道这些变量有什么用,但我想也许它在内部以某种方式用于获取该组的关联产品)。

所以我的问题是,我们如何获得与产品组中的过滤器匹配的产品?


小唯快跑啊
浏览 97回答 1
1回答

天涯尽头无女友

您可以检查\Shopware\Core\Content\ProductStream\Service\ProductStreamBuilder 它的使用方式\Shopware\Core\Content\Product\SalesChannel\CrossSelling\SalesChannelCrossSellingController::loadProductsForCrossSelling我希望这会有所帮助。
打开App,查看更多内容
随时随地看视频慕课网APP