Реализуем функционал добавления в корзину, в избранное и в сравнение, для каталога товаров. Все будет работать на AJAX без перезагрузки страницы.
Для реализации потребуются заметки из блога
Добавление и удаление из сравнения на AJAX: Битрикс
Добавление в избранное или отложенные, на AJAX из карточки товара
Скачать архив директории "local" - на момент окончания записи, можно по ссылке ниже:
Серия 19: Добавление в корзину, избранное и сравнение на AJAX.
Все серии
- Серия 1: Вступление
- Серия 2: Установка 1С-Битрикс на виртуальную машину
- Серия 3: Базовый обзор по системе управления, удаление демонстрационных данных
- Серия 4: Дизайн#1- анализ аудитории, проектирование и тех. задание
- Серия 5: Дизайн#2- работа со шрифтами, работа с типографикой
- Серия 6: Дизайн#3- работа с цветом, теория подбора цветов
- Серия 7: Дизайн#4- композиция в веб дизайне
- Серия 8: Дизайн#5- программы для дизайнера, оптимизация работы при проработке макетов
- Серия 9: Создание инфоблоков и каталога товаров
- Серия 10: Добавление проекта в phpstorm, верстка основного скелета сайта
- Серия 11: Создание структуры сайта, работа с типами меню
- Серия 12: Вывод динамичной информации с помощью компонентов
- Серия 13: Базовый вывод каталога товаров и добавление сайта в поисковые системы
- Серия 14: Функционал главной страницы, включаемые области и реклама
- Серия 15: Создание и работа с торговыми предложениями в Битрикс
- Серия 16: Выгрузка товаров из 1С-УТ в Битрикс
- Серия 17: Подготовка шаблона каталога к верстке
- Серия 18: Реализация персонального раздела пользователя
- Серия 19: Добавление в корзину, избранное и сравнение на AJAX.
- Серия 20: Обзор по реализованному функционалу и реализация поиска по каталогу
- Серия 21: Умный фильтр и ответы на вопросы
- Серия 22: Разработка мобильного приложения для магазина- Вступление
- Серия 23: Создание основных настроек и скелета приложения
- Серия 24: Создание структуры приложения и вывод компонентов
- Серия 25: Отправка мобильного приложения на компиляцию и публикацию в магазинах
- Серия 26: Развитие сайта и мобильного приложения
Комментарии к видео
Здравствуйте!
После добавления в корзину на месте small.basket появляется сообщение 'basket.small.bazarow' is not a component
Не подскажете в чем может быть дело?)
Скачал архив из 20го урока, заменил, все заработало.
Здравствуйте!
После добавления в корзину на месте small.basket появляется сообщение 'basket.small.bazarow' is not a component
Не подскажете в чем может быть дело?)
Скачал архив из 20го урока, заменил, все заработало.
То же скачал архив из 20го урока и заменил...
Но есть другие проблемы, не могу понять почему у меня происходит не так как у вас:
1. При нажатии на кнопку "В корзину" у вас выглядит так что страница не обновляется, и всплывает окно, что товар добавлен.
У меня же происходит так, нажимаю "В корзину" обновляется страница, в корзине товар появляется, но нет всплывающего окна.
2. В вас при нажатии на чекбокс для сравнения, тоже всплывает окно, а у меня нет.
Что делать?
Здравствуйте, Михаил!
То же скачал архив из 20го урока и заменил...
Но есть другие проблемы, не могу понять почему у меня происходит не так как у вас:
1. При нажатии на кнопку "В корзину" у вас выглядит так что страница не обновляется, и всплывает окно, что товар добавлен.
У меня же происходит так, нажимаю "В корзину" обновляется страница, в корзине товар появляется, но нет всплывающего окна.
2. В вас при нажатии на чекбокс для сравнения, тоже всплывает окно, а у меня нет.
Что делать?
Видимо не подключился js который отправляет в корзину. Он подключен в шаблоне корзины. В принципе, путь там задан не статично, через GetThisFolder - но проверьте свои шаблоны. Попробуйте полностью свои удалить (сохраниться перед этим) и снова использовать мою папку local
Скрипты подключены:
$APPLICATION->AddHeadScript($templateFolder."/js/jquery.form.js" );
$APPLICATION->AddHeadScript($templateFolder."/js/jquery.jgrowl.min.js" );
После проверки подключены ли скрипты, проделал следующее:
1. свою папку local заархивировал
2. Вашу залил
3. применил ваш шаблон - всплывающее окно "Товар добавлен..." - работает
4. Залили свой шаблон сайта в папку local (рядом с вашим), применил - не работает
5. скопировал свой шаблон корзины в ваш шаблон сайта, выбрал в компоненте свой шаблон корзины - работат
Получается дело не в шаблоне компонента, а в моем шаблоне сайта, но где копать? Не пойму...
Скрипты есть, шаблон компонента рабочий... Что еще может повлиять на то что оно обновляется, видимо дело в обновлении страницы?
Видимо не подключился js который отправляет в корзину. Он подключен в шаблоне корзины. В принципе, путь там задан не статично, через GetThisFolder - но проверьте свои шаблоны. Попробуйте полностью свои удалить (сохраниться перед этим) и снова использовать мою папку local
Скрипты подключены:
$APPLICATION->AddHeadScript($templateFolder."/js/jquery.form.js" );
$APPLICATION->AddHeadScript($templateFolder."/js/jquery.jgrowl.min.js" );
После проверки подключены ли скрипты, проделал следующее:
1. свою папку local заархивировал
2. Вашу залил
3. применил ваш шаблон - всплывающее окно "Товар добавлен..." - работает
4. Залили свой шаблон сайта в папку local (рядом с вашим), применил - не работает
5. скопировал свой шаблон корзины в ваш шаблон сайта, выбрал в компоненте свой шаблон корзины - работат
Получается дело не в шаблоне компонента, а в моем шаблоне сайта, но где копать? Не пойму...
Скрипты есть, шаблон компонента рабочий... Что еще может повлиять на то что оно обновляется, видимо дело в обновлении страницы?
use Bitrix\Main\Page\Asset;
CJSCore::Init(array("jquery"));
use Bitrix\Main\Page\Asset;
CJSCore::Init(array("jquery"
Скопировал из вашего фала header.php почти все строки из <head>
Разработало! Спасибо большое!!!
Не, ну, должно было конечно поменяться но результат не тот
Постараюсь по проще спросить
В шаблоне компонента ваш код, был в одном из уроков:
Было бы неплохо, чтобы при повторном нажатии на кнопку Избранное товар удалялся из избранного.
Причины:
1. По аналогии с кнопкой В сравнение;
2. И если посетитель сайта случайно нажал В избранное и не пришлось потом специально заходить в избранное и удалять не нужный товар.
Все сделано по Вашей инструкции, но при добавлении в избранное, не передается название, а все остальное передается. При чем если добавлять в избранное из корзины, то все нормально.
Подскажите куда копать, а то всю голову сломал уже.
Подскажите, пожалуйста, не получается самому догадаться в чем проблема.
Не получается вывести счетчик товаров в Избранное, уже 500 раз все проверил, все так же как и у вас, но не работает (((
.
Вставляю код
"При выполнении скрипта возникли ошибки"
Стираю из кода только
echo $delaydBasketItems;
Все снова становится на свои места.
Затем добавляю <?echo $delaydBasketItems;?>
во внутрь тега <i> на то место, где должен отображаться счетчик (как в уроке), и снова сайт летит нафиг с той же ошибкой.
Получается, что вывод $delaydBasketItems все ломает.
.
Сейчас без вывода $delaydBasketItems в теге <i> счетчик работает, отображается только при нажатии на кнопку Добавить в избранное в карточке товара, но как только обновляешь страницу счетчик сбрасывается на 0.
.
.
Подскажите, пожалуйста, хотя бы в какую сторону копать. Буду очень благодарен.
Может у кого на форуме была такая же проблема? Подскажите, ребята.
При реализации отображения счетчика товаров в Корзине возникает такая ошибка на месте где должна быть корзина
Как-то туго идет эта серия)))
При реализации отображения счетчика товаров в Корзине возникает такая ошибка на месте где должна быть корзина
Как-то туго идет эта серия)))
При реализации отображения счетчика товаров в Корзине возникает такая ошибка на месте где должна быть корзина
Здравствуйте Михаил. Не очень понятно, каким компонентом выводится список отложенных товаров, если корзиной то как компонент понимает, что выводить нужно отложенные а не товары в корзине?
Просто открывает сразу, таб с отложенными товарами (basket_item_dlayed вместо basket_items)
Здравствуйте! Столкнулся с проблемой, при добавлении товара в корзину из карточки товара почему-то не передается его кол-во. Класс к форме добавлен, jquery подключен. В консоли выдает ошибку Uncaught TypeError: $(...).ajaxForm is not a function не могу понять как ее исправить
Здравствуйте. Подскажите пожалуйста какие компоненты нужно использовать, если на сайте нужны (помимо вывода товаров конечно) - только корзина, выбор доставки и оплата робокассой, но НЕ нужен личный кабинет пользователя (так руководство решило). Документация лес дремучий, а вы объясняете очень доходчиво, спасибо вам огромное!
Обнаружил один такой момент, что реализация Избранного через отложенные товары в корзине плохая идея. Один раз купил это избранное и это уже не избранное, надо заново добавлять товар в избранное (
Ну или, если нужно срочно. Используйте компонент catalog.item - в него просто передавайте ID товаров, которые отложились.
(index):414 Uncaught TypeError: Cannot read property 'checked' of null
at compare_tov ((index):414)
at HTMLInputElement.onchange ((index):495)
Судя по коду она происходит в этом месте:
var chek = document.getElementById('compareid_'+id);
if (chek.checked) //происходит ошибка при проверке условия
{
//Добавить
var AddedGoodId = id;
$.get("/local/ajax/list_compare.php",
{
action: "ADD_TO_COMPARE_LIST", id: AddedGoodId},
function(data) {
$("#compare_list_count"[IMG].html(data);
}
);
Не подскажите в чем может быть проблема?
/local/ajax/list_compare.php
Вот тут /local/ajax/list_compare.php тот же самый шаблон сравнения, что и в шапке сайта?
А не знаете как из избранного не перемещать к корзину а делать копию? т.е. товар остается в избранном но такой же товар помещается в корзину?
Спасибо
Сам код страницы "Избранные": https://yadi.sk/d/ORm8xQmt6b2HTA