События JS при действиях с товаром
        Как подцепить события на стороне JS при определенных действиях с товаром? 
Например, добавление товара в корзину, оформление заказа, и тд. Я так понимаю, должен быть стандартный набор фреймворка, но не могу найти где.
Попробую четче сформулировать: На стороне клиента в рамках сессии нужно иметь доступ к объектам корзины и заказа. Эти объекты будут прочитываться при вызове соответствующих коллбекок. Нужно что бы не парсить код, для выяснения таких вещей как сумма, позиция и тд.
В документации к сожалению найти нормально не смог, если есть пример рабочей конструкции на JS буду благодарен.
Спасибо за помощь!
    
    
                                                                                
            Например, добавление товара в корзину, оформление заказа, и тд. Я так понимаю, должен быть стандартный набор фреймворка, но не могу найти где.
Попробую четче сформулировать: На стороне клиента в рамках сессии нужно иметь доступ к объектам корзины и заказа. Эти объекты будут прочитываться при вызове соответствующих коллбекок. Нужно что бы не парсить код, для выяснения таких вещей как сумма, позиция и тд.
В документации к сожалению найти нормально не смог, если есть пример рабочей конструкции на JS буду благодарен.
Спасибо за помощь!
Комментарии: 14
                Вы имеете ввиду callback?            
                    
                Не совсем понятно, вот пример:
miniShop2.Callbacks.add('Cart.add.before', 'restrict_cart', function() {
miniShop2.Message.error('Добавление товаров в корзину запрещено!');
return false;
});
Первый параметр событие, третий обработка. А что такое второй параметр и где посмотреть их список?
Добавил в качестве теста в чанк, в консоле:
                    miniShop2.Callbacks.add('Cart.add.before', 'restrict_cart', function() {
miniShop2.Message.error('Добавление товаров в корзину запрещено!');
return false;
});
Первый параметр событие, третий обработка. А что такое второй параметр и где посмотреть их список?
Добавил в качестве теста в чанк, в консоле:
Uncaught ReferenceError: miniShop2 is not defined    at ...            А что такое второй параметрЭто тупо название коллбека. Чтоб, если он не нужен, его можно было удалить.
Uncaught ReferenceError: miniShop2 is not defined atЭто ваш скрипт выполняется раньше, чем загрузился скрипт минишопа.
<script type="text/javascript" src="/assets/components/minishop2/js/web/default.js?v=d62e73368c"></script>
</body>Он в конце страницы перед  обычно встает.Можно сделать так
$(function() { 
   miniShop2.Callbacks.add('Cart.add.before', 'restrict_cart', function() {
      miniShop2.Message.error('Добавление товаров в корзину запрещено!');
      return false;
   });
});            
                С этим в итоге разобрался. Остался вопрос доступа к объектам магазина через данный фреймворк.            
                    
                Доступа к объектам вроде нет. Это не фреймворк же на все случаи жизни, а компонент который решает только свои определенные задачи. Я вот не могу представить зачем нужен доступ к объектам корзины на фронте. Опишите что-за задача у вас. Может ее по другому решать надо.            
                    
                Задача вполне простая. Проходят события добавления товара в корзину и оформления заказа. В этот момент нужно собрать данные по товарным позициям, и отправить инфу. На стороне сервера это сделать увы не получится, нужно именно на стороне клиента. Я это видел так, что можно получить доступ к неким объектом текущего окружения и выгрузить инфу. Ну возможно надо сделать аякс запросы на серв, но пока не понимаю как лучше.            
                    
                После добавления товара сервер возвращает yadi.sk/i/NW-_BneWewTiXw
То есть, никаких данных о товаре. Вам либо ajax в вытаскиванием данных из корзины и базы либо собирать данные со страницы.
                    То есть, никаких данных о товаре. Вам либо ajax в вытаскиванием данных из корзины и базы либо собирать данные со страницы.
                Хорошо, а как это аяксом вытащить? как подобное делать на стороне сервера, по корзине я представляю, но со стороны JS пока толком не разобрался.            
                    
                jquery $.post знаете? :-) на стороне сервера делаете скрипт, что вытаскивает данные и по ajax с него выдергиваете данные. А точных инструкций не дам. Вариантов реализации куча. Например можно посмотреть реализацию ajaxForm и от нее отталкиваться.            
                    
                Можно там так сделать, согласен. Тогда вопрос, как на стороне сервера понять кто делает запрос? Что именно этот пользователь?            
                    
                ЭЭ… вообще-то тривиально.
                    $modx->user->get("id");MODX при инициализации опознает юзера.            
                Надо протестировать. Отпишусь по результатам ниже.            
                    
                Ага, их. И желательно получать доступ к объектам.            
                    
                Действительно, движок определяет и пользователя и сессию. По этому получилось сделать мини АПИ для загрузки нужных данных. Вопрос в следующем, есть ли местные средства аякс запросов или проще использовать штаный js?            
                    
                            Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.