Всего 125 666 комментариев

Богдан
09 июля 2021, 10:28
0
Поставил в наборах параметров noJQuery — Да
Товар так и не добавляется, видимо что то с настройками. Может надо что то указать для cartRowTpl?
Павел Романов
09 июля 2021, 10:02
+1
У Вас два раза jQuery подключается (на 595 и 619 строках).
В наборах параметров Shopkeeper включите noJQuery.
Богдан
09 июля 2021, 09:54
0
Спасибо огромное за совет, товары появились, но товары в корзину не добавляются. сайт nmorf.ru/annotacii/
Не могли бы подсказать в наборе параметров cartRowTpl на что должен указывать?
сейчас стоит дефолтное значение @FILE shopCartRow.tpl
Vladimir
09 июля 2021, 08:08
0
Спасибо всем, обновился, сделал так
switch ($modx->event->name) {

    case 'msOnAddToCart':
        $res = $modx->getObject('modResource', 1);
        $defaultOptPrice = (int)$res->getTVValue('opt_price__default');
        
        $crt = $cart->get();

        $currentGoods = $modx->getObject('modResource', (int)$crt[$key]['id']);
        $currentGoodsOptPrice = (int)$currentGoods->getTVValue('opt_price');
        if(((int)$crt[$key]['price'] * (int)$crt[$key]['count']) >= $defaultOptPrice){
            
            $crt[$key]['old_price'] =  $crt[$key]['price'];
            $crt[$key]['price'] = $currentGoodsOptPrice;
            $crt[$key]['discount_price'] = $currentGoodsOptPrice;
            
            
        }

        $cart->set($crt);
        break;
 
}
Vladimir
09 июля 2021, 07:22
0
Так же пытался с msOnBeforeAddToCart, но там корзина меняется но постоянно только 1 товар, хотя он уже по счету 10й.
Andrey
08 июля 2021, 19:49
0
Спасибо за код и направление! То, что нужно. Выходные (сб, вс) не нужны, всё будет из массива. Так что days вместо weekday и всё.
Павел Романов
08 июля 2021, 17:25
0
В плагинах getTVValue не всегда срабатывает.
Надежнее получать данные непосредственно из TV по ID ресурса.
Валентина Павлова
08 июля 2021, 17:21
0
Спасибо, заработало! А чем разница вызова?
Павел Романов
08 июля 2021, 16:35
+1
Попробуйте так (только вместо 999999 укажите ID TV-шки valuta):
//...
if($tvo = $modx->getObject('modTemplateVarResource', array('tmplvarid' => 999999,'contentid' => $product->id))) {
    $currency_type = $tvo->get('value');
    $currency = $modx->getOption('currency_'.strtoupper($currency_type)); //Значение курса
}
//...
Роман
08 июля 2021, 13:10
0
Все правильно. Нужно возвращать return
Lori
08 июля 2021, 13:10
0
Благодарю, не понадобилось. Просто поменял xtype с displayField на datefield и добавил format
Aleksandr Huz
08 июля 2021, 12:24
0
Можно посмотреть здесь bobsguides.com/xtype-list.html
дмитрий
08 июля 2021, 12:03
0
ок, спс, разобрался, вся проблема в этом участке кода в снипете:
$modx->setPlaceholders(array(
   'rating_count' => $middle,
   'rating' => $result,
   'ratingCount' => "(".count($all).")"
));
заменил его на просто
return $middle;
, не знаю насколько это правильно, но работает
Роман
08 июля 2021, 11:52
0
Видимо кэш или не правильно определяет id.
дмитрий
08 июля 2021, 11:37
0
если выбрать одного производителя и товар у него один то рейтинг отрабатывает норм, страно, есть еще идеи? prnt.sc/19g09uh
Сергей Шлоков
08 июля 2021, 11:15
0
будем благодарны вам за публикацию решения
Это баг и проявляется он только на сайтах с большим количеством товаров. Решение простое — править.