Особистий кабінет постачальника для дропшипінгу на 1С-Бітрікс

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

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

Етапи розробки

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

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

На одному з проєктів з 60 постачальниками щодня менеджер витрачав 3 години на синхронізацію залишків через Excel. Після впровадження кабінету постачальника час скоротився до 10 хвилин. Такий самий біль — у багатьох дропшипінгових магазинів: постачальники не бачать свої замовлення, оновлюють ціни через листи, а помилки при ручному введенні сягають 12%. Розробка окремого особистого кабінету для кожного постачальника на 1С-Бітрікс вирішує ці проблеми: ізольовані права, власні товари та замовлення, масове завантаження CSV. Ми автоматизуємо рутину так, що постачальник витрачає 15 хвилин замість 4 годин — і помилки прямують до нуля.

Наш досвід: понад 10 років розробки на Бітрікс, 50+ проєктів в e-commerce. Гарантуємо стабільну роботу кабінету при навантаженні до 100 одночасно активних постачальників. Оцінимо ваш проєкт за 2 дні: зв'яжіться з нами для консультації.

Як організувати розмежування прав для постачальників?

У Бітрікс розмежування прав реалізується через групи користувачів. Створюємо групу «Постачальники» через API:

$groupId = CGroup::Add([
    'ACTIVE'  => 'Y',
    'NAME'    => 'Постачальники',
    'STRING_ID' => 'SUPPLIERS',
]);

Прив'язка конкретного постачальника до його товарів — через HL-блок SupplierProduct або властивість інфоблоку SUPPLIER_ID типу «Прив'язка до користувача» (E). Розділ кабінету постачальника закривається через перевірку групи:

if (!$USER->IsAuthorized() || !$USER->IsInGroup($supplierGroupId)) {
    LocalRedirect('/auth/?backurl=' . urlencode($_SERVER['REQUEST_URI']));
}

Докладніше про групи користувачів — у документації.

Склад кабінету: товари, замовлення, ціни

Що входить до блоку «Мої товари»?

Список товарів постачальника з поточним залишком і ціною. Запит через CIBlockElement::GetList з фільтром по SUPPLIER_ID:

$userId = $USER->GetID();

$res = CIBlockElement::GetList(
    ['NAME' => 'ASC'],
    [
        'IBLOCK_ID'              => CATALOG_IBLOCK_ID,
        'ACTIVE'                 => 'Y',
        'PROPERTY_SUPPLIER_ID'   => $userId,
    ],
    false,
    false,
    ['ID', 'NAME', 'DETAIL_PAGE_URL', 'PREVIEW_PICTURE', 'PROPERTY_SUPPLIER_ID']
);

Для кожного товару показуємо поточний залишок з b_catalog_store_product і ціну з b_catalog_price. Кожен постачальник має свій склад (b_catalog_store) — це дозволяє відстежувати залишки незалежно.

Як постачальник оновлює ціни та залишки?

Постачальник відправляє AJAX-запит з форми. Обробник перевіряє приналежність товару та виконує оновлення:

// /local/ajax/supplier-update.php
$productId = (int)$_POST['product_id'];
$newPrice  = (float)$_POST['price'];
$newQty    = (int)$_POST['quantity'];

$ownerCheck = CIBlockElement::GetProperty(
    CATALOG_IBLOCK_ID,
    $productId,
    'sort',
    'asc',
    ['CODE' => 'SUPPLIER_ID', 'VALUE' => $USER->GetID()]
);

if (!$ownerCheck->Fetch()) {
    echo json_encode(['error' => 'Доступ заборонено']);
    die();
}

$priceRow = CCatalogPrice::GetList(
    [], ['PRODUCT_ID' => $productId, 'CATALOG_GROUP_ID' => BASE_PRICE_GROUP_ID]
)->Fetch();

if ($priceRow) {
    CCatalogPrice::Update($priceRow['ID'], ['PRICE' => $newPrice, 'CURRENCY' => 'RUB']);
} else {
    CCatalogPrice::Add([
        'PRODUCT_ID'       => $productId,
        'CATALOG_GROUP_ID' => BASE_PRICE_GROUP_ID,
        'PRICE'            => $newPrice,
        'CURRENCY'         => 'RUB',
    ]);
}

$storeProductRow = CCatalogStoreProduct::GetList(
    [], ['PRODUCT_ID' => $productId, 'STORE_ID' => getSupplierStoreId($userId)]
)->Fetch();
if ($storeProductRow) {
    CCatalogStoreProduct::Update($storeProductRow['ID'], ['AMOUNT' => $newQty]);
} else {
    CCatalogStoreProduct::Add([
        'PRODUCT_ID' => $productId,
        'STORE_ID'   => getSupplierStoreId($userId),
        'AMOUNT'     => $newQty,
    ]);
}

echo json_encode(['success' => true]);

Як постачальник бачить свої замовлення?

Постачальник бачить лише ті замовлення, в яких є його товари. Прямий запит до b_sale_order не підходить — потрібен зв'язок через кошик:

$supplierId = $USER->GetID();
$connection = \Bitrix\Main\Application::getConnection();
$orders = $connection->query("
    SELECT DISTINCT
        o.ID,
        o.DATE_INSERT,
        o.PRICE,
        o.STATUS_ID,
        o.USER_ID,
        u.NAME,
        u.LAST_NAME,
        u.EMAIL
    FROM b_sale_order o
    JOIN b_sale_basket b ON b.ORDER_ID = o.ID
    JOIN b_iblock_element_property ep
        ON ep.IBLOCK_ELEMENT_ID = b.PRODUCT_ID
        AND ep.IBLOCK_PROPERTY_ID = " . SUPPLIER_PROP_ID . "
        AND ep.VALUE_NUM = {$supplierId}
    LEFT JOIN b_user u ON u.ID = o.USER_ID
    WHERE o.DATE_INSERT >= DATE_SUB(NOW(), INTERVAL 90 DAY)
    ORDER BY o.DATE_INSERT DESC
    LIMIT 100
");

На детальній сторінці замовлення постачальник бачить лише свої позиції кошика.

Підтвердження відвантаження та статуси

Постачальник підтверджує відвантаження своєї частини замовлення через інтерфейс. Статус фіксується в HL-блоці SupplierShipment з полями: UF_ORDER_ID, UF_SUPPLIER_ID, UF_STATUS (pending/confirmed/shipped/delivered), UF_TRACKING, UF_DATE_SHIPPED. Коли всі постачальники замовлення встановили статус shipped, агент автоматично змінює статус замовлення Бітрікс на «Відправлено».

Масове завантаження через CSV

Для постачальників з великим асортиментом (5000+ позицій) передбачена форма завантаження CSV-файлу з колонками: артикул, ціна, залишок. PHP-обробник знаходить товар за CML2_ARTICLE, перевіряє приналежність постачальнику, і якщо все коректно — оновлює ціну та залишок. Ліміт на кількість рядків (до 5000) виключає таймаут PHP. Для більших партій використовуємо фонові агенти.

Порівняння підходів до управління постачальниками

Підхід Ручне управління Наш кабінет постачальника
Час на оновлення 100 товарів 2 години 5 хвилин
Ризик помилок 12% <1%
Доступ до даних Повний до адмінки Тільки свої товари та замовлення
Масштабування До 10 постачальників До 100+ постачальників

Етапи розробки

Етап Тривалість Результат
Аналітика 1–2 дні Вимоги, прототипи, рольова модель
Проектування 2–3 дні Архітектура БД, структура компонентів
Реалізація 5–10 днів Готовий функціонал: компоненти, AJAX, інтеграції
Тестування 2–3 дні Перевірка прав, навантаження до 100 сесій
Деплой та документування 1–2 дні Встановлення, кешування, навчання менеджерів

Загальні терміни: від 1 до 4 тижнів залежно від складності (базовий кабінет — 1–1.5 тижні, повноцінний зі складом та CSV — 2–3 тижні, багатомовний з аналітикою — 3–4 тижні).

Чому стандартний особистий кабінет не підходить?

Вбудований модуль my в Бітрікс орієнтований на покупців: кошик, історія замовлень, особисті дані. Для постачальника потрібні інші сутності — управління залишками, масове завантаження, відстеження відвантажень. Крім того, без додаткових налаштувань постачальник не може бути обмежений лише своїми товарами. Тому потрібна розробка окремого компонентного рішення з власною системою прав.

Типові помилки, які ми запобігаємо

  • Відсутність перевірки прав на AJAX-запитах — зловмисник може оновлювати чужі ціни. Всі обробники перевіряють SUPPLIER_ID.
  • Немає тегованого кешування — при 100 постачальниках сторінка завантажується понад 10 секунд. Використовуємо кеш з тегами користувача.
  • Склад постачальника не створюється автоматично — залишки всіх постачальників змішуються. Ми створюємо склад при реєстрації постачальника через подію OnBeforeUserRegister.

Переваги автоматизації

Автоматичний обмін даними з постачальниками в 5 разів швидший за ручне введення. Помилки при ручному оновленні трапляються в 12% транзакцій — з нашим кабінетом цей показник прямує до нуля. Кожен постачальник економить мінімум 3 години на день на звірці залишків.

Отримайте консультацію з архітектури кабінету — опишіть вашу ситуацію, і ми запропонуємо оптимальне рішення. Замовте розробку кабінету постачальника під ключ і почніть приймати замовлення через 1–2 тижні.

Налаштування дропшипінгу на 1С-Бітрікс: інтернет-магазин без складу

Головне технічне завдання дропшипінг-магазину — не вітрина, а синхронізація залишків. Покупець оформив замовлення, а товар закінчився у постачальника 10 хвилин тому — і ви отримуєте повернення, негативний відгук і мінус до репутації на маркетплейсі. Ми будуємо дропшипінг-магазини на 1С-Бітрікс з автоматизацією всього ланцюжка: парсинг каталогу, синхронізація залишків кожні 5–15 хвилин, автоматична передача замовлень постачальнику, трекінг в особистому кабінеті. Послуги з налаштування дропшипінгу на 1С-Бітрікс включають повний цикл: від першого контакту з постачальником до SEO-оптимізації вітрини. За понад 6 років роботи ми запустили більше 40 таких магазинів — від single‑vendor до мультипостачальних каталогів на 300 000+ SKU.

Чому 1С-Бітрікс підходить для дропшипінгу?

Платформа дає готові інструменти для e-commerce: модуль «Інтернет-магазин», корзина, платіжні обробники, особистий кабінет — все з коробки. Не потрібно збирати магазин з плагінів. Обмін через CommerceML з постачальниками на 1С налаштовується за пару днів: вивантаження catalog.xml + offers.xml → автоматичний імпорт.

Мультипостачальник підтримує один товар від трьох постачальників з різними цінами. Бітрікс через типи цін (b_catalog_group) та мультисклад (b_catalog_store) дозволяє вести все в одній вітрині та підставляти кращу пропозицію. SEO-блок: bitrix:catalog.seo.filter для індексованих фільтрів, шаблони мета-тегів з підстановкою властивостей інфоблоку, автогенерація ЧПУ. Масштабованість — від 100 до 500 000+ товарів. При правильному налаштуванні фасетного індексу (b_catalog_iblock_index) каталог на півмільйона SKU працює без деградації.

Чи можна інтегрувати дропшипінг на 1С-Бітрікс без програмування?

Відповідь — ні, якщо ви хочете стабільної роботи. Типова помилка — спроба налаштувати імпорт через стандартний «Імпорт з XML» в адмінці. На каталозі з 10 000 товарів це призводить до таймаутів, дублів і ручного контролю. Ми пишемо кастомний імпортер під кожного постачальника — з обробкою помилок, інкрементальним оновленням і логуванням.

Технічна архітектура рішення

Імпорт каталогу: чому стандартний інструмент не працює на великих обсягах

Постачальники віддають дані хто як — і до кожного свій підхід:

  • YML/XML-фіди (формат Яндекс.Маркет) — найпоширеніший. Парсимо через XMLReader (не SimpleXML — на великих фідах у 500 МБ він з'їсть всю пам'ять, а XMLReader споживає в 10 разів менше ресурсів)
  • CSV/Excel — мапінг полів через конфіг, валідація, обробка кривих кодувань (так, досі постачальники надсилають CSV у Windows-1251)
  • API постачальника — прямий доступ до каталогу в реальному часі, найнадійніший варіант
  • CommerceML — стандартний формат обміну з 1С
Формат Продуктивність Надійність даних Час налаштування
YML/XML Середня (залежить від обсягу) Середня (потрібен парсер) 1–2 дні
CSV/Excel Низька (потрібна валідація) Низька (помилки кодувань, типів) 2–3 дні
API Висока (реальний час) Висока 3–5 днів
CommerceML Висока (інкрементальний) Висока 1–2 дні

Наш імпортер закриває рутину:

  • Завантаження за розкладом через агент Бітрікс (CAgent::AddAgent) — кожні 15–60 хвилин, налаштовується під постачальника
  • Мапінг категорій постачальника → розділи інфоблоку каталогу. Без ручного перетягування — правила задаються один раз
  • Завантаження та оптимізація зображень: ресайз через CFile::ResizeImageGet, стиснення, конвертація у WebP
  • Інкрементальне оновлення цін та залишків — без перестворення елементів інфоблоку. Оновлюємо лише змінені поля через CIBlockElement::SetPropertyValues та CCatalogProduct::Update
  • Генерація унікальних описів — перефразування або AI-сервіси
  • Націнка за правилами: відсоток, фікс, окремо за розділами каталогу

Без дедуплікації з'являються дублі товарів — вирішуємо мапінгом за артикулом або EAN. Якщо не налаштувати алерти при збоях фіду, магазин продає неіснуючі товари — налаштовуємо сповіщення менеджеру.

Як налаштувати синхронізацію залишків без втрат?

У дропшипінгу ви не контролюєте склад. Розбіжність між фідом і реальною наявністю — прямі збитки. Налаштування синхронізації кожні 5–60 хвилин (залежить від API/фіду постачальника). Автосховування товарів з нульовим залишком — CIBlockElement::Update(['ACTIVE' => 'N']). Жодної «порожньої» картки в catalog.section. Алерти менеджеру при масових розбіжностях — якщо раптом 30% каталогу обнулилося, це швидше збій фіду, ніж реальний розпродаж. Мультипостачальник: один товар від кількох джерел — через різні склади в b_catalog_store. Система підставляє пропозицію з наявністю та кращою ціною.

Обробка замовлень та логістика

Автоматична передача замовлень постачальнику — без ручного копіювання. Відправка через API, email (шаблон з b_event_message) або вивантаження в ОК постачальника. Розподіл позицій між постачальниками — якщо в sale.basket товари від різних джерел, замовлення розбивається на відвантаження. Отримання трек-номера → запис у властивість замовлення → сповіщення покупцеві через \Bitrix\Sale\Notify. Обробка часткової наявності: товар є в одного постачальника, немає в іншого — автоматичне розбиття замовлення.

Доставка в дропшипінгу — зона постачальника, але покупець бачить ваш бренд. Терміни доставки з урахуванням обробки у постачальника — не лише час транспортної компанії. Трекінг в особистому кабінеті через API СДЕК, Boxberry, Укрпошти. Об'єднання відправлень від кількох постачальників (при наявності проміжного складу). Повернення — координація між покупцем і постачальником через єдиний інтерфейс в адмінці. Брендована упаковка за домовленістю.

Ціноутворення та робота з кількома постачальниками

Націнка — те, на чому будується маржа. Відсоткова: 30% від закупівельної на весь каталог. Ступінчаста: до певної суми — 50%, наступний діапазон — 30%, вище — 20%. Категорійна: електроніка 15%, аксесуари 60%. Психологічне округлення через кастомне правило націнки. Моніторинг конкурентів — парсинг цін та автокоригування. RRP — рекомендована роздрібна ціна постачальника як верхній орієнтир.

Мультипостачальник розширює асортимент і страхує. Об'єднання каталогів в єдину структуру розділів інфоблоку. Дедуплікація — за артикулом (PROPERTY_ARTICLE) або EAN. Один товар = один елемент інфоблоку, кілька пропозицій у b_catalog_store. Автоматичний вибір постачальника: наявність → ціна → швидкість доставки. Окремий облік: закупівельні ціни в окремому типі цін (PURCHASE), історія замовлень, статистика. Панель з рейтингом надійності — хто зриває терміни, у кого розбіжності за залишками.

Унікалізація контенту та SEO

Десятки магазинів копіюють описи з фіду постачальника — і програють у SEO. Унікальні описи для топових категорій, що приносять основний трафік. Решта — шаблонна генерація з властивостей. Мета-теги за шаблоном: title і description через налаштування SEO інфоблоку: {=this.Name} купити в Києві | {=parent.Name} — ціна від {=this.catalog.price.BASE}. UGC — відгуки (iblock.vote), питання-відповіді, фото від покупців. Живий контент працює краще за копірайтинг. SEO-фільтри — bitrix:catalog.seo.filter створює індексовані сторінки перетинів: «червоні кросівки Nike 42 розмір» з унікальними мета-тегами.

Згідно з офіційною документацією 1С-Бітрікс, система підтримує до 20 типів цін і необмежену кількість складів.

Юридичні аспекти

Договір комісії або агентський з постачальником — юридична база. Інтеграція з ОФД за 54-ФЗ — фіскалізація чеків через sale.cashbox. Гарантія: перед покупцем відповідаєте ви, незалежно від відвантажувача. Налаштування бізнес-процесів (Bizproc) для автоматизації повернень.

Як ми запускаємо проєкт та що входить у роботу

Покрокова схема впровадження

  1. Аудит постачальників — збираємо специфікації фідів, API, узгоджуємо мапінг.
  2. Налаштування імпорту — пишемо парсер, валідацію, агенти синхронізації.
  3. Налаштування магазину — дизайн, платіжні шлюзи, служби доставки.
  4. Автоматизація замовлень — інтеграція передачі замовлень, трекінг, повернення.
  5. SEO та унікалізація — мета-теги, описи, фільтри.
  6. Тестування — контрольні сценарії, навантажувальні тести.
  7. Деплой та моніторинг — запуск, алерти, документація.

Що входить у роботу та терміни

Повна документація: налаштування інтеграцій, параметри імпорту, API-ключі. Передача доступів: адмінка, хостинг, API. Навчання команди: робота з імпортом, управління замовленнями, звіти. Підтримка після запуску: 2 тижні безлімітних консультацій, далі за SLA.

Етап Терміни
Підключення 1 постачальника (імпорт каталогу) 3–5 днів
Налаштування магазину (дизайн, оплата, доставка) 1–2 тижні
Автоматизація замовлень 3–5 днів
SEO-налаштування та унікалізація 1–2 тижні
Запуск MVP 3–4 тижні
Підключення додаткових постачальників 2–3 дні на кожного

Запускаємо дропшипінг-магазини з мінімальними вкладеннями та допомагаємо масштабувати — від одного постачальника до десятків, від сотні SKU до сотень тисяч. Замовте консультацію — зв'яжіться з нами, оцінимо завдання та запропонуємо оптимальне рішення під ключ. Отримайте безкоштовний аудит вашої схеми дропшипінгу прямо зараз.