minishop2 3.0.1 и minishop2 3.0.2

Сегодня выпустили сразу два релиза miniShop2 с мелкими правками и улучшениями, которые не особо тянут на большую версию.

Вот что мы успели подготовить на этот раз
Николай Савин
20 мая 2022, 13:52
modx.pro
1 849
+21

инструмент отчетности

Я хочу создать простой отчет с фильтром в менеджере (получать данные из базы данных). Есть ли подобные дополнения в modx? если нет, то как лучше всего построить такое? Является ли Migxdb хорошим решением?

Спасибо
Pakos Fakos
19 мая 2022, 22:52
modx.pro
526
0

FENOM Почему не работает include в foreach, что не так в синтаксисе?

Приветствую, использую Fenom на MODX REVO, xочу поменять синтаксис подключения чанков из файлов работает через $_modx->getChunk, а хочу попробовать через include или insert, подскажите что неправильно в этом синтаксисе?

{include 'file:chunks/'~$item.section~'.tpl'} Так не работает
{insert 'file:chunks/'~$item.section~'.tpl'} Так не работает

{set $sort = json_decode(1 | resource : 'field-sort', true)}
{if $sort}
{foreach $sort as $item}
{$_modx->getChunk('@FILE chunks/'~$item.section~'.tpl')}
{/foreach}
{/if}
Роман
19 мая 2022, 22:25
modx.pro
530
0

Разная скидка в корзине на товары при условии доставки в зависимости от вендора

Здравствуйте.
Собственно вопрос в заголовке

Суть:
Много товаров разных производителей в магазине.
Магазин должен давать дополнительную скидку при самовывозе.
Скидка на все идет 10%

Нужно сделать условие, что для определенной категории товаров (то есть например по паренту) и при условии конкретного бренда (то есть вендора) скидка в корзине именно на этот товар при самовывозе другая, например 5%.

На все скидка меняется. Но на выборочные товары, чтобы была разная скидка при условии самовывоза — нет.

Нужна помощь, подсказка, коммент, что читать, какое событие попробовать или какие то еще вариенты.
yuri
19 мая 2022, 20:20
modx.pro
522
0

Пересчет цены от общей сумы в корзине minishop2

Доброго дня, очень надеюсь на Вашу помощь… Есть розничная цена (price) и оптовая (old_price). Если сумма заказа меньше 2000 руб — цена розничная, если больше — оптовая.
Сам плагин
<?php
switch ($modx->event->name) {
    case 'msOnChangeInCart': case 'msOnAddToCart': case 'msOnRemoveFromCart': 
        $total_cost_min = $cart->status()['total_cost_min'];
        
        $tmp = $cart->get();
        
        if ($total_cost_min > 200) {
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {

                    $price = $product->get('price');
                    $old_price = $product->get('old_price');
                    $price = $old_price - $rate;
                	$tmp[$key1]['price'] = $price;
                    $modx->log(modX::LOG_LEVEL_ERROR, "cart: ".print_r($price,1) );
                	
                	
                }
            }
        }
        else {
            foreach ($tmp as $key1 => $value) {
                if ($product = $modx->getObject('msProduct', $value['id'])) {
                	$tmp[$key1]['price'] = $product->get('price');
                }
            }
        }
        $cart->set($tmp);
    break;
}
total_cost_min — это сумма заказа с розничной ценой.
Вроде все работает. Но не могу сделать динамическое обновление цен в корзине. Вернее они меняются только у того товара, у которого изменяешь количество, а все остальные не пересчитываются, только после перезагрузке страницы.
Понимаю что надо править default.js где-то в этом месте
status: function (status) {
            if (status['total_count'] < 1) {
                location.reload();
            } else {
                //var $cart = $(miniShop2.Cart.cart);
                var $miniCarts = $(miniShop2.Cart.miniCart).add(miniShop2.Cart.miniCartClass);
                if (status['total_count'] > 0 && $miniCarts.length > 0) {
                    $miniCarts.each(function (index, cart) {
                        if (!$(cart).hasClass(miniShop2.Cart.miniCartNotEmptyClass)) {
                            $(cart).addClass(miniShop2.Cart.miniCartNotEmptyClass);
                        }
                    });
                }
                $(miniShop2.Cart.totalWeight).text(miniShop2.Utils.formatWeight(status['total_weight']));
                $(miniShop2.Cart.totalCount).text(status['total_count']);
                $(miniShop2.Cart.totalCost).text(miniShop2.Utils.formatPrice(status['total_cost']));
                $(miniShop2.Cart.totalDiscount).text(miniShop2.Utils.formatPrice(status['total_discount']));
                if (typeof(status['cost']) === 'number') {
                    $(miniShop2.Cart.cost, '#' + status['key']).text(miniShop2.Utils.formatPrice(status['cost']));
                }
                
                    $(miniShop2.Cart.price2, '#' + status['key']).text(miniShop2.Utils.formatPrice(status['price2']));
  
                if ($(miniShop2.Order.orderCost, miniShop2.Order.order).length) {
                    miniShop2.Order.getcost();
                }
            }
        },
Дмитрий
19 мая 2022, 11:23
modx.pro
1 313
0

CKEditor слетает из настройки which_editor

Приветствую!

Не первый раз вижу такой «глюк». Устанавливаешь CKEditor работает все ок. Но через какое то время просто перестает работать, захожу в Системные настройки->Визуальный редактор а там пусто:
prnt.sc/t6r3VBTlXjzr

В логах ничего нет.

Переустановка помогает, но опять же слетает через время.
Причем даже воспроизвести проблему не получается, скажем так чудесным образом происходит.

Подскажите куда копать?
Что может менять-удалять настройку?
И откуда комбобох which_editor берет данные?
Константин Ильин
19 мая 2022, 10:50
modx.pro
710
0

PdoTools и Where 2 таблиц

Ребята, помогите составить запрос, всю голову уже сломал. Есть class1(таблица групп) и class2(таблица юзеров), нужно вывести только те группы, в которых количество юзеров > 20. Таблица юзеров имеет поле group_id, которое связано с id группой.
alex
19 мая 2022, 10:26
modx.pro
329
0

Цель Яндекс.Метрики на msOneClick

Подскажите кто сталкивался. Как можно вставить цель Метрики на мадальное окно msOneClick? Чтобы сорабатывала по факту отправки формы?

На AjaxForm, есть такая конструкция для вставки в модал:
&successMessage=`Заказ звонка успешно отправлен
<script>yaCounterXXXXXXX.reachGoal('call');</script>`

А вот куда впилить на msOneClick пока не разберусь?
Futuris
19 мая 2022, 09:46
modx.pro
488
0

Нужна верстка и бэкенд

Здравствуйте! Кто сделает верстку и бэкенд нескольких макетов страниц?
Кому интересно, пишите, скину задание, обсудим цену.
Артур Д.
18 мая 2022, 23:30
modx.pro
316
0

Последовательность опций msProductOptions

Всем привет, по какому принципу сейчас формируется порядок опций msProductOptions? Выводятся рандомно и нет параметри их сортировки.

Подскажите пожалуйста, есть решение?

Пока вопрос решил тремя вызовами сниппета, но понимаю, что это не правильно:

[[msProductOptions?tpl=`msProductOptionsTpl` &product=`[[+id]]` &onlyOptions=`model`]]
[[msProductOptions?tpl=`msProductOptionsTpl` &product=`[[+id]]` &onlyOptions=`orign_n`]]
[[msProductOptions?tpl=`msProductOptionsTpl` &product=`[[+id]]` &onlyOptions=`dop_n`]]
Константин
18 мая 2022, 12:37
modx.pro
419
0