Размер шрифта
Цвет фона и шрифта
Изображения
Озвучивание текста
Обычная версия сайта
Создание и продвижение сайтов FreeWork
+7 996 995-30-06
+7 996 995-30-06 В режиме реального времени
Заказать звонок
E-mail
w-bitrix@mail.ru
Адрес
Вся Россия
Режим работы
24/7
Нужна консультация?
О разработчике
Услуги
  • Разработка сайтов
    • Разработка простого сайта
    • Корпоративный сайт
    • Интернет-магазин
  • Поддержка сайтов
    • Техническая поддержка (Полный пакет)
    • Разовая задача
  • Продвижение сайтов
    • SEO оптимизация
    • Контекстная реклама
  • Дизайн сайтов
    • Разработка дизайна сайта
Стоимость работ
Портфолио
  • Leanding page
  • Интернет магазин
  • Корпоративный сайт
  • Портал
Интернет-магазин
  • Готовые решения
    • Готовые интернет-магазины
    • Готовые сайты
    • Для интернет-магазина
    • Инструменты
    • Интеграция
    • Маркетинг, реклама
    • Мобильные приложения
    • Поддержка клиентов
    • Решения для Битрикс24
  • Лицензии «1С-Битрикс: Управление сайтом»
  • Лицензии 1С-Битрикс24
  • Бесплатно попробовать «1С-Битрикс: Управление сайтом»
Блог
Сертификаты
Контакты
Создание и продвижение сайтов FreeWork
+7 996 995-30-06
+7 996 995-30-06 В режиме реального времени
Заказать звонок
E-mail
w-bitrix@mail.ru
Адрес
Вся Россия
Режим работы
24/7
Техническая помощь
Войти
О разработчике
Услуги
  • Разработка сайтов
    Разработка сайтов
    • Разработка простого сайта
    • Корпоративный сайт
    • Интернет-магазин
  • Поддержка сайтов
    Поддержка сайтов
    • Техническая поддержка (Полный пакет)
    • Разовая задача
  • Продвижение сайтов
    Продвижение сайтов
    • SEO оптимизация
    • Контекстная реклама
  • Дизайн сайтов
    Дизайн сайтов
    • Разработка дизайна сайта
Стоимость работ
Портфолио
  • Leanding page
  • Интернет магазин
  • Корпоративный сайт
  • Портал
Интернет-магазин
  • Готовые решения
    • Готовые интернет-магазины
      • B2B
      • Авто
      • Бытовая техника, электроника и оборудование
      • Детские товары
      • Другое
      • Красота и здоровье
      • Мебель
      • Одежда, обувь, аксессуары
      • Подарки и сувениры
      • Продукты питания
      • Спорт, туризм, отдых
      • Строительство и ремонт
      • Товары для животных
      • Украшения, аксессуары
      • Универсальные
    • Готовые сайты
      • Landing page
      • Информационный портал
      • Каталог товаров, услуг
      • Корпоративный сайт
      • Персональный сайт
      • Универсальные
    • Для интернет-магазина
      • Другое
      • Интеграция с онлайн-кассами
      • Каталог товаров
      • Корзина, покупка
      • Курсы валют
      • Подарки, скидки
      • Работа с заказами
    • Инструменты
      • Для разработчиков
      • Контент-менеджеру
    • Интеграция
      • 1С и другие ERP
      • IP-телефония
      • SMS-шлюзы
      • Другое
      • Почтовые сервисы
      • Социальные сети
      • Торговые площадки
    • Маркетинг, реклама
      • SEO
      • Баннеры
      • Другое
      • Региональность
      • Статистика сайта
    • Мобильные приложения
    • Поддержка клиентов
      • Другое
      • Заказ звонка
      • Обратная связь
      • Онлайн-консультанты
      • Отзывы, комментарии
      • Подписки и рассылки
    • Решения для Битрикс24
      • CRM
      • Бизнес-процессы
      • Документы
      • Другое
      • Задачи
      • Импорт/экспорт
      • Инструменты
      • Сотрудники
      • Телефония
      • Чат-боты
  • Лицензии «1С-Битрикс: Управление сайтом»
  • Лицензии 1С-Битрикс24
  • Бесплатно попробовать «1С-Битрикс: Управление сайтом»
Блог
Сертификаты
Контакты
    Нужна консультация?
    Создание и продвижение сайтов FreeWork
    О разработчике
    Услуги
    • Разработка сайтов
      Разработка сайтов
      • Разработка простого сайта
      • Корпоративный сайт
      • Интернет-магазин
    • Поддержка сайтов
      Поддержка сайтов
      • Техническая поддержка (Полный пакет)
      • Разовая задача
    • Продвижение сайтов
      Продвижение сайтов
      • SEO оптимизация
      • Контекстная реклама
    • Дизайн сайтов
      Дизайн сайтов
      • Разработка дизайна сайта
    Стоимость работ
    Портфолио
    • Leanding page
    • Интернет магазин
    • Корпоративный сайт
    • Портал
    Интернет-магазин
    • Готовые решения
      • Готовые интернет-магазины
        • B2B
        • Авто
        • Бытовая техника, электроника и оборудование
        • Детские товары
        • Другое
        • Красота и здоровье
        • Мебель
        • Одежда, обувь, аксессуары
        • Подарки и сувениры
        • Продукты питания
        • Спорт, туризм, отдых
        • Строительство и ремонт
        • Товары для животных
        • Украшения, аксессуары
        • Универсальные
      • Готовые сайты
        • Landing page
        • Информационный портал
        • Каталог товаров, услуг
        • Корпоративный сайт
        • Персональный сайт
        • Универсальные
      • Для интернет-магазина
        • Другое
        • Интеграция с онлайн-кассами
        • Каталог товаров
        • Корзина, покупка
        • Курсы валют
        • Подарки, скидки
        • Работа с заказами
      • Инструменты
        • Для разработчиков
        • Контент-менеджеру
      • Интеграция
        • 1С и другие ERP
        • IP-телефония
        • SMS-шлюзы
        • Другое
        • Почтовые сервисы
        • Социальные сети
        • Торговые площадки
      • Маркетинг, реклама
        • SEO
        • Баннеры
        • Другое
        • Региональность
        • Статистика сайта
      • Мобильные приложения
      • Поддержка клиентов
        • Другое
        • Заказ звонка
        • Обратная связь
        • Онлайн-консультанты
        • Отзывы, комментарии
        • Подписки и рассылки
      • Решения для Битрикс24
        • CRM
        • Бизнес-процессы
        • Документы
        • Другое
        • Задачи
        • Импорт/экспорт
        • Инструменты
        • Сотрудники
        • Телефония
        • Чат-боты
    • Лицензии «1С-Битрикс: Управление сайтом»
    • Лицензии 1С-Битрикс24
    • Бесплатно попробовать «1С-Битрикс: Управление сайтом»
    Блог
    Сертификаты
    Контакты
      +7 996 995-30-06 В режиме реального времени
      Заказать звонок
      E-mail
      w-bitrix@mail.ru
      Адрес
      Вся Россия
      Режим работы
      24/7
      Нужна консультация?
      Создание и продвижение сайтов FreeWork
      Телефоны
      +7 996 995-30-06 В режиме реального времени
      Заказать звонок
      E-mail
      w-bitrix@mail.ru
      Адрес
      Вся Россия
      Режим работы
      24/7
      Создание и продвижение сайтов FreeWork
      • Кабинет
      • О разработчике
      • Услуги
        • Услуги
        • Разработка сайтов
          • Разработка сайтов
          • Разработка простого сайта
          • Корпоративный сайт
          • Интернет-магазин
        • Поддержка сайтов
          • Поддержка сайтов
          • Техническая поддержка (Полный пакет)
          • Разовая задача
        • Продвижение сайтов
          • Продвижение сайтов
          • SEO оптимизация
          • Контекстная реклама
        • Дизайн сайтов
          • Дизайн сайтов
          • Разработка дизайна сайта
      • Стоимость работ
      • Портфолио
        • Портфолио
        • Leanding page
        • Интернет магазин
        • Корпоративный сайт
        • Портал
      • Интернет-магазин
        • Интернет-магазин
        • Готовые решения
          • Готовые решения
          • Готовые интернет-магазины
            • Готовые интернет-магазины
            • B2B
            • Авто
            • Бытовая техника, электроника и оборудование
            • Детские товары
            • Другое
            • Красота и здоровье
            • Мебель
            • Одежда, обувь, аксессуары
            • Подарки и сувениры
            • Продукты питания
            • Спорт, туризм, отдых
            • Строительство и ремонт
            • Товары для животных
            • Украшения, аксессуары
            • Универсальные
          • Готовые сайты
            • Готовые сайты
            • Landing page
            • Информационный портал
            • Каталог товаров, услуг
            • Корпоративный сайт
            • Персональный сайт
            • Универсальные
          • Для интернет-магазина
            • Для интернет-магазина
            • Другое
            • Интеграция с онлайн-кассами
            • Каталог товаров
            • Корзина, покупка
            • Курсы валют
            • Подарки, скидки
            • Работа с заказами
          • Инструменты
            • Инструменты
            • Для разработчиков
            • Контент-менеджеру
          • Интеграция
            • Интеграция
            • 1С и другие ERP
            • IP-телефония
            • SMS-шлюзы
            • Другое
            • Почтовые сервисы
            • Социальные сети
            • Торговые площадки
          • Маркетинг, реклама
            • Маркетинг, реклама
            • SEO
            • Баннеры
            • Другое
            • Региональность
            • Статистика сайта
          • Мобильные приложения
          • Поддержка клиентов
            • Поддержка клиентов
            • Другое
            • Заказ звонка
            • Обратная связь
            • Онлайн-консультанты
            • Отзывы, комментарии
            • Подписки и рассылки
          • Решения для Битрикс24
            • Решения для Битрикс24
            • CRM
            • Бизнес-процессы
            • Документы
            • Другое
            • Задачи
            • Импорт/экспорт
            • Инструменты
            • Сотрудники
            • Телефония
            • Чат-боты
        • Лицензии «1С-Битрикс: Управление сайтом»
        • Лицензии 1С-Битрикс24
        • Бесплатно попробовать «1С-Битрикс: Управление сайтом»
      • Блог
      • Сертификаты
      • Контакты
      Нужна консультация?
      • +7 996 995-30-06 В режиме реального времени
        • Телефоны
        • +7 996 995-30-06 В режиме реального времени
        • Заказать звонок
      • Вся Россия
      • w-bitrix@mail.ru
      • 24/7

      Делаем ajax добавление в корзину на битрикс

      Главная
      —
      Блог
      —Делаем ajax добавление в корзину на битрикс
      Оформите заявку на сайте, мы свяжемся с вами в ближайшее время и ответим на все интересующие вопросы.
      Заказать услугу
      ?

      Все мы знаем, что у Битрикс есть свой механизм  добавления в корзину, но он громоздкий и довольно тяжелый в кастромизации.

      Потому мы рассмотрим свой механизм добавления в корзину товаров и торговых предложений . В современных реалиях все будем делать ajax добавление в корзину на битрикс.

      И так начнем  с  самого начала.

      В файле catalog.item/.default/card/template.php  — это шаблон отдельного товара в категории товаров битрикс, находим строку с кнопкой в корзину.

      Приблизительно следующего содержания:

      01
      02
      03
      04
      05
      06
      07
      08
      09
      10
      11
      12
      13
      14
      15
      16
      17
      case 'buttons':
      ?>
      <div class="product-item-info-container product-item-hidden"
       data-entity="buttons-block">
      <?
      if (!$haveOffers)
      {
      if ($actualItem['CAN_BUY'])
      {
                                      <a href="javascript:void(0);"
                                       data-ids="<?=$actualItem['ID']?>"
                                       data-count="1"
                                       data-url="<?=SITE_TEMPLATE_PATH?>/ajax/add2basket.php"
                                       class="product_button button-cart">В корзину</a>
                                                      
      <?
      }



      Для ссылки добавления в корзину прописываем свой уникальный класс или айди. Мы пропишем свой класс addbitrix в итоге у нас получится так:

      01
      02
      03
      04
      05
      06
      07
      08
      09
      10
      11
      12
      13
      14
      15
      16
      17
      case 'buttons':
      ?>
      <div class="product-item-info-container product-item-hidden"
       data-entity="buttons-block">
      <?
      if (!$haveOffers)
      {
      if ($actualItem['CAN_BUY'])
      {
                                      <a href="javascript:void(0);"
                                       data-ids="<?=$actualItem['ID']?>"
                                       data-count="1"
                                       data-url="<?=SITE_TEMPLATE_PATH?>/ajax/add2basket.php"
                                       class="product_button button-cart addbitrix">В корзину</a>
                                                      
      <?
      }



      Идем далее.
      Создадим js  файл с следующим содержимым
      01
      02
      03
      04
      05
      06
      07
      08
      09
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      61
      62
      63
      64
      65
      66
      67
      68
      69
      70
      71
      72
      73
      74
      75
      76
      77
      78
      79
      80
      81
      82
      83
      $(document).ready(function() {
          $('.addbitrix').on('click', function(event) {
                      event.preventDefault();
       
                      var $this = $(this);
                      var prodId = parseInt($this.data('ids'));
                      var cartAddUrl = $this.data('url');
                      var cnt = $this.data('count');;
       
                      var ajaxDataSend = {
                          OFFER_ID: prodId,
                          QUANTITY: cnt,
                          AJAX_ADD_TO_BASKET_WITH_DOP: 'Y',
       
                      };
       
                      ///console.log(ajaxDataSend);
       
                      $.ajax({
                          url:cartAddUrl,
                          type: 'POST',
                          data: ajaxDataSend,
       
                      })
                      .done(function(data) {
                          var data = $.parseJSON(data);
                           
                          if(data.RESPONSE == 'OK'){
                              BX.onCustomEvent('OnBasketChange'); // Обновляем корзину
       
                             //здесь уже Ваше модальное окно с уведомлением об успешном добавлении
                                alert("Товар успешно добавлен в корзину");
                               ///   modal.style.display = "block";
                             
                                
                               
                          }
                      })
                      .fail(function() {
                          //console.log("error");
                      })
                      .always(function() {
                          //console.log("complete");
                      });
       
       
      ///также нужно добавить прибавление и убавление товара. здесь уже в каждой верстке свои классы, код примерный
      $('.product_summ .counter_plus').on('click', function (e) {
       
              var price  = $('.products_variants input[name=1]:checked').attr('data-price');
              if(price == undefined){
                  price = $('#price_current_none_offer').html();
              }
              var count = $('.product_summ .counter_counter').html();
              $('#btn_basket_add').attr('data-count', count);
              var result = Number(price) * Number(count);
              result = result.toFixed();
              $('.product_summ .product_summ span').html(result + ' p');
              console.log(price);
       
          });
       
           $('.product_summ .counter_minus').on('click', function (e) {
       
              var price  = $('.products_variants input[name=1]:checked').attr('data-price');
              if(price == undefined){
                  price = $('#price_current_none_offer').html();
       
              }
              var count = $('.product_summ .counter_counter').html();
              if(Number(count) < Number(1)){
                  return false;
              }
              var count = $('.product_summ .counter_counter').html();
              $('#btn_basket_add').attr('data-count', count);
              var result = Number(price) * Number(count);
              result = result.toFixed();
              $('.product_summ .product_summ span').html(result + ' p');
              console.log(price);
       
          });
       
              });



      назовем его addcart.js и выведем его в подвале нашего шаблона.

      1
      2
      ///Правильное подключение
      $APPLICATION->AddHeadScript(SITE_TEMPLATE_PATH."/addcart.js");



      далее создаем файл аджакс и размещаем его по пути

      1
      <?=SITE_TEMPLATE_PATH?>/ajax/add2basket.php



      Содержимое файла

      01
      02
      03
      04
      05
      06
      07
      08
      09
      10
      11
      12
      13
      14
      15
      16
      17
      18
      19
      20
      21
      22
      23
      24
      25
      26
      27
      28
      29
      30
      31
      32
      33
      34
      35
      36
      37
      38
      39
      40
      41
      42
      43
      44
      45
      46
      47
      48
      49
      50
      51
      52
      53
      54
      55
      56
      57
      58
      59
      60
      61
      62
      63
      64
      65
      66
      67
      68
      69
      70
      71
      72
      73
      74
      75
      76
      77
      78
      <?
      define("NO_KEEP_STATISTIC", true);
      define('BX_SESSION_ID_CHANGE', false);
      define('NO_AGENT_CHECK', true);
       
      require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog_before.php");
       
      use \Bitrix\Main,
          \Bitrix\Main\Localization\Loc as Loc,
          Bitrix\Main\Loader,
          Bitrix\Main\Config\Option,
          Bitrix\Sale\Delivery,
          Bitrix\Sale\PaySystem,
          Bitrix\Sale,
          Bitrix\Catalog,
          Bitrix\Sale\Order,
          Bitrix\Sale\Basket,
          Bitrix\Currency\CurrencyManager,
          Bitrix\Sale\DiscountCouponsManager,
          Bitrix\Main\Context;
      use \Bitrix\Highloadblock as HL;
       
      if(!Loader::includeModule("catalog") ||
       !Loader::includeModule("sale") ||
       !Loader::includeModule("main") ||
      !Loader::includeModule("iblock"))
          die();
       
      global $USER;
       
      $SITE_ID = Context::getCurrent()->getSite();
      $CURRENCY_CODE = CurrencyManager::getBaseCurrency();
       
      //Форма магазина
      if( isset($_REQUEST["AJAX_ADD_TO_BASKET_WITH_DOP"]) &&
       $_REQUEST["AJAX_ADD_TO_BASKET_WITH_DOP"] == "Y" ) {
       
      //     $request = Context::getCurrent()->getRequest();
       
           $OFFER_ID = intval($request->get("OFFER_ID"));
           $QUANTITY = intval($request->get("QUANTITY"));
           $PRODUCT = CIBlockElement::GetByID(/*CCatalogSku::GetProductInfo(*/$OFFER_ID/*)['ID']*/)->GetNext();
           // Получение корзины для текущего пользователя
      $basket = \Bitrix\Sale\Basket::loadItemsForFUser(
         \Bitrix\Sale\Fuser::getId(),
         \Bitrix\Main\Context::getCurrent()->getSite()
      );
       
      if($QUANTITY > 1)  $QUANTITY =  $QUANTITY;
       else   $QUANTITY = 1;
       
      if ($item = $basket->getExistsItem('catalog', $PRODUCT["ID"])){
       
         //Обновление товара в корзине
         $item->setField('QUANTITY', $item->getQuantity() + $QUANTITY);
          
      }else{
       
         //Добавление товара
         $item = $basket->createItem('catalog', $PRODUCT["ID"]);
         $item->setFields([
            'QUANTITY' => $QUANTITY,
            'CURRENCY' => \Bitrix\Currency\CurrencyManager::getBaseCurrency(),
            'LID' => \Bitrix\Main\Context::getCurrent()->getSite(),
            'PRODUCT_PROVIDER_CLASS' => \Bitrix\Catalog\Product\Basket::getDefaultProviderName() ,
         ]);
      }
       
      //Сохранение изменений
      $basket->save();
       
          echo json_encode(Array('RESPONSE' => 'OK'));
       
      }
       
      require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php");
       
      die();



      Если вни мательно рассмотреть код , то видим что данный файл добавляет товар в корзину если его нету, или обновляет значение в корзине если товар там уже есть.
      На детальной странице товара код добавления следующий.

      1
      2
      3
      4
      5
      <a href="javascript:void(0);"
                                       data-ids="<?=$actualItem["ID"]?>"
                                       data-count="<?=COUNT_ADD_BASKET?>"
                                       data-url="<?=SITE_TEMPLATE_PATH?>/ajax/addToCart.php"
                                       class="product_button ваш класс">В корзину</a>



      Назад к списку
      О разработчике
      Услуги
      Стоимость работ
      Портфолио
      Блог
      Сертификаты
      Лицензия 1С Битрикс
      Готовые решения
      Лицензии «1С-Битрикс: Управление сайтом»
      Лицензии 1С-Битрикс24
      Бесплатно попробовать «1С-Битрикс: Управление сайтом»
      Услуги
      Разработка сайтов
      Поддержка сайтов
      Продвижение сайтов
      Дизайн сайтов
      +7 996 995-30-06
      +7 996 995-30-06 В режиме реального времени
      Заказать звонок
      E-mail
      w-bitrix@mail.ru
      Адрес
      Вся Россия
      Режим работы
      24/7
      w-bitrix@mail.ru
      Вся Россия
      © 2025 Создание и продвижение сайтов bitrix-developer (Внедрение Битрикс , 1С , Битрикс 24) Полное администрирование проекта