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

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

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

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

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

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

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

Штатний модуль sale містить механізм знижок через b_sale_discount — правила, засновані на умовах кошика. Це потужний інструмент, але він заточений під автоматичні знижки на рівні замовлення. Маркетингові акції з банерами, періодами, лічильниками учасників, лімітами використання, механікою «купи 2 — отримай 3» — все це або не реалізується стандартними засобами, або потребує громіздких обхідних рішень. Модуль управління акціями закриває цей пробіл.

Модель даних

Модуль vendor.promo із наступними таблицями:

  • b_vendor_promo_action — акції: id, code, name, type (discount/gift/bundle/coupon/cashback), date_from, date_to, is_active, priority, usage_limit, usage_count, conditions (JSON), reward (JSON), banner_image_id, description
  • b_vendor_promo_coupon — купони: id, action_id, code, discount_type (percent/fixed), discount_value, usage_limit, usage_count, user_id (null = загальний), expires_at, is_active
  • b_vendor_promo_usage — історія застосування: id, action_id, coupon_id, order_id, user_id, discount_amount, applied_at
  • b_vendor_promo_gift — подарункові товари акції: id, action_id, product_id, quantity

Типи акцій

Знижка за умовою: "conditions": {"min_sum": 3000, "iblock_section_id": 12} — знижка 10% на замовлення від 3 000 у розділі «Електроніка».

Комплект (bundle): "type": "bundle" — при додаванні товару A до кошика товар B додається автоматично зі знижкою. Реалізується через подію OnSaleBasketItemAdd.

Купон: генерація унікальних кодів у b_vendor_promo_coupon, перевірка при оформленні замовлення.

Подарунок: при виконанні умов кошика — автоматично додається товар із b_vendor_promo_gift з ціною 0.

Cashback: нарахування балів програми лояльності замість знижки.

Перевірка умов та застосування

class PromoChecker
{
    public function check(PromoAction $action, \Bitrix\Sale\Order $order): CheckResult
    {
        $conditions = $action->getConditions();
        $basket     = $order->getBasket();

        if (isset($conditions['min_sum']) && $basket->getPrice() < $conditions['min_sum']) {
            return CheckResult::fail('Мінімальна сума замовлення не досягнута');
        }

        if ($action->getUsageLimit() && $action->getUsageCount() >= $action->getUsageLimit()) {
            return CheckResult::fail('Ліміт використання акції вичерпано');
        }

        return CheckResult::success();
    }
}

Пріоритет та сумісність акцій

Кілька акцій можуть бути активними одночасно. Параметр priority визначає порядок застосування. Поле exclusive у налаштуваннях акції означає, що інші акції з нею не поєднуються.

Логіка: активні акції сортуються за спаданням пріоритету. Для кожної перевіряється CheckResult. Якщо акція exclusive і пройшла перевірку — застосовується, цикл переривається.

Генератор купонів

Масова генерація унікальних кодів для email-розсилок:

$generator = new CouponGenerator($action);
$coupons   = $generator->generate(1000, [
    'length'  => 8,
    'prefix'  => 'SALE24-',
    'charset' => 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789',
]);
// batch insert до b_vendor_promo_coupon + CSV-файл для експорту

Символи, схожі на цифри (O/0, I/1), виключаються з charset, щоб уникнути помилок при ручному введенні.

Статистика акцій

В адміністративному інтерфейсі по кожній акції відображається:

  • Кількість застосувань та відсоток від ліміту
  • Сумарна знижка за період
  • Конверсія: скільки користувачів додали купон до незавершеного замовлення vs завершили оплату
  • Топ товарів, що потрапили під акцію
  • Динаміка використання по днях (графік)

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

  • Список акцій із фільтром за статусом, типом, датою
  • Конструктор умов і винагород
  • Управління купонами: генерація пачками, деактивація, експорт у CSV
  • Звіт по акції з розбивкою по замовленнях

Терміни розробки

Етап Термін
ORM-таблиці, модель акцій 1 день
Перевірка умов, застосування знижок 2 дні
Механіка подарунків та бандлів 2 дні
Генератор купонів, імпорт/експорт 1 день
Пріоритети та сумісність акцій 1 день
Звіти та статистика 1 день
Адміністративний інтерфейс 2 дні
Тестування 1 день

Разом: 11 робочих днів. Інтеграція з email-платформою для автоматичного розсилання купонів — додатково 1–2 дні.