Magento 2에서 제품 저장소를 사용하여 제품 속성별로 필터링 할 수 있습니까?
Magento 2에서는 검색 기준 개체를 사용할 수 있습니다
\Magento\Framework\Api\SearchCriteriaInterface $searchCriteria,
그리고 저장소
\Magento\Catalog\Api\ProductRepositoryInterface $productRepository,
객체 목록을 가져 오려면
$searchCriteria->getPageSize(10);
$list = $productRepository->getList($searchCriteria);
그러나 searchCriteria 객체에는 직접 필터링 기능이 없습니다. 검색 기준 클래스 에는 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);
}
그러나 PHP의 형식화되지 않은 배열 덕분에 필터 그룹이 정확히 무엇인지 명확하지 않습니다.
Magento 2 리포지토리를 사용하여 다음과 같은 작업을 수행하는 방법
- [이 특정 SKU]가 포함 된 모든 제품 표시
- [이 날짜] 이후에 생성 된 모든 제품 표시
- 기타
2
상기 그룹은 Magento \ Framework \ Api \ Search \ FilterGroup의 배열이며, \ Magento \ Framework \ Api \ Filter 필터가 있으며 \ Magento \ Framework \ Api \ FilterBuilder를 사용하여 필터를 빌드 할 수 있으며 condition_type은 'eq', 'neq', 'gt'등의 형식이지만 지원되는 조건 유형 목록을 찾을 수 없습니다. \
—
Petar Dzhambazov
실제로, 목록과 같은 것은 Magento / Framework / Api / CriteriaInterface.php : 79에서 찾을 수 있습니다
—
Petar Dzhambazov