начала выборки
$depth = 10; // глубина выборки по дочерним категориям
$limit = 200; // ограничение результатов
$q = $modx->newQuery('msProduct');
$q->innerJoin('msProductData', 'Data', 'msProduct.id = Data.id');
$q->innerJoin('msVendor', 'Vendor', 'Data.vendor = Vendor.id');
$q->leftJoin('msCategoryMember', 'Member', 'Member.product_id = msProduct.id');
$q->select('Vendor.id, Vendor.name, Vendor.logo, Vendor.description');
$q->groupby('Vendor.id');
$q->sortby('Vendor.name');
$q->limit($limit);
$parents = $modx->getChildIds($category, $depth);
$parents[] = $category;
$q->where(array('msProduct.parent:IN' => $parents));
$q->orCondition(array('Member.category_id:IN' => $parents));
if ($q->prepare() && $q->stmt->execute()) {
$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
foreach ($res as $elem) {
echo '<div>'.$elem['id'].' - '.$elem['name'].' - '.$elem['logo'].' - '.$elem['description'].'</div>';
}
}
А вот еще скрипт нашел тут, но почему-то он не работает
Может его чуть подправить
Вот этот скрипт выводит бренды из категории, но только если там товар лежит уже, а из подкатегорий нет Категория - товар А надо Категория - Подкатегория — товар - Подкатегория — товар
Делайте 'getChildrensIds()' И уже их вставляйте в ваш запрос вместо родителя
да я примерно написал главное вы же поняли суть
Обсуждают сегодня