Tôi đã giải quyết điều này cho Magento 1. Bạn có thể xem câu trả lời ở đây .
Bạn có thể thử một cách tiếp cận tương tự trong M2. Không chắc chắn rằng nó sẽ làm việc, mặc dù.
Cờ neo được xem xét trong Magento\Catalog\Model\ResourceModel\Product\Collection::addCategoryFilter()
phương pháp.
Có thể nó sẽ hoạt động với một around
plugin, trong đó bạn đặt neo thành 0, sau đó thực hiện phương thức ban đầu và đặt lại về giá trị trước đó.
Một cái gì đó như thế này (chưa được kiểm tra):
public function aroundAddCategoryFilter(
\Magento\Catalog\Model\ResourceModel\Product\Collection $subject,
callable $proceed,
\Magento\Catalog\Model\Category $category
) {
//remember the category anchor flag
$anchor = $category->getIsAnchor();
//set anchor to 0.
$category->setIsAnchor(0);
//execute the original method and remember the result
$result = $proceed($category);
//set back the anchor flag on the category
$category->setIsAnchor($anchor);
//return what the original method returned;
return $result;
}
Thông tin thêm về cách tạo plugin trong tài liệu chính thức