Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento 2-将最终价格和网站添加到产品集合中_Magento_Collections_Magento2 - Fatal编程技术网

Magento 2-将最终价格和网站添加到产品集合中

Magento 2-将最终价格和网站添加到产品集合中,magento,collections,magento2,Magento,Collections,Magento2,我希望覆盖\app\code\Magento\Catalog\Model\ProductRepository.php中的标准Magento2 getList()方法 我尝试过$collection->addFinalPrice()和$collection->addMinimalPrice(),但是,即使在目录折扣生效时,仍然会返回完整的商品价格 如果我添加$collection->addWebsiteNamesToResult()-什么都不发生,我想添加一个网站列表,该产品被分配到该集合中-我将

我希望覆盖\app\code\Magento\Catalog\Model\ProductRepository.php中的标准Magento2 getList()方法

我尝试过$collection->addFinalPrice()和$collection->addMinimalPrice(),但是,即使在目录折扣生效时,仍然会返回完整的商品价格

如果我添加$collection->addWebsiteNamesToResult()-什么都不发生,我想添加一个网站列表,该产品被分配到该集合中-我将如何执行此操作

下面是一个已编辑代码的示例(仅用于测试目的)

  public function getList(\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria)
{
    /** @var \Magento\Catalog\Model\ResourceModel\Product\Collection $collection */
    $collection = $this->collectionFactory->create();
    $this->extensionAttributesJoinProcessor->process($collection);

    foreach ($this->metadataService->getList($this->searchCriteriaBuilder->create())->getItems() as $metadata) {
        $collection->addAttributeToSelect($metadata->getAttributeCode());
    }
    $collection->joinAttribute('status', 'catalog_product/status', 'entity_id', null, 'inner');
    $collection->joinAttribute('visibility', 'catalog_product/visibility', 'entity_id', null, 'inner');


    //Add filters from root filter group to the collection
    foreach ($searchCriteria->getFilterGroups() as $group) {
        $this->addFilterGroupToCollection($group, $collection);
    }
    /** @var SortOrder $sortOrder */
    foreach ((array)$searchCriteria->getSortOrders() as $sortOrder) {
        $field = $sortOrder->getField();
        $collection->addOrder(
            $field,
            ($sortOrder->getDirection() == SortOrder::SORT_ASC) ? 'ASC' : 'DESC'
        );
    }
    //ADDED CODE HERE------------------------------
    $collection->addWebsiteNamesToResult();
    $collection->addFinalPrice();
    $collection->applyFrontendPriceLimitations();
    //END ADDED CODE-----------------------------------

    $collection->setCurPage($searchCriteria->getCurrentPage());
    $collection->setPageSize($searchCriteria->getPageSize());
    $collection->load();

    $searchResult = $this->searchResultsFactory->create();
    $searchResult->setSearchCriteria($searchCriteria);
    $searchResult->setItems($collection->getItems());
    $searchResult->setTotalCount($collection->getSize());
    return $searchResult;
}