Настройка самовывоза и пунктов выдачи на 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Настройка самовывоза и пунктов выдачи на 1С-Битрикс
Простая
~1 рабочий день
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • 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С-Битрикс

Самовывоз — стандартная опция для любого интернет-магазина с физическими точками присутствия. В Битрикс он реализуется через встроенный обработчик \Bitrix\Sale\Delivery\Services\Pickup, но стоит задача показать на сайте список точек самовывоза на карте — нужна кастомизация шаблона и логики.

Встроенный обработчик самовывоза

Битрикс включает базовый обработчик самовывоза: «Магазин → Настройки → Службы доставки → Добавить» → тип «Самовывоз». Базовые параметры:

  • Название («Самовывоз из магазина»)
  • Цена (0 руб. или фиксированная стоимость)
  • Дополнительные поля с адресами точек (хранятся в настройках обработчика)

Этого достаточно для одной точки самовывоза.

Несколько точек самовывоза

Для нескольких точек рекомендуется инфоблок «Точки самовывоза» — каждый элемент это одна точка:

  • Поля: название, адрес, режим работы, телефон, координаты (lat/lon)
  • Свойства: ACTIVE (работает/не работает), METRO (ближайшая станция метро), CITY_CODE (для фильтрации по городу)
class MultiPickupDelivery extends \Bitrix\Sale\Delivery\Services\Base
{
    public static function getClassTitle(): string { return 'Самовывоз'; }

    protected function calculateConcrete(
        \Bitrix\Sale\Shipment $shipment
    ): \Bitrix\Sale\Delivery\CalculationResult {
        $result = new \Bitrix\Sale\Delivery\CalculationResult();
        $result->setDeliveryPrice(0.0);
        $result->setPeriodDescription('Готово через 1–2 часа после оплаты');
        return $result;
    }

    // Получить список активных точек для выбранного города
    public static function getPickupPoints(string $city = ''): array
    {
        $filter = [
            'IBLOCK_ID' => PICKUP_POINTS_IBLOCK_ID,
            'ACTIVE'    => 'Y',
        ];

        if ($city) {
            $filter['PROPERTY_CITY'] = $city;
        }

        $res    = \CIBlockElement::GetList([], $filter, false, false, [
            'ID', 'NAME', 'PROPERTY_ADDRESS', 'PROPERTY_SCHEDULE',
            'PROPERTY_LAT', 'PROPERTY_LON', 'PROPERTY_METRO',
        ]);
        $points = [];

        while ($row = $res->Fetch()) {
            $points[] = [
                'id'       => $row['ID'],
                'name'     => $row['NAME'],
                'address'  => $row['PROPERTY_ADDRESS_VALUE'],
                'schedule' => $row['PROPERTY_SCHEDULE_VALUE'],
                'lat'      => (float)$row['PROPERTY_LAT_VALUE'],
                'lon'      => (float)$row['PROPERTY_LON_VALUE'],
                'metro'    => $row['PROPERTY_METRO_VALUE'],
            ];
        }

        return $points;
    }
}

Карта точек самовывоза в шаблоне

В шаблоне компонента оформления заказа при выборе метода «Самовывоз» показываем карту:

// Инициализация карты Яндекс с точками самовывоза
window.initPickupMap = function(points) {
    ymaps.ready(function() {
        var map = new ymaps.Map('pickup-map', {
            center: [55.76, 37.64],
            zoom: 10,
        });

        points.forEach(function(point) {
            var placemark = new ymaps.Placemark(
                [point.lat, point.lon],
                {
                    balloonContentHeader: point.name,
                    balloonContentBody:   point.address + '<br>' + point.schedule,
                },
                { preset: 'islands#blueDotIcon' }
            );

            placemark.events.add('click', function() {
                document.getElementById('pickup_point_id').value = point.id;
                document.getElementById('pickup_point_name').innerText = point.name;
            });

            map.geoObjects.add(placemark);
        });
    });
};

При клике на точку заполняется скрытое поле pickup_point_id, которое сохраняется в свойствах заказа. Менеджер видит в адм. части выбранный пункт самовывоза.

Интеграция с ПВЗ курьерских служб

Если нужно объединить собственные точки самовывоза и ПВЗ сторонних служб (СДЭК, Boxberry) в один UI — создаём единый компонент выбора пункта. На вкладках: «Наши магазины», «ПВЗ СДЭК», «Постаматы». Данные для каждой вкладки загружаются AJAX при переключении.

Сроки

Состав Срок
Обработчик самовывоза + инфоблок точек 2–3 дня
+ Карта с точками на оформлении +1–2 дня
+ Объединённый UI с ПВЗ курьерских служб +3 дня