Услуги по настройке корзины и оформления заказа на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 30 из 69 услугВсе 1626 услуг
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1173
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Разработка на базе Битрикс, Битрикс24, 1С для компании Development of an Online Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    745
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Корзина и оформление заказа на 1С-Битрикс

Почему sale.order.ajax — главный враг конверсии

Штатный sale.order.ajax — компонент, который Битрикс предлагает для оформления заказа. Многошаговый: доставка → оплата → подтверждение. На каждом переходе теряется 10-15% пользователей. Три шага — и треть покупателей, которые уже положили товар в корзину, ушли. Не потому что передумали — потому что интерфейс спотыкнулся.

А ещё sale.order.ajax кидает 500-ку, если не настроен хотя бы один обработчик доставки. Или виснет на 15 секунд при расчёте СДЭК, потому что запрос к API синхронный и без таймаута. Или требует ИНН у физлица, потому что свойство заказа не разделено по типу плательщика. Каждый такой кейс — прямые потери.

Мы переделываем чекаут с одним фокусом — конверсия. Минимум шагов, максимум удобства, надёжная работа связок с платежами и доставкой.

Одношаговый чекаут: всё на одном экране

Все поля на одной странице. Логичная группировка, никаких лишних переходов.

  • Контактные данные — имя, телефон, email. Три поля. Не пять, не десять, не «укажите дату рождения для программы лояльности»
  • Доставка — выбрал город → увидел способы с ценами и сроками. AJAX-расчёт через API СДЭК, Boxberry, Почты России. Запросы параллельные с таймаутом 3 секунды — если один API завис, остальные покажутся
  • Оплата — способы фильтруются по выбранной доставке. Наложенный платёж при самовывозе? Не показываем
  • Промокод — поле видно, проверка мгновенная, скидка отображается в итоге сразу
  • Итого — динамический пересчёт при любом изменении. Поменял количество → сумма → стоимость доставки → итого. Без перезагрузки страницы

Под капотом

  • Полный AJAX — ни одной перезагрузки. Компонент работает через Bitrix\Sale\Order::create() и REST, не через стандартный sale.order.ajax
  • Валидация в реальном времени: не «заполните поле правильно», а «номер телефона: +7 (__) --». Маска inputmask + серверная проверка
  • Сохранение данных при случайном уходе — sessionStorage хранит введённое, при возврате всё на месте
  • Автозаполнение адреса через DaData: начал вводить улицу → полный адрес с индексом, FIAS-кодом и координатами. Меньше ошибок на стороне курьерской службы
  • Поддержка свойств заказа по типу плательщика — физлицо видит одни поля, юрлицо — другие. Переключатель в форме

Гостевой заказ: убить обязательную регистрацию

«Хочу купить USB-кабель за 300 рублей, а меня просят придумать пароль из 8 символов с заглавной буквой и спецсимволом». Обязательная регистрация убивает 25-30% конверсии на мелких заказах.

  • Покупка без аккаунта — оформляем через CSaleUser::GetAnonymousUserID() или создаём пользователя автоматически с рандомным паролем
  • После оформления — письмо с данными для входа. Хочет — активирует аккаунт, не хочет — и так получит заказ
  • Повторный визит — определяем по email или телефону, привязываем к существующему аккаунту
  • Авторизация прямо в чекауте: SMS-код вместо пароля — через Bitrix\Main\Authentication\ShortCode или интеграцию с SMS-гейтом

Кросс-селл: допродажи, которые не раздражают

В корзине

Рекомендации на основе реальных данных из b_sale_basket — «с этим товаром покупали» на базе ассоциативных правил, а не рандомных товаров.

  • Аксессуары: к телефону — чехол и защитное стекло. Привязка через свойство инфоблока PROPERTY_ACCESSORIES
  • Оптовая мотивация: «Возьмите 3 — сэкономьте 15%». Реализуется через правила корзины в b_sale_discount
  • Порог бесплатной доставки: «Добавьте на 500 руб. — доставка бесплатно». Простой виджет, но увеличивает средний чек на 10-20%

Управление через админку

Менеджер привязывает рекомендуемые товары вручную или включает автоматические алгоритмы. Правила отображения: категория, диапазон цен, наличие. A/B-тестирование разных стратегий — без разработчика.

Брошенные корзины: возвращаем 15-20% ушедших

Сохранение

  • Авторизованные — корзина в b_sale_basket, доступна с любого устройства
  • Гости — cookie с TTL 30 дней. FUSER_ID привязан к cookie, корзина не пропадёт через час
  • Синхронизация: добавил с телефона, оформил с ноутбука — корзина единая

Возврат

  • Email-серия: 3 письма. Через 1 час — напоминание. Через 24 часа — «ваш товар заканчивается». Через 72 часа — персональный промокод на 5-10%. Через sale.basketcomponent + CEvent::Send() с отложенной отправкой через агенты
  • Push-уведомления через браузер — Notification API, подписка через сервис-воркер
  • Ретаргетинг — данные о корзине уходят в Яндекс.Директ через eCommerce-события

Аналитика отказов

На каком шаге уходят? Если на выборе доставки — цена доставки шокирует. Если на оплате — карта отклоняется, 3D-Secure не проходит. Ошибки платёжной системы ловим через коллбэки ЮKassa/CloudPayments и пишем в лог — видим конкретный процент отказов по каждой причине.

Промокоды: правильная реализация

Тип Механизм в Битрикс Нюанс
Фиксированная скидка CSaleDiscount, тип «на заказ» Не забыть ограничить минимальную сумму — иначе скидка 500₽ при заказе на 300₽
Процентная CSaleDiscount, условие «купон» Максимальная скидка — задать потолок, иначе при заказе на 500К скидка 50% = 250К
Бесплатная доставка Правило корзины + привязка к службе доставки Работает только с конкретными службами — нельзя дать бесплатную «любую»
Подарок Автодобавление товара в корзину через обработчик Товар-подарок должен быть в наличии, иначе корзина сломается

UX промокода:

  • Поле видно, но не кричит — не отвлекает тех, у кого кода нет
  • Мгновенная проверка: «Промокод истёк» / «Минимальная сумма 3000₽» — а не «Error 422»
  • Скидка видна в итоговом расчёте отдельной строкой
  • Можно убрать промокод и применить другой

UX-оптимизация: мелочи, которые решают

Десктоп:

  • Прогресс-бар — пользователь видит, где он
  • Умные дефолты — самый популярный способ доставки уже выбран (определяем по статистике b_sale_order)
  • Минимум обязательных полей — только то, без чего нельзя отправить заказ. Отчество? Необязательно. Комментарий? Необязательно
  • Пересчёт без лоадеров на 5 секунд — debounce 300ms на AJAX-запросах

Мобильные:

  • Крупные кнопки — палец не промахивается. min-height: 48px по гайдам Google
  • Правильные типы клавиатуры: type="tel" для телефона, inputmode="numeric" для количества
  • Кнопка «Оформить» зафиксирована внизу — position: sticky
  • Сворачиваемые секции — экранное пространство на 375px дорого

Обработка ошибок:

  • «Проверьте номер карты» вместо «Payment processing error»
  • Автопрокрутка к первой ошибке — scrollIntoView({ behavior: 'smooth' })
  • «Товар закончился» — обрабатываем в чекауте без потери заполненных данных. Предлагаем аналог или убираем из корзины с пересчётом

Интеграции

  • DaData — адрес, ФИО, ИНН. Подсказки по мере ввода, валидация ФИАС
  • Яндекс.Карты — выбор ПВЗ на карте, геолокация для определения города
  • СДЭК, Boxberry, Почта России — API-расчёт стоимости и сроков в реальном времени
  • ЮKassa, CloudPayments, Тинькофф — приём платежей, рекуррентные списания, холдирование
  • CRM — заказ автоматически уходит в Битрикс24, создаётся сделка с привязкой к контакту
  • Склад — проверка остатков через CCatalogStoreProduct::GetList() в реальном времени

Сроки

Задача Срок
Оптимизация текущего чекаута 1-2 недели
Одношаговый чекаут с нуля 3-5 недель
Система промокодов 1-2 недели
Кросс-селл в корзине 1 неделя
Механизм брошенных корзин 2-3 недели
Комплексная переработка 6-10 недель

Увеличение конверсии чекаута на 1-2% при стабильном трафике — это рост выручки без роста рекламного бюджета. Самый быстрый ROI в e-commerce.