Вопросы

msOnAddToCart срабатывает только при первом добавление товара, как исправить?

Нужно чтобы при добавлении товара если больше опред суммы, то снижал цену товара, и стоимость корзины.

Код который тестил
<?php
switch ($modx->event->name) {

    case 'msOnAddToCart':
        $res = $modx->getObject('modResource', 1);
        $defaultOptPrice = (int)$res->getTVValue('opt_price__default');
        
        $crt = $cart->get();
        $modx->log(modX::LOG_LEVEL_ERROR, '
 =:>' . print_r($crt));
        foreach($crt as $crtItem ){
            $currentGoods = $modx->getObject('modResource', (int)$crtItem['id']);
            $currentGoodsOptPrice = (int)$currentGoods->getTVValue('opt_price');
            if(((int)$crtItem['price'] * (int)$crtItem['count']) >= $defaultOptPrice){
                $crtItem['price'] = $currentGoodsOptPrice;
            }
            
        }
        $cart->set($crt);
        break;

        
        
}
Кстати код выше так же не меняет результат корзины.
Vladimir
09 июля 2021, 07:21
modx.pro
1 142
0

Изменение цены в зависимости от типа валюты (в tv-параметре)

<?php
switch($modx->event->name) { 
    case 'msOnGetProductFields':
        $returned_values = & $modx->event->returnedValues;
        $values =  $modx->event->params['data'];

        $product = $modx->getObject('msProduct', $product->id);
        $currency_type = $product->getTVValue('valuta'); //Тип валюты
        $currency = $modx->getOption('currency_'.strtoupper($currency_type)); //Значение курса
        
        if (isset($currency)) {
            $returned_values['price'] = round($values['price'] * $currency); // Округление цены;
        }       
        
        $modx->log(1,'returned_price - ' . $returned_values['price'] );
        $modx->log(1,'current_type - ' . $currency_type );
        $modx->log(1,'currency - ' . $currency );
        break;
}
Почему-то логи пишет корректно, но цена не меняется.
Если убрать эти строки
$product = $modx->getObject('msProduct', $product->id);
        $currency_type = $product->getTVValue('valuta'); //Тип валюты
        $currency = $modx->getOption('currency_'.strtoupper($currency_type)); //Значение курса
, работает. С ними все ломается…
Валентина Павлова
08 июля 2021, 15:25
modx.pro
1
819
0

Где объявлены все xtype в Modx?

Здравствуйте!

Хочу зарегистрировать свой xtype формата datetime.
В каком файле объявлены все xtype Modx?
Lori
08 июля 2021, 12:18
modx.pro
906
0

Пропадает звездный рейтинг при отработке фильтра товаров, почему?

Приветствую, кто подскажет как решить проблему: при отработке фильтра слева e-clothes.ru/shop/ пропадает звездный рейтинг в товарах prnt.sc/19ffnh1, рейтинг выведен с помощью снипета, они как бы затираются после ajax, как решить, куда копать?
дмитрий
08 июля 2021, 10:03
modx.pro
1
602
0

shopkeeper3 getProducts MODX revo - Вывод товаров

Приветствую всех. Сайт на MODX Revo. Возникли проблемы при выводе товаров на страницу shopkepeer3.
Вывожу на товары на страницу данным образом
[[!getProducts?
&elementClass=`modSnippet`
&element=`getProducts`
&parents=`319`
&tpl=`product`
&includeTVs=`1`
&includeTVList=`price,image,opisanie`
&limit=`20`
]]
При данном выводе появляются товары на странице, но они не добавляются в корзину. В документацие прочитал что нужен добавить &where=`{«template»:9}` Что указывает на шаблон карточки товара. В моем случае карточка товара имеет ID 9. Но когда я добавляю &where=`{«template»:9}` Страница с товарами становится полностью белая и на ней нет товаров.

Если меня удастся кому то понять и подсказать буду благодарен. Или же может кинуть ссылку на какие нить видосы по настройке shopkepeera 3. Спасибо. Всем добра.
Богдан
08 июля 2021, 09:46
modx.pro
1 287
0

Как сделать фильтр вывода результатов из базы данных MIGX с помощью сниппета migxLoopCollection?

Здравствуйте друзья!
Делаю проект, в котором на одной из страниц выводится карта произошедших землетрясений на основе OpenLayers. База данных событий создана с помощью MIGX отдельной таблицей по статье Создание таблиц через MIGX. События из базы данных выводятся на карту с помощью сниппета migxLoopCollection. Это предыстория, а теперь задача))
Необходимо сделать блок фильтров для выборки землетрясений из базы по дате и магнитуде. Из собственных поисков на просторах интернета нашел только то, что копать нужно в сторону изменения параметра &where= сниппета migxLoopCollection, исходя из параметров введенных пользователем в форму. Подскажите пожалуйста варианты создания такого фильтра, или статьи с вариантами реализации. Заранее благодарю.
Александр
08 июля 2021, 08:35
modx.pro
506
0

[pdoMenu] Выпадающее меню только в 1 пункте.

Есть стандартное меню, допустим главная, о компании, услуги, отзывы, контакты

Каждый из этих пунктов-ресурсов имеет дочерние ресурсы, возможно ли с помощью pdoMenu сделать выпадающим меню только в 1 пункте?
Приходит в голову пока только с помощью классов и css ?(display:none) например.

Прошу помочь.
evgeniy dovgani
07 июля 2021, 20:46
modx.pro
797
0

Как высчитать дату с учётом выходных?

Не знаю с какой стороны подступиться. Задача такая: высчитать дату через n (14, например) дней от сегодняшней, но с учётом выходных/не рабочих дней, то есть прибавлять, если выходные в этот период есть. Плюс надо учесть, что конечная дата тоже может попасть на выходной и, соответственно, тоже сдвинуть надо. Выходные могут быть в любые дни и будут устанавливаться через тв чекбоксами вида: дд.мм. Вывод тоже в дд.мм.
Andrey
07 июля 2021, 20:29
modx.pro
713
0

Как удалить пункт в верхнем меню "Пакеты"

Деинсталляция не помогает(хотя у других пакетов раньше помогала).

evgeniy dovgani
07 июля 2021, 20:13
modx.pro
1 028
0

minishop2 не сохраняет товары

На сайте 1000+ товаров. Скоро идем в релиз. И проблема в том что сайт перестал редактировать и обновлять существующие товары. Грешили на seopro — убрали не помогло. Кеш скидывали урлы перегенерировали. Но заметили забавное решение (кастыль) чтобы изменить товары берем подкатегорию и драг -дропом переносим в корень сайта и все товары начинают сохранятся. Ошибку в консоли браузера прилагаю
Uncaught TypeError: Cannot read property 'hidden' of undefined
at miniShop2.panel.UpdateProduct.failureSubmit (modx.panel.resource.js?v=2.5.0-pl:251)
at h.Event.fire (ext-all.js:21)
at miniShop2.panel.UpdateProduct.fireEvent (ext-all.js:21)
at MODx.toolbar.ActionButtons.handleClick (modx.jsgrps-min.js:1)
at S.onClick (ext-all.js:21)
at HTMLSpanElement.I (ext-all.js:21)
Денис Надей
07 июля 2021, 19:41
modx.pro
621
0