Di Magento 2, dapatkah Anda menggunakan repositori produk untuk memfilter menurut atribut produk?
Di Magento 2, Anda dapat menggunakan objek kriteria pencarian
\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria,
dan repositori
\Magento\Catalog\Api\ProductRepositoryInterface $productRepository,
Untuk mengambil daftar objek
$searchCriteria->getPageSize(10);
$list = $productRepository->getList($searchCriteria);
Namun, objek searchCriteria tidak (tampaknya?) Memiliki kemampuan penyaringan langsung. Kelas kriteria pencarian memang memiliki metode untuk menambahkan sesuatu yang disebut 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);
}
Tapi tidak jelas apa, tepatnya, grup filter berkat array PHP yang tidak diketik.
Bagaimana saya bisa menggunakan repositori Magento 2 untuk melakukan hal-hal seperti
- Tunjukkan semua produk dengan [SKU spesifik ini]
- Tunjukkan semua produk yang dibuat setelah [tanggal ini]
- dll.
2
Tampaknya grup tersebut adalah array dari Magento \ Framework \ Api \ Search \ FilterGroup, yang pada gilirannya memiliki filter \ Magento \ Framework \ Api \ Filter, filter dapat dibangun dengan \ Magento \ Framework \ Api \ FilterBuilder dan condition_type ada di bentuk 'eq', 'neq', 'gt' dll. Tetapi tidak dapat menemukan daftar jenis kondisi yang didukung: \
—
Petar Dzhambazov
Sebenarnya, sesuatu seperti daftar dapat ditemukan di Magento / Framework / Api / KriteriaInterface.php: 79
—
Petar Dzhambazov