Как сделать в сниппете выборку товаров minishop2 по дополнительному полю или опции и вывести их в чанк?
Добрый день. Помогите третий день мучаюсь. Как получить в сниппете товары minishop2 по дополнительному полю или опции и вывести их в чанк?
Комментарии: 5
1) Покажите ваш код, который надо доработать
2) msProducts не подходит под вашу задачу?
2) msProducts не подходит под вашу задачу?
<?php
$key = 'TIP_COPUS'; // имя опции товара
$category = 0; // фильтрация по категории
$param1 = $_GET['corpus'];
$q = $modx->newQuery('msProductOption');
$q->innerJoin('msProduct', 'msProduct', 'msProduct.id=msProductOption.product_id');
$q->where(array('msProductOption.key' => $key, 'msProductOption.value'=> $param1));
$q->sortby('msProductOption.value','ASC');
$q->select('DISTINCT(msProductOption.value), msProduct.id');
$q->where(array('msProductOption.key' => $key));
if (!empty($category)) {
$ids = $modx->getChildIds($category);
$ids[] = $category;
$q->innerJoin('msCategory', 'msCategory', 'msCategory.id=msProduct.parent');
$q->where(array('msCategory.id:IN' => $ids));
}
$result = array();
if ($q->prepare() && $q->stmt->execute()) {
while ($row = $q->stmt->fetch(PDO::FETCH_ASSOC)) {
$res['id'][] = $row['id'];
}
$result = implode(",", array_unique($res['id'])) ;
}
$output=' ';
$products= $modx->getCollection('msProduct', $result);
foreach ($products as $k => $product) {
$title = $product->get('pagetitle');
}
$output = $modx->getChunk('ProductPodbor', title));
return $output;
чет у вас нет немного понимания как работает getChunk.
по мне так проще msProducts
по мне так проще msProducts
[[!msProducts?
// тут все ваши параметры, включая parent/tpl
&optionFilters=`{ "TIP_COPUS":"[[#GET.corpus]]" }`
]]
пример на феном не привожу, а то непонятно что у вас там настроено
Спасибо за ответ, я думал об этом, но никак не могу понять, как мне пердать в сниппет get. Есть у меня побор на jquery, обработчик на php, и вот как этот последний запрос отправить в сниппет, который вызывается ну допустим в popup окне. Если откроете глаза, буду благодарен
Да что я делаю не так? Не могу понять. Вот сниппет:
<?php
$string=null;
if($_POST['id']){
$string.='tip_korpus=='.$_POST['id'].'';
}
$string=substr($string,0,-1);
echo $string;
Вот код со страницы к которой я обращаюсь по ajax [[!msProducts?
&tpl=`msProduct`
&limit=`12`
&includeTVs=`crop, tip_korpus`
&includeThumbs=`740x560,740x`
&parents=`0`
&depth=`0`
&tvFilters=`[[!GetAjax?id='key']]`
]]
Ничего не выводит, если просто оставить:[[!GetAjax?id='key']]
, то значение есть
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.