Мини-корзина в ms2
Василий, подскажите, пожалуйста, как в ms2 реализовать miniCart с интерактивным выводом перечня собранных товаров? То есть, как в ShopKeeper'е было: жмакаем «Положить в корзину» — товар летит в корзину, в корзине сразу появляется его название, цена и количество.
Комментарии: 21
Мини-корзина на то и «мини», что выводит только количество товаров и сумму.
Если нужно выводить все товары с картинками — нужно использовать сниппет msCart. В твоём случае его лучше получать через ajax при клике на миникорзину и выводить во всплывающем окне.
Самый простой способ — вызвать сниппет на пустой странице и делать к ней запрос через POST. Базовые принципы здесь.
У нас в магазине так и сделано.
Если нужно выводить все товары с картинками — нужно использовать сниппет msCart. В твоём случае его лучше получать через ajax при клике на миникорзину и выводить во всплывающем окне.
Самый простой способ — вызвать сниппет на пустой странице и делать к ней запрос через POST. Базовые принципы здесь.
У нас в магазине так и сделано.
Получается, товары будут видны только в модальном окне, в лайтбоксе? Так не пойдёт. Нужны именно товары прямо в виджете мини-корзины.
Ну, понятно, что можно воспользоваться msCart и выводить список товаров при обновлении страницы. Интересно, сильно ли придётся заморачиваться с яваскриптом, чтобы запрограммировать интерактивное обновление списка?
Ну, понятно, что можно воспользоваться msCart и выводить список товаров при обновлении страницы. Интересно, сильно ли придётся заморачиваться с яваскриптом, чтобы запрограммировать интерактивное обновление списка?
Ну так вызывай вместо миникорзину нормальную корзину и товары будет видно постоянно.
У скрипта есть callbacks, можно обновлять информацию сразу после добавления товара без проблем.
У скрипта есть callbacks, можно обновлять информацию сразу после добавления товара без проблем.
miniShop2.Callbacks.Cart.add.response.success = function(response) {
// console.log(response)
// Здесь можно писать запрос к корзине и обновление контента на странице
}
Также ты можешь расширить класс корзины и возвращать все нужные данные сразу, без дополнительных ajax запросов.
Ага, вдуплил, спасибо. Попробую.
Василий, каким образом можно получить id добавленного товара?
только мессадж есть и никакой информации о добавленном товаре
console.log(response)
console.log(response.data)
только мессадж есть и никакой информации о добавленном товаре
Object {success: true, message: "Количество товара в корзине успешно изменено: 29", data: Object}
scripts.js:88 Object {key: "89a9e0d0c968a3c2d77b89034d5744d5", total_count: 34, total_cost: 315149, total_weight: 0}
Василий, привет!
А можно другую ссылку, а то она битая.
Интересует вывод корзины как у вас в магазине.
Спасибо.
А можно другую ссылку, а то она битая.
Интересует вывод корзины как у вас в магазине.
Спасибо.
Поправил.
Спасибо. Все получилось!
Интересный вариант с использованием AJAX — чем отличается от такой реализации:
Я создал в миникорзине в блоке
с выводом полной корзины и добавил в кнопку добавления товара на
Простой вариант, какие могут быть подводные камни?
Я создал в миникорзине в блоке
dropdown-cart [[msCart? tpl="newMsCartTpl"]] -
с выводом полной корзины и добавил в кнопку добавления товара на
onClick="window.location.reload()"
Получилось, что после добавления товара в корзину страница перезагружается и товар обновляется в миникорзине.Простой вариант, какие могут быть подводные камни?
Василий, подскажи пожалуйста, как обновление корзины реализовать (в левой колонке сайта) при добавлении товаров. Я целый день читаю топики и комментарии, но не силен я в java… Сижу вытаскиваю куски из miniShop2.js :(
Разумеется ничего не получилось…
Разумеется ничего не получилось…
Очень нужна помощь! Кто нибудь :)
Я все еще не теряю надежды… может примеры какие нибудь есть… где искать…
У Вас получилось сделать товары в миникорзине? Не могли бы Вы поделится решением?
github.com/tanaevr/miniMs2Order вот решение от разработчика: нужно прикрепить на страницу script.js, создать сниппет и постаить рядом с выводом miniShop. У сниппета есть параметр &limit, это кол-во видимых товаров.
Артур, подскажите, что значит поставить рядом с выводом miniShop?
сорри, сам уже разобрался)
сорри, сам уже разобрался)
Разобрался.
Я вот никак понять фразу «постаить рядом с выводом miniShop» не могу, подскажите пожалуйста, как это реализовать.
От идеи интерактивной корзины отказался… а теперь уж и не помню…
Спасибо за ответ. Разобрался, вот только пришлось переделывать немного, но зато работает. Спасибо автору за решение и вам за отклик.
В консоли выбивает «parsererror SyntaxError: Unexpected token < in JSON at position 0», что это могло быть и как с ним побороться? Подскажите пожалуйста.
В логах modx пусто. Ошибку выдает js скрипт, так как не срабатывает скрипт php для обработки ajax запроса. Но вот что заметил, запуск php скрипта стандартным парсером ( [[!LiveMiniCart? &limit=`100` ]] ) дает положительный результат, а вот парсер Fenom не желает запускать снипет… У кого какое мнение?
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.