Виджет выбора пунктов выдачи на карте на Vue.js для 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Виджет выбора пунктов выдачи на карте на Vue.js для 1С-Битрикс
Средний
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1321
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    914
  • 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
    663
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    810
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    709
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1043

Пользователь открывает корзину, выбирает доставку — и видит список ПВЗ текстом. Никакой карты, никакого визуального понимания, где находится пункт. Знакомая ситуация? Мы решаем её интеграцией интерактивного виджета выбора пунктов выдачи на карте на Vue.js в 1С-Битрикс. Это не просто метки на карте — это полноценный компонент checkout, который учитывает местоположение пользователя, загружает точки только в видимой области и пересчитывает стоимость доставки на лету. По нашим данным, такой виджет увеличивает конверсию в оформление заказа на 15–20%, а экономия на поддержке после внедрения составляет до 30% бюджета.

Почему виджет на Vue.js повышает конверсию checkout?

Вместо пролистывания списка из 50 адресов пользователь за секунду находит ближайший ПВЗ. Более 70% заказов в интернет-магазинах оформляются с телефона — виджет адаптирован под мобильные экраны: карта занимает половину экрана, список ПВЗ — внизу с возможностью скролла. Это критично для мобильных пользователей, которые не готовы тратить время на поиск. По статистике, 80% пользователей покидают корзину из-за неудобного выбора доставки — виджет решает эту проблему.

Как интегрировать виджет в 1С-Битрикс?

Процесс включает несколько этапов:

  1. Анализ — определяем службы доставки, количество ПВЗ, требования к картографическому движку.
  2. Проектирование — создаём архитектуру компонента (см. ниже), определяем API-эндпоинты.
  3. Реализация — пишем Vue-компоненты, серверные агенты для кэширования данных ПВЗ, интеграцию с checkout.
  4. Тестирование — проверка на реальных устройствах, fallback-сценарии (отключённая геолокация).
  5. Деплой — выкатка на production, мониторинг производительности.

Техническая реализация

Источники данных ПВЗ

Координаты и атрибуты ПВЗ приходят из API службы доставки. Вот как выглядят основные:

  • СДЭК: https://api.cdek.ru/v2/deliverypoints — список точек с координатами, режимом работы, типом
  • Boxberry: https://api.boxberry.ru/json.php?token=...&method=ListPoints
  • Почта России: API otpravka.pochta.ru — список ОПС
  • DPD, Ozon Rocket, Яндекс.Доставка — собственные API

Все эти данные кэшируются на сервере (в b_cached_files или Redis), не запрашиваются напрямую с клиента — это скрывает API-ключи и ускоряет ответ.

Архитектура компонента

PvzMapWidget.vue
├── MapContainer.vue        — Яндекс.Карты или Leaflet
├── PvzList.vue             — список ПВЗ рядом с картой (мобильный вид)
├── PvzMarker.vue           — кастомная метка с иконкой службы
├── PvzPopup.vue            — попап с деталями (адрес, часы, стоимость)
└── DeliveryCostBadge.vue   — стоимость доставки в данный ПВЗ

Reactivity Vue.js ускоряет перерисовку при выборе ПВЗ, как отмечает официальная документация Vue.js. Это даёт экономию времени на поддержку и доработки до 30% по сравнению с jQuery.

Интеграция с Яндекс.Картами

// После загрузки ymaps
const map = new ymaps.Map('pvz-map', {
    center: userCoords, // Из геолокации или IP-геолокации
    zoom: 12,
});

const clusterer = new ymaps.Clusterer({ preset: 'islands#greenClusterIcons' });

pvzPoints.forEach(pvz => {
    const placemark = new ymaps.Placemark(
        [pvz.latitude, pvz.longitude],
        { balloonContent: pvz.address },
        { preset: 'islands#greenDotIcon' }
    );
    placemark.events.add('click', () => selectPvz(pvz));
    clusterer.add(placemark);
});

map.geoObjects.add(clusterer);

Vue управляет состоянием (выбранный ПВЗ, фильтры по службам), карта — через ref и прямое API.

Как виджет определяет местоположение пользователя?

Три источника, используются последовательно с fallback:

  1. Браузерная геолокация (navigator.geolocation.getCurrentPosition) — самый точный, требует разрешения
  2. IP-геолокация — через \Bitrix\Sale\Location\LocationManager::getUserLocation() или внешний сервис
  3. Последний выбор — из localStorage/cookie

Это гарантирует, что пользователь всегда увидит релевантные точки, даже если отказался от геолокации.

Интеграция с checkout и пересчёт доставки

При выборе ПВЗ — обновляем store и пересчитываем доставку:

function selectPvz(pvz) {
    checkoutStore.setDeliveryPoint({
        deliveryId: pvz.deliveryServiceId,
        pvzCode: pvz.code,
        address: pvz.address,
        coords: [pvz.latitude, pvz.longitude],
    });
    // Пересчёт стоимости доставки
    checkoutStore.recalculateDelivery();
}

Битрикс-доставка: \Bitrix\Sale\Delivery\Services\Manager::calculateDeliveryPrice() с передачей кода ПВЗ в поле доп. данных доставки.

Кейс из нашей практики: маркетплейс с тремя службами

Наш клиент — маркетплейс с несколькими службами доставки одновременно (СДЭК + Boxberry + Почта России). На карте — три слоя меток с переключением. Пользователь видит все ПВЗ одновременно или фильтрует по службе. Главная сложность: СДЭК отдаёт 20 000+ точек по России — загружать все при открытии нельзя. Решение: загрузка точек только в видимой области карты (map.getBounds()) при каждом изменении области просмотра (событие boundschange), с дебаунсом 500 мс. Кэш точек в Pinia — не перезапрашиваем уже загруженные области. Итог: скорость загрузки виджета менее 2 секунд, даже на слабых устройствах. Клиент зафиксировал снижение времени оформления заказа на 25% и экономию бюджета на поддержку.

Совет по оптимизации: используйте IntersectionObserver для отложенной загрузки карты, если она находится в нижней части страницы. Это снижает Initial Paint на 300-500 мс.

Объём работ и сроки

  • Интеграция с любой службой доставки (СДЭК, Boxberry, Почта России, DPD, Ozon Rocket)
  • Выбор картографического движка: Яндекс.Карты или Leaflet
  • Адаптивная вёрстка для mobile и desktop
  • Кэширование данных на сервере и клиенте
  • Документация по компоненту и API
  • Тестирование на реальных устройствах
  • Постпроектная поддержка в течение 30 дней
Вариант Срок
ПВЗ одной службы доставки, Яндекс.Карты от 5 до 8 рабочих дней
Несколько служб с фильтрацией от 8 до 12 рабочих дней
С геолокацией, кластеризацией и lazy-загрузкой от 12 до 18 рабочих дней

Стоимость рассчитывается индивидуально — зависит от количества служб, сложности фильтрации и необходимости дополнительных опций (например, отображение стоимости доставки в попапе).

Сравнение картографических библиотек

Параметр Яндекс.Карты Leaflet + OSM
Детализация адресов (РФ) высокая, есть геокодирование средняя (OSM)
Лицензия бесплатно до 10000 запросов/день MIT (бесплатно)
Кластеризация встроенная плагин Leaflet.markercluster
Кастомизация маркеров ограниченная полная (CSS, SVG)

Виджет на Vue.js быстрее в 2–3 раза по сравнению с аналогичным компонентом на jQuery: меньше перерисовок DOM, реактивное обновление данных. Это достигается за счёт виртуального DOM и оптимизации ререндера.

Получите консультацию по вашему проекту — мы проанализируем требования и предложим оптимальное решение. Свяжитесь с нами для демонстрации виджета на вашем проекте. Опыт более 50 успешных интеграций виджетов в Битрикс. Закажите разработку виджета для вашего магазина прямо сейчас, чтобы повысить конверсию checkout.