Задача: Ускорить работу оптовых клиентов интернет-магазина запчастей бытовой техники. Менеджеры и постоянные покупатели заказывают товары по известным артикулам — стандартный поиск через каталог для них слишком медленный.
Решение: Разработан и внедрён кастомный AJAX-компонент iuva:cart.quick.add, встроенный прямо в страницу корзины.
Что реализовано:
• Умный поиск по артикулу — находит товар как по точному совпадению, так и по частичному вводу. Работает с каталогом на 12 000+ товаров
• Автоматическое определение типа цены — через группы пользователя (CCatalogGroup::GetList с фильтром GROUPS_ID). Розничная, МиниОптовая, Дилерская, Оптовая — каждый видит свою цену без переключателей
• Оптимальная цена через API Битрикс — CCatalogProduct::GetOptimalPrice() учитывает скидки и приоритеты типов цен, как в стандартной корзине
• Добавление в корзину без перезагрузки — через Basket::loadItemsForFUser() + save() из D7 Sale
• Живое обновление корзины — через BX.Sale.BasketComponent.sendRequest('refreshAjax') + redrawBasketItemNode() для каждого товара. Итоги, количество, счётчик в шапке — всё пересчитывается мгновенно
• Интеграция в существующий шаблон — компонент встраивается в кастомный шаблон sale.basket.basket без нарушения вёрстки
Технологии:
Битрикс D7, PHP 8.1, MySQL 8.1, AJAX (BX.ajax), JavaScript, ORM Битрикс, Sale\Basket API
Результат:
Время оформления повторного заказа сократилось с 2-3 минут (поиск в каталоге) до 10-15 секунд (ввёл артикул → в корзину → оформил).