Ist es möglich, eine Produktkollektion mit einer Reihe von Produkt-IDs zu erstellen?
quelle
Ist es möglich, eine Produktkollektion mit einer Reihe von Produkt-IDs zu erstellen?
Bei einer instanziierten, aber nicht geladenen Sammlung $collection
und einer Reihe von Produkt-IDs $productIds
können Sie addIdFilter()
genau wie in Magento 1 Folgendes verwenden:
$collection->addIdFilter($productIds);
Um eine Sammlung zu instanziieren, können Sie eine injizieren \Magento\Catalog\Model\ResourceModel\Product\CollectionFactory
und dann verwenden
$collection = $this->collectionFactory->create();
Dies wird jedoch nicht mehr empfohlen!
In Magento 2 sollten Sie bei der Verwendung von Kernmodulen nicht mehr zu viel über Sammlungen nachdenken. Sie sind lediglich ein Implementierungsdetail. Verwenden Sie stattdessen die Serviceverträge:
Magento\Catalog\Api\ProductRepositoryInterface
und\Magento\Framework\Api\SearchCriteriaBuilder
use Magento\Framework\Api\Filter;
Erstellen Sie ein Suchkriterium und übergeben Sie es an $productRepository->getList()
:
$searchCriteria = $this->searchCriteriaBuilder->addFilter(new Filter([
Filter::KEY_FIELD => 'entity_id',
Filter::KEY_CONDITION_TYPE => 'in',
Filter::KEY_VALUE => $productIds
]))->create();
$products = $this->productRepository->getList($searchCriteria)->getItems();
$products
dann ist eine Reihe von Produkten.
Verwenden Sie SearchCriteria und Product Repositories:
Um den Builder für Suchkriterien und das Produkt-Repository-Objekt zu erhalten, müssen Sie Folgendes benötigen:
quelle
quelle