Мини-корзина в 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 не желает запускать снипет… У кого какое мнение?            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.