Фильтрация товаров по опциями товаров через XPDO

Добрый день, подскажите по синтаксису, пожалуйста.

Вот кусок кода, я делаю фильтрацию по опциями товаров, как мне сделать фильтрацию сразу по двум опциями?

$criteria = $modx->newQuery('msProduct');
$criteria->sortby('menuindex', 'ASC');
$criteria->where(array(
    'id:IN' => $array_ids,
    'published' => 1,
    'class_key' => 'msProduct',

    array('msProductOption.key' => "tolschina_paneli_mm", 'msProductOption.value:IN'=> array("1","1.1")),
    array('msProductOption.key' => "ploschad_rabochaya_poleznaya_kvm", 'msProductOption.value:IN'=> array("0.84"))
));
$criteria->innerJoin('msProductOption', 'msProductOption', 'msProduct.id=msProductOption.product_id');

$resources = $modx->getCollection('msProduct',$criteria);
perfkirill
22 апреля 2021, 15:51
modx.pro
520
0

Комментарии: 1

perfkirill
22 апреля 2021, 16:28
0
также пробую делать так, тоже не выходит, в чем я не прав?

$array_ids = $modx->getChildIds($parents,6);


$criteria = $modx->newQuery('msProduct');
$criteria->sortby('menuindex', 'ASC');

$criteria->innerJoin('msProductOption', 'msProductOption', 'msProduct.id=msProductOption.product_id');
$criteria->innerJoin('msProductOption', 'msProductOption2', 'msProduct.id=msProductOption2.product_id');
$criteria->select(['msProduct.id', 'msProduct.parent']);

$criteria->where(array(
    'id:IN' => $array_ids,
    'published' => 1,
    'class_key' => 'msProduct',

    array('msProductOption.key' => "tolschina_paneli_mm", 'msProductOption.value:IN'=> array("1","1.1")),
    array('msProductOption2.key' => "ploschad_rabochaya_poleznaya_kvm", 'msProductOption2.value'=> array("0.84"))
));


$resources = $modx->getCollection('msProduct',$criteria); 
echo count($resources);
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    1