Налаштування самовивозу та пунктів видачі в 1С-Бітрікс
Самовивіз та ПВЗ — способи доставки, при яких покупець забирає замовлення самостійно. Знижують операційні витрати магазину і дають покупцю гнучкість. У 1С-Бітрікс це реалізується через стандартний модуль доставки, але конкретний сценарій (один склад, кілька точок самовивозу, або стороння мережа ПВЗ) вимагає різного підходу.
Самовивіз з однієї адреси
Найпростіший випадок: один склад/магазин, одна адреса самовивозу.
Магазин → Налаштування → Служби доставки → Додати → Ручна (фіксована вартість):
- Ціна: 0 (або символічна, наприклад 0)
- Опис: адреса самовивозу, години роботи
- Місцезнаходження: потрібні міста або вся країна
Жодних API, жодних інтеграцій — просто служба з нульовою ціною.
Кілька точок самовивозу
Коли точок кілька — потрібно дати покупцю вибір. Реалізація: список адрес у формі вибору способу доставки.
Точки зберігаються в інфоблоці (наприклад, PICKUP_POINTS) з властивостями: назва, адреса, координати, години роботи, додаткові умови. Шаблон компонента доставки виводить список через CIBlockElement::GetList.
// У шаблоні компонента delivery
$pickupPoints = \CIBlockElement::GetList(
['SORT' => 'ASC'],
['IBLOCK_ID' => PICKUP_POINTS_IB_ID, 'ACTIVE' => 'Y'],
false,
false,
['ID', 'NAME', 'PROPERTY_ADDRESS', 'PROPERTY_WORKING_HOURS', 'PROPERTY_LAT', 'PROPERTY_LON']
);
while ($point = $pickupPoints->Fetch()) {
// Виводимо список точок з картою
}
Вибраний ID точки зберігається у властивість замовлення PICKUP_POINT_ID. В адміністративній частині менеджер бачить, до якої точки спрямовано замовлення.
ПВЗ партнерської мережі на карті
Для магазинів, що використовують ПВЗ СДЕК, Boxberry, поштоматів тощо — віджети цих служб вбудовуються в шаблон компонента доставки. При виборі конкретної служби доставки на чекауті з'являється карта з ПВЗ.
// Перемикання між картами при виборі служби доставки
document.querySelectorAll('[name="DELIVERY_ID"]').forEach(radio => {
radio.addEventListener('change', function() {
// Приховуємо всі карти
document.querySelectorAll('.pvz-map').forEach(m => m.style.display = 'none');
// Показуємо карту обраної служби
const mapEl = document.getElementById('pvz-map-' + this.value);
if (mapEl) mapEl.style.display = 'block';
});
});
Підтвердження готовності замовлення до видачі
При самовивозі потрібно повідомити покупця, коли замовлення готове до отримання. Це робиться через подію зміни статусу замовлення:
// В обробнику події OnSaleStatusOrder
if ($newStatus === 'READY_FOR_PICKUP') {
$deliveryId = $order->getPropertyValueByCode('PICKUP_POINT_ID');
$this->sendReadyNotification($order, $deliveryId);
}
Шаблон повідомлення містить адресу точки, години роботи та термін зберігання (зазвичай 7–14 днів). Надсилається по email і SMS через стандартні події 1С-Бітрікс.
Зберігання замовлення: термін і нагадування
При самовивозі замовлення чекає покупця в точці. Якщо за 7 днів не забрали — менеджер повинен отримати нагадування. Агент 1С-Бітрікс раз на добу перевіряє замовлення зі статусом «Готово до видачі» та датою, старшою за N днів, надсилає нагадування менеджеру і покупцю.
public static function checkExpiredPickups(): string
{
$expiryDays = \Bitrix\Main\Config\Option::get('my_shop', 'pickup_expiry_days', 7);
$expiryDate = (new \DateTime())->modify("-{$expiryDays} days")->format('Y-m-d H:i:s');
$orders = \Bitrix\Sale\Internals\OrderTable::getList([
'filter' => [
'STATUS_ID' => 'READY_FOR_PICKUP',
'<DATE_UPDATE' => $expiryDate,
],
])->fetchAll();
foreach ($orders as $order) {
// Надсилаємо нагадування покупцю і менеджеру
self::sendExpiredNotification($order['ID']);
}
return __CLASS__ . '::checkExpiredPickups();';
}
Карта точок самовивозу на сторінці «Доставка»
Крім чекауту, карту з точками самовивозу розміщують на сторінці «Доставка та оплата». Покупець може заздалегідь вибрати зручну точку до початку оформлення замовлення. Компонент будується на інфоблоці точок самовивозу з виведенням на Яндекс Картах або Leaflet + OpenStreetMap.
Терміни виконання
Одна адреса самовивозу — 2–3 години. Кілька точок з картою, вибором і повідомленням — 2 дні. Інтеграція з віджетом стороннього ПВЗ (СДЕК, Boxberry) — 2–3 дні.







