[msMCD] Динамическое обновление мини-корзины miniShop2
Приветствую всех!
Компонент msMCD (mini cart dynamic) для miniShop2 — это рефакторинг старого компонента msMiniCartDynamic с рядом улучшений и предназначен для обновления мини корзины на лету — динамически. msMiniCartDynamic поддерживаться больше не будет.
Теперь не нужно самостоятельно добавлять скрипты на страницу, msMCD делает это сам. Все чанки переписаны на Fenom и Bootstrap4.
Доступен в modstore.pro
Компонент msMCD (mini cart dynamic) для miniShop2 — это рефакторинг старого компонента msMiniCartDynamic с рядом улучшений и предназначен для обновления мини корзины на лету — динамически. msMiniCartDynamic поддерживаться больше не будет.
Теперь не нужно самостоятельно добавлять скрипты на страницу, msMCD делает это сам. Все чанки переписаны на Fenom и Bootstrap4.
Возможности msMCD
- Динамическое обновление мини-корзины
- Добавление товара в корзину как кнопкой, так и ручным вводом, а также кнопками -/+. Опционально
- Анимация добавления товара (полёт картинки). Опционально
- Возможность выбора полей для передачи в мини-корзину. Опционально
- Удаление выбранного товара
Доступен в modstore.pro
Комментарии: 50
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
Написали бы заявку им, чтобы ваш сайт убрали из черного списка…
А вообще, не понятна причина блокировки, и блокирует только ESET.
Вы можете в настройках указать исключение для демо-сайта, чтобы зайти. Если надо, конечно.
И еще вот тут — В системных настройка msmcd_animate_mini_cart — значение «Да», но картинка не летит
Инпут обязательно в тег form и атрибуты по примеру в чанке msMCDProductsRowInputTpl.
В чем может быть проблема — с настройками напутал что-то я, или в компоненте что-то не так?
У кастомных размеров оставляет оригинальное расширение. Даже .png записывает как .png
Столкнулся с проблемой, у меня в JS есть код:
miniShop2.Callbacks.Cart.add.response.success = function(ol) {
Который, в случае успешного добавления в корзину вызывает Ajax запрос и в нем запускается сниппет — $output = $modx->runSnippet('msProducts',$params);
И выводит товар, который был добавлен в корзину.
Но в таком случае он конфликтует с msMCD, товары в мини корзине обновляются только после перезагрузки страницы, в чем может проблема?
Нужно ли будет приобретать компонент второй раз для другого домена?
Лучше в тех. поддержке магазина спросить, или поискать на сайте — наверняка есть информация.
Я могу их через инпут полностью написать, но тогда смысл в этом дополнении?
at HTMLDivElement.(msmcdcount.js:34)
at HTMLDocument.dispatch (jquery.js:5)
at HTMLDocument.v.handle (jquery.js:5)
msmcdminicart.js:127 Uncaught TypeError: Cannot read property 'top' of undefined
at Object.msMCDMiniCart.animationCart (msmcdminicart.js:127)
at HTMLButtonElement.(msmcdminicart.js:40)
at HTMLDocument.dispatch (jquery.min.js:3)
at HTMLDocument.r.handle (jquery.min.js:3)
msMCDMiniCart.animationCart @ msmcdminicart.js:127
(anonymous) @ msmcdminicart.js:40
dispatch @ jquery.min.js:3
r.handle @ jquery.min.js:3
1. в папке модели должен быть metadata.mysql.php, хотя бы
с таким содержимым:
Иначе ловим ошибку.
2. В основном классе, метод инициализации есть, но не вызывается,
и там же pdo подключается, но не получает конфиг, следует
параметры в него не передашь, можно исправить вот так:
3. Ключ (хеш) конфигурации корзины, при ajax запросе передается,
но нинциализация не происходит, это значит как минимум pdo не получит конфиг из пункта 2.
Для этого инициализация может быть такой:
А в handleRequest:
Ну и в сниппеты и плагины после успешной подгрузки класса:
4. Чанк элемента в корзине содержит:
Ошибкой было называть имя msmcd_id вместо id, так как это может сломать
работу других компонентов, висящих на событиях изменения
товаров в корзине. Да и префикс msmcd_ не используется ни где.
5. При удалении товара вместо Cart.remove.response.success
нужно использовать:
Тогда будет правильно удалять товары.
Вроде после такого напильника, стало работать как нужно. Желаю творческих успехов!
меняем
на
При добавлении товара в корзину, например из языкового контекста «de», корзина обновляется, НО, в ней содержимое на русском контексте: текст кнопок, заголовки и т.д. Если обновить страницу, то в корзину подтягивается нужный контекст.
at HTMLDivElement.(msmcdcount.js:27)
at HTMLDocument.dispatch (Jquery_v_3-3-1.js:3)
at HTMLDocument.q.handle (Jquery_v_3-3-1.js:3)
ошибка при изменении количества
и как сделать, что бы добавлялся сразу 1 товар при нажатии на кноку «добавить в корзину»?
Заметил, что цена в миникорзине при изменении количества товаров на странице большой корзины меняется не сразу, а с задержкой 2 сек. При этом после других операций, например, удаления позиции из большой корзины, цена меняется мгновенно.
Не подскажете, по какой причине это может происходить?
Подскажите, пожалуйста, можно ли как-то это дело подружить с мини-корзиной? Тут параметры не поддерживаются или немного иначе что-то прописать надо?
, там даже в описании указано про него. У меня он стоит на нескольких сайтах. Или теперь msMCD убрали и обновили старый?
И не кому осуществлять поддержку.
Или как-то решить вопрос о продолжении поддержки компонента?
Реально это большая проблема.
Делаю сайт на Bootstrap 5 — на имеющихся решениях по мотивам статьи dart.agency получаю кучу ошибок. Уже неделю бьюсь над настройкой, нет слов чтобы описать ну почему нельзя сделать компонент чтобы поставил и забыл. Ну обязательно надо танцевать с бубнами.
Ну почему нет нормального рабочего компонента (извините уже на эмоциях...)
Не знаете ли случайно способ использовать данный компонент?
У меня на одном сайте есть версия msMCD 2.1.3, но на другой сайт ее не установить, т.к. транспортный пакет зашифрован и установить может только купивший аккаунт. Купить, соответственно, уже невозможно… Кроме того, в распакованном виде он тоже отказывается корректно работать. В лог пишется ошибка: Could not load class: msMCD from msmcd.
Или может есть аналогичное решение? Мне по сути он нужен, чтобы в каталоге на товарах было видно какие и сколько уже добавлены в корзину.
Для добавления товара использую сниппет msMCDCount
При нажатии на +, товар добавляется в корзину, но в сниппет не возвращается key, дальнешее изменение количества товара работает неверно.
Но если перезагрузить страницу — то key прописывается и переключатель работает верно.
Также, если до первого добавления товара в корзину нажать на -, появится ошибка что количество не верное, а затем нажать на +, то товар добавляется в корзину и key возвращается в сниппет.
Не понимаю, что ему нужно, что бы сразу работало верно
В нем почему то msMCDCount не функциклирует, при переключении +- ничего не происходит