Magento 2'de ürün özelliklerine göre filtrelemek için bir ürün deposu kullanabilir misiniz?
Magento 2'de bir arama kriteri nesnesi kullanabilirsiniz.
\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria,
ve bir depo
\Magento\Catalog\Api\ProductRepositoryInterface $productRepository,
Nesnelerin listesini almak için
$searchCriteria->getPageSize(10);
$list = $productRepository->getList($searchCriteria);
Ancak, searchCriteria nesnesi (görünüşte?) Doğrudan filtreleme özelliklerine sahip değildir. Arama kriterleri sınıfı yok bir şey denilen filterGroups eklemek için yöntemleriniz var
#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);
}
Ancak, bir filtre grubunun PHP'nin yazılmamış dizileri sayesinde tam olarak ne olduğu belli değil.
Magento 2 deposunu gibi şeyler yapmak için nasıl kullanabilirim
- [Bu özel SKU] ile tüm ürünleri göster
- [Bu tarihten sonra] sonra oluşturulan tüm ürünleri göster
- vb.
2
Sözü edilen grupların bir Magento \ Framework \ Api \ Search \ FilterGroup dizisi olduğu anlaşılıyor; sırayla \ Magento \ Framework \ Api \ Filter filtreleri var, filtreler \ Magento \ Framework \ Api \ FilterBuilder ile oluşturulmuş ve koşul_tipi içinde 'eq', 'neq', 'gt' vb. Ancak desteklenen koşul türlerinin listesini bulamadım: \
—
Petar Dzhambazov
Aslında, bir liste gibi bir şey Magento / Framework / Api / CriteriaInterface.php adresinde bulunabilir: 79
—
Petar Dzhambazov 20:15