Всего 125 673 комментария

Баха Волков
09 июля 2021, 17:22
0
Пройдёт некоторое время и вы сами поймёте насколько странный ваш вопрос
Vladimir
09 июля 2021, 13:47
0
странно, добавлял один и тот же товар 10 раз, и плагин все равно работает как нужно.
Михаил
09 июля 2021, 12:34
0
Потому что когда ты добавляешь второй раз тот же товар то срабатывает msOnChangeInCart
Евгений Webinmd
09 июля 2021, 10:46
0
раньше это было багом, сейчас починили, можете откатить этот кусок кода
Павел Романов
09 июля 2021, 10:40
+1
Так сложно сказать. Дефолтный @FILE shopCartRow.tpl должен работать. Как вызываете сам Shopkeeper?
Исправьте, кстати, ошибку в консоли. Скрипт, который с 16 по 45 строки, должен идти после подключения jQuery. Соответственно, либо его перенесите вниз, либо подключение jQuery пропишите в HEAD перед этим скриптом.
Богдан
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