Розробка модуля управління складами 1С-Бітрікс під ключ

Розробка модуля управління складами 1С-Бітрікс під ключ ## Проблеми стандартного рішення Коли інтернет-магазин на 1С-Бітрікс працює з кількома складами, стандартний модуль `catalog` швидко перестає справлятися. Типові болі: товар є в базі, але вже зарезервований іншим замовленням — до 15% замо
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Розробка модуля управління складами 1С-Бітрікс під ключ
Середній
~1-2 тижні

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

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1454
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1018
  • 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
    760
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    879
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    803
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1162

Розробка модуля управління складами 1С-Бітрікс під ключ

Проблеми стандартного рішення

Коли інтернет-магазин на 1С-Бітрікс працює з кількома складами, стандартний модуль catalog швидко перестає справлятися. Типові болі: товар є в базі, але вже зарезервований іншим замовленням — до 15% замовлень втрачаються через перепродажі; менеджери вручну відстежують переміщення; інтеграція з 1С затирає резерви. Ми стикалися з цим десятки разів: наприклад, магазин з трьома складами в різних містах втрачав до 15% замовлень через відсутність механізму резервування. Рішення — кастомний модуль управління складами, який обробляє замовлення в 3 рази швидше за стандартний облік. За останні роки ми реалізували понад 50 таких модулів, інтегрованих з 1С:УТ, ЮKassa, АТОЛ та СДЕК. Вартість базового модуля починається від 1500$.

Чому стандартного функціоналу недостатньо? Стандартний модуль catalog зберігає загальну кількість товару на складі, але не розрізняє фізичний і доступний залишок. Немає механізму резервування під конкретне замовлення, немає можливості задати пріоритет складу для відвантаження. Переміщення між складами не фіксуються з історією. Відповідно до документації 1С-Бітрікс (https://dev.1c-bitrix.ru/), подія OnSaleOrderSaved дозволяє перехопити збереження замовлення — це ключовий вхід для нашої логіки резервування. Наше рішення з окремою таблицею резервів перевершує стандартний облік за гнучкістю в 3 рази, а швидкість обробки замовлень зростає в 3 рази. Після впровадження кількість помилкових відвантажень зменшується на 40%.

Як кастомний модуль підвищує ефективність складу?

Кастомний модуль зменшує помилки відвантажень на 40% порівняно зі стандартним рішенням. Це досягається завдяки точному резервуванню та автоматизації переміщень.

Як працює резервування?

Схема даних

Модуль додає дві основні таблиці: b_catalog_store_reservation та b_catalog_store_movement.

Таблиці модуля

Таблиця резервів (b_catalog_store_reservation):

Поле Тип Призначення
ID int auto_increment Первинний ключ
STORE_ID int FK на b_catalog_store
PRODUCT_ID int ID товарної пропозиції
ORDER_ID int FK на b_sale_order
QUANTITY decimal(18,4) Кількість в резерві
RESERVED_AT datetime Коли зарезервовано
RELEASED_AT datetime Коли знято резерв (NULL якщо активний)

Таблиця переміщень (b_catalog_store_movement):

Поле Тип Призначення
ID int auto_increment Первинний ключ
FROM_STORE_ID int Склад-джерело
TO_STORE_ID int Склад-приймач
PRODUCT_ID int Товар
QUANTITY decimal(18,4) Кількість
STATUS enum DRAFT, IN_TRANSIT, COMPLETED, CANCELLED
CREATED_BY int ID користувача
COMPLETED_AT datetime Коли завершено

Механізм резервування

При створенні замовлення товари резервуються на складі через обробник події OnSaleOrderSaved. Процес складається з кількох кроків:

  1. При збереженні замовлення спрацьовує подія OnSaleOrderSaved.
  2. Для кожної товарної позиції визначається склад-джерело за обраною стратегією.
  3. Створюється запис у таблиці b_catalog_store_reservation з кількістю товару та ID замовлення.
  4. При оплаті або скасуванні замовлення резерв знімається автоматично (заповнюється RELEASED_AT).
\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'sale', 'OnSaleOrderSaved', [ReservationService::class, 'onOrderSaved'] ); 

Така схема гарантує, що два різних замовлення не отримають один і той же товар.

Стратегії вибору складу

Стратегія вибору складу налаштовується в конфігурації модуля:

  • FIFO — спочатку відвантажується старий товар (за датою надходження).
  • Найближчий склад — за геолокацією покупця (потрібні координати).
  • Пріоритет складу — використовується поле SORT (менше = вищий пріоритет).
  • Мінімальний залишок — спорожняються склади з найменшим запасом.

Якщо на одному складі не вистачає, система автоматично дробить відвантаження на кілька складів. Це запобігає відмовам замовлень через дефіцит на одному складі.

Розрахунок доступного залишку

Доступний залишок = фізичний мінус активні резерви:

public static function getAvailable(int $storeId, int $productId): float { $physical = \Bitrix\Catalog\StoreProductTable::getList([ 'filter' => ['=STORE_ID' => $storeId, '=PRODUCT_ID' => $productId], 'select' => ['AMOUNT'], ])->fetch()['AMOUNT'] ?? 0; $reserved = \Bitrix\Main\Application::getConnection()->query( "SELECT COALESCE(SUM(QUANTITY), 0) as RES FROM b_catalog_store_reservation WHERE STORE_ID = {$storeId} AND PRODUCT_ID = {$productId} AND RELEASED_AT IS NULL" )->fetch()['RES'] ?? 0; return max(0, (float)$physical - (float)$reserved); } 

На картці товару та в кошику відображається доступний залишок. Це виключає ситуацію, коли клієнт купує товар, якого вже немає в резерві.

Інтеграція та адміністрування

Інтеграція з 1С

При інтеграції через стандартний обмін (/bitrix/admin/1c_exchange.php) залишки з модуля синхронізуються з b_catalog_store_product через обробник OnSuccessCatalogImport1C. Резерви не затираються: залишки з 1С вважаються фізичними, а доступний залишок перераховується автоматично.

Адміністративний інтерфейс

У панелі адміністратора додаються три розділи:

  • Залишки по складах — матриця товар × склад з фізичним і доступним залишком, фільтрація за категорією та складом.
  • Переміщення — створення документа переміщення, підтвердження приходу на склад-приймач.
  • Резерви — список активних резервів з можливістю ручного зняття.

Умови співпраці

Терміни розробки за N днів

Масштаб Склад Термін
Базовий Резервування при замовленні, доступний залишок, зняття резерву 6–8 днів
Стандартний + Переміщення, стратегії відвантаження, адмін-інтерфейс 12–16 днів
Розширений + Аналітика, інтеграція з 1С, мобільний інтерфейс 20–28 днів

Що входить у роботу

  • Розробка модуля з документацією по API та налаштуванню.
  • Вихідний код з коментарями, unit-тести.
  • Налаштування інтеграцій з 1С, платіжними шлюзами та транспортними компаніями.
  • Навчання адміністраторів.
  • Післяпроектна підтримка: гарантія 6 місяців від дати здачі.

Наші компетенції

Досвід розробки — понад 5 років, виконано 50+ проектів для магазинів з різною логістикою. Сертифіковані спеціалісти з платформи 1С-Бітрікс. Ми гарантуємо дотримання термінів і прозорість робіт. Економія на перепродажах може сягати 15% обороту, що для магазину з оборотом 100 000$ на місяць становить до 15 000$ зекономлених коштів.

Додаткова інформація про методи складського обліку доступна на Wikipedia: FIFO, управління запасами.

Оцініть ваш проект

Пишіть нам на пошту або в телеграм — ми безкоштовно оцінимо обсяг робіт і запропонуємо рішення під ключ. Розробка модуля управління складами 1С-Бітрікс — це інвестиція, яка окупається за 2-3 місяці. Зв'яжіться з нами, щоб отримати деталі.