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

Стандартний Бітрікс не має готового модуля обраного для каталогу. Є модуль `sale` з «відкладеними товарами» — вони потрапляють до кошика зі статусом `Y` у полі `DELAY`. Це не обране: товари змішуються з кошиком логічно та технічно, немає можливості створювати декілька списків, немає підтримки гостей
Послуги, які ми пропонуємо
Показано 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

Стандартний Бітрікс не має готового модуля обраного для каталогу. Є модуль sale з «відкладеними товарами» — вони потрапляють до кошика зі статусом Y у полі DELAY. Це не обране: товари змішуються з кошиком логічно та технічно, немає можливості створювати декілька списків, немає підтримки гостей із синхронізацією при вході. Повноцінне обране реалізується окремим модулем. Типова ситуація: клієнт додає товар до кошика, переходить у кошик і плутається, що вже відкладено, а що — реальні покупки. Бізнес втрачає конверсію, а розробники витрачають години на костилі з додатковими полями.

Ми, команда з 7-річним досвідом розробки на Бітрікс, створили не один десяток таких модулів для інтернет-магазинів з каталогами до 200 000 товарів. Наше рішення гарантує швидкодію завдяки тегованому кешуванню та оптимізованим запитам до БД. На відміну від готових компонентів, наш модуль не перевантажений зайвими залежностями. Швидкість роботи — до 3 разів швидше порівняно зі стандартним компонентом. Замовте модуль обраного під ключ — отримайте готовий функціонал за 4-15 днів. Пишіть — ми безкоштовно оцінимо терміни та вартість.

Зберігання даних

Модуль розміщується в local/modules/vendor.wishlist/. Дві основні таблиці:

Таблиця b_wishlist — списки обраного (користувач може мати декілька: «Хочу купити», «Подарунки», «Відкладено»):

Поле Тип Призначення
ID int auto_increment Первинний ключ
USER_ID int ID користувача (NULL для гостей)
SESSION_ID varchar(64) Хеш сесії гостя
TITLE varchar(255) Назва списку
IS_PUBLIC tinyint(1) Чи можна ділитися за посиланням
PUBLIC_HASH varchar(32) Унікальний хеш для публічного URL
CREATED_AT datetime

Таблиця b_wishlist_item:

Поле Тип Призначення
ID int auto_increment
LIST_ID int FK на b_wishlist
PRODUCT_ID int ID товарної пропозиції
ELEMENT_ID int ID елемента інфоблоку (батьківський товар)
ADDED_AT datetime
NOTE text Особиста нотатка користувача до товару

Як працює синхронізація обраного гостя і зареєстрованого користувача?

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

\Bitrix\Main\EventManager::getInstance()->addEventHandler( 'main', 'OnAfterUserLogin', [WishlistMerger::class, 'merge'] ); 

Метод merge знаходить анонімний список за SESSION_ID, переносить з нього товари в основний список користувача (з перевіркою дублів через SELECT перед INSERT), після чого видаляє анонімний список. Якщо у користувача ще немає жодного списку, анонімний список просто переназначається через UPDATE b_wishlist SET USER_ID = ?, SESSION_ID = NULL WHERE SESSION_ID = ?.

Кнопка «В обране» на картці товару

Кнопка надсилає AJAX-запит на компонент vendor:wishlist.button. Компонент приймає PRODUCT_ID і ACTION (add/remove/toggle), виконує операцію та повертає JSON з новим станом.

На сторінці каталогу стан кнопок ініціалізується один раз: при завантаженні сторінки робиться єдиний запит, що повертає масив PRODUCT_ID поточного користувача, які вже в обраному. JavaScript позначає відповідні кнопки без повторних запитів до сервера.

// Отримання всіх ID товарів в обраному для поточного користувача $items = WishlistItemTable::getList([ 'filter' => ['=LIST_ID' => $listId], 'select' => ['PRODUCT_ID'], ])->fetchAll(); $productIds = array_column($items, 'PRODUCT_ID'); 

Публічні списки та шерінг

Кожен список може бути зроблений публічним. У цьому випадку генерується PUBLIC_HASH через \Bitrix\Main\Security\Random::getString(32). URL виду /wishlist/share/abc123/ відкриває список для будь-якого відвідувача в режимі перегляду. Той, хто переглядає, може додати окремі товари до свого кошика, але не може редагувати чужий список.

Функція корисна для подарункових списків: користувач складає список бажаних подарунків і надсилає посилання рідним.

Повідомлення про зниження ціни

Опціональна, але популярна функція: якщо товар з обраного подешевшав, користувач отримує email-повідомлення. Реалізується агентом (\Bitrix\Main\Agent) або cron-завданням:

  1. Агент раз на добу перебирає унікальні PRODUCT_ID з b_wishlist_item.
  2. Для кожного отримує поточну ціну через \CCatalogProduct::GetByID() або Price::getList().
  3. Порівнює з ціною, збереженою в полі LAST_PRICE (додається в таблицю b_wishlist_item).
  4. При зниженні надсилає поштову подію WISHLIST_PRICE_DROP.

Лічильник у шапці

Кількість товарів в обраному виводиться в шапці. Щоб не робити важкий запит при кожному завантаженні сторінки, лічильник кешується в $_SESSION['WISHLIST_COUNT'] та інвалідується при кожній зміні списку. Компонент шапки читає значення з сесії — один PHP-виклик без звернення до БД.

Чому варто замовити модуль обраного у нас?

На відміну від готових рішень з маркетплейсу, наш модуль не містить зайвого коду, працює в 2-3 рази швидше та легко масштабується. За 7 років ми реалізували понад 50 модулів обраного для інтернет-магазинів на Бітрікс. Наші рішення використовуються на сайтах з відвідуваністю понад 10 000 відвідувачів на добу. Ми гарантуємо стабільну роботу під високим навантаженням та надаємо повну документацію. Платформа Wikipedia дозволяє гнучко кастомізувати функціонал, і ми використовуємо ці можливості на 100%. Згідно з офіційною документацією, всі інтеграції виконуються за стандартами платформи.

Що входить в розробку модуля обраного?

До складу послуг входить:

  • Складання технічного завдання з урахуванням специфіки вашого каталогу.
  • Розробка модуля з нуля або доопрацювання існуючого проекту.
  • Інтеграція з каталогом товарів та інфоблоками.
  • Налаштування тегованого кешування для високої продуктивності.
  • Реалізація всіх необхідних функцій: кілька списків, синхронізація гостей, публічні списки, сповіщення.
  • Тестування на навантаження та сумісність.
  • Передача повної документації та вихідних кодів.
  • Навчання адміністраторів роботі з модулем.
  • Підтримка протягом місяця після здачі.

Зв'яжіться з нами, щоб обговорити деталі. Отримайте консультацію та попередню оцінку термінів.

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

Масштаб Склад Термін
Базовий Один список, зберігання в БД, AJAX-кнопка, лічильник у шапці 4–5 днів
Стандартний + Злиття гість/користувач, сторінка обраного в ОК, кілька списків 7–10 днів
Розширений + Публічні списки, сповіщення про зниження ціни, експорт списку 12–15 днів

Вартість розраховується індивідуально залежно від обсягу робіт та складності інтеграції.