Working with Product Lists
The API for getting (and filtering, ...) products out of the Product Index are so called Product Lists. They all
implement the interface \Pimcore\Bundle\EcommerceFrameworkBundle\IndexService\ProductList\IProductList
and need to be
Product Index implementation specific. Detailed method documentation is available in
in-source documentation.
For how to get a Product List instance suitable for the current Product Index implementation and filter for products see following code sample:
<?php
$list = \Pimcore\Bundle\EcommerceFrameworkBundle\Factory::getInstance()->getIndexService()->getProductListForCurrentTenant();
$list->addCondition("name = 'testproduct'", 'name');
$list->addRelationCondition('category', "dest IN (1024,1025,1026)");
$list->setOrder("ASC");
$list->setOrderKey('name');
$list->load();
All filtered attributes need to be in the Product Index. The Product List implements all iterator and paginator
interfaces and can be used in foreach loops and in combination with Zend\Paginator
.
For logging standard Symfony logging is used. E-Commerce Framework Product Indices log into special channels like
pimcore_ecommerce_indexupdater
,pimcore_ecommerce_sql
,pimcore_ecommerce_factfinder
,pimcore_ecommerce_es
andpimcore_ecommerce_findologic
.