No Magento 2, você pode usar um repositório de produtos para filtrar por atributos do produto?
No Magento 2, você pode usar um objeto de critério de pesquisa
\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria,
e um repositório
\Magento\Catalog\Api\ProductRepositoryInterface $productRepository,
Para buscar uma lista de objetos
$searchCriteria->getPageSize(10);
$list = $productRepository->getList($searchCriteria);
No entanto, o objeto searchCriteria não (parece?) Possui recursos de filtragem direta. A classe critérios de pesquisa não têm métodos para adicionar algo chamado filterGroups
#File: lib/internal/Magento/Framework/Api/SearchCriteria.php
public function getFilterGroups()
{
$filterGroups = $this->_get(self::FILTER_GROUPS);
return is_array($filterGroups) ? $filterGroups : [];
}
public function setFilterGroups(array $filterGroups = null)
{
return $this->setData(self::FILTER_GROUPS, $filterGroups);
}
Mas não está claro o que exatamente um grupo de filtros é graças às matrizes não tipadas do PHP.
Como posso usar um repositório Magento 2 para fazer coisas como
- Mostre-me todos os produtos com [este SKU específico]
- Mostre-me todos os produtos criados após [esta data]
- etc.
2
Parece que esses grupos são uma matriz do Magento \ Framework \ Api \ Search \ FilterGroup, que por sua vez possui filtros \ Magento \ Framework \ Api \ Filter, os filtros podem ser criados com o \ Magento \ Framework \ Api \ FilterBuilder e o condition_type está em a forma de 'eq', 'neq', 'gt' etc. etc. Mas não foi possível encontrar a lista dos tipos de condição suportados: \
—
Petar Dzhambazov
Na verdade, algo como uma lista pode ser encontrada em Magento / Framework / Api / CriteriaInterface.php: 79
—
Petar Dzhambazov