Как создать скидку для товаров с опред брендом в msDiscount ?
        Есть список брендов, бред указан в опциях товара, как сделать именно для них скидку через msDiscount?
Код ниже уже готовый, вопрос решён. Нужно будет вам создать ваши бренды в группе ресурсов обязательно указать все контексты, затем записать их в словарь как ниже, и всё это запустить в пакете под названием «Консоль»
При условии что у вас бренд как у меня находится в опции товара, если нет то код ниже нужно будет переделать а именно первую часть с поиском опции.
    
    
                                                                                
            Код ниже уже готовый, вопрос решён. Нужно будет вам создать ваши бренды в группе ресурсов обязательно указать все контексты, затем записать их в словарь как ниже, и всё это запустить в пакете под названием «Консоль»
При условии что у вас бренд как у меня находится в опции товара, если нет то код ниже нужно будет переделать а именно первую часть с поиском опции.
<?php
$brensList = array('NOMAD','Dominator','АкТех','Kainar');
$q=$modx->newQuery('msProductOption', array('key:=' => 'brand', 'value:IN' => $brensList));
$q->prepare();
$q->stmt->execute();
$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
$brendsGroups = array(
    'NOMAD' => 79,
    'Dominator' => 80,
    'АкТех' => 81,
    'Kainar' => 82
);
$productWithoutGroup = 103; // Айди группы ресурсов что нет в списке выше.
foreach ($res as $k => $v) {
    $currentProductBrand = $v['msProductOption_value'];
    $docId = $v['msProductOption_product_id'];
    $newGroup = $brendsGroups[$currentProductBrand];
    if(!$newGroup){
        $newGroup = $productWithoutGroup;
    }
    $resource = $modx->getObject('modResource', $docId);
    if($resource){
        if(!$resource->isMember($newGroup)){
            $resource->joinGroup($newGroup);
        }
    }    
}    Комментарии: 2
                У меня есть 1 вариант, но он костыльный, пройтись по всем товарам, и положить их в спец группу ресурсов по бренду, и потом эту группу указать            
                    
                Спасибо всем кто помог. Вот код работает проверил. Можно конечно было лучше сделать, особенно в случае создание и автоматом добавления групп ресурсов по брендам, но так и не смог быстро найти способ проверить все группы ресурсов на имеющиеся и если нет то создать а потом всё собрать и указать в словарь.
                    <?php
$brensList = array('Zuff', 'Пульс', 'ON', 'Dominator', 'FB', 'Актех', 'Вожак', 'Зверь');
$q=$modx->newQuery('msProductOption', array('key:=' => 'brand', 'value:IN' => $brensList));
$q->prepare();
$q->stmt->execute();
$res = $q->stmt->fetchAll(PDO::FETCH_ASSOC);
$brendsGroups = array(
    'Zuff' => 7,
    'Пульс' => 8,
    'ON' => 9,
    'Dominator' => 10,
    'FB' => 11,
    'Актех' => 3,
    'Вожак' => 6,
    'Зверь' => 14
);
foreach ($res as $k => $v) {
    $currentProductBrand = $v['msProductOption_value'];
    $docId = $v['msProductOption_product_id'];
    $newGroup = $brendsGroups[$currentProductBrand];
    $resource = $modx->getObject('modResource', $docId);
    if(!$resource->isMember($newGroup)){
        $resource->joinGroup($newGroup);
    }
}            
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.