Разработка каталога товаров на Vue.js для 1С-Битрикс

Наша компания занимается разработкой, поддержкой и обслуживанием решений на Битрикс и Битрикс24 любой сложности. От простых одностраничных сайтов до сложных интернет магазинов, CRM систем с интеграцией 1С и телефонии. Опыт разработчиков подтвержден сертификатами от вендора.
Предлагаемые услуги
Показано 1 из 1 услугВсе 1626 услуг
Разработка каталога товаров на Vue.js для 1С-Битрикс
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_website-b2b-advance_0.png
    Разработка сайта компании B2B ADVANCE
    1173
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Разработка веб-сайта для компании ФИКСПЕР
    811
  • 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 Appointment Booking Widget for a Medical Center
    564
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    745
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    655
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    976

Разработка каталога товаров на Vue.js для 1С-Битрикс

Стандартный компонент bitrix:catalog.section отлично работает для простых каталогов, но как только появляются требования к динамической фильтрации, бесконечной прокрутке или мгновенному переключению между видами отображения — серверный рендеринг начинает тормозить. Vue-каталог решает эти задачи за счёт клиентской реактивности при сохранении серверного рендеринга для SEO.

Структура данных: API для каталога

Битрикс предоставляет данные через CIBlockElement::GetList() или D7 ORM. Оборачиваем в кастомный контроллер:

// local/components/vendor/catalog.api/ajax.php
use Bitrix\Main\Engine\Controller;
use Bitrix\Iblock\Elements\ElementProductTable;

class CatalogController extends Controller
{
    public function getProductsAction(array $filter = [], int $page = 1, int $pageSize = 24): array
    {
        $offset = ($page - 1) * $pageSize;
        // Получение через D7 ORM ElementProductTable
        // Возврат JSON: items, pagination, facets
    }
}

Отвечает на POST /bitrix/services/main/ajax.php?action=catalog.getProducts.

Компоненты Vue-каталога

Минимальная структура компонентов:

  • CatalogApp.vue — корневой компонент, управляет состоянием
  • ProductGrid.vue / ProductList.vue — сетка и список товаров, переключение без перезагрузки
  • ProductCard.vue — карточка товара с быстрым просмотром
  • Pagination.vue или InfiniteScroll.vue — навигация по страницам
  • SortBar.vue — переключение сортировки

SEO: гибридный рендеринг

SEO-важный первый экран рендерит Битрикс серверно. Vue берёт управление после гидратации:

// В шаблоне компонента
$initialProducts = json_encode($arResult['ITEMS']);
echo '<div id="catalog-app"
    data-initial-products="' . htmlspecialchars($initialProducts) . '"
    data-iblock-id="' . $arResult['IBLOCK_ID'] . '"
></div>';

Vue читает data-initial-products и рендерит первый экран без AJAX. Последующие запросы (пагинация, фильтрация) — уже через API.

Работа с ценами и наличием

Цены в Битрикс — из b_catalog_price через тип цены. Остатки — из b_catalog_store_product. Для реального времени (актуальное наличие в момент просмотра) добавьте отдельный быстрый endpoint:

// Запрос наличия для массива товаров
async function getAvailability(productIds) {
    return await api.post('/catalog/availability', { ids: productIds });
}

Вызывайте после рендеринга карточек, не блокируя начальную загрузку.

Случай из практики

Интернет-магазин строительных материалов: каталог с 80 000 позиций, фильтрация по 20+ параметрам. Стандартный AJAX-фильтр Битрикс при каждом изменении параметра делал запрос на 3–6 секунд (полный серверный рендеринг раздела). Vue-каталог с debounced-запросами (300 мс) и optimistic UI (показываем скелетон сразу) — субъективно воспринимается как мгновенная реакция. Первая загрузка со страницы раздела — серверный рендеринг Битрикс для корректной индексации.

Сроки выполнения

Сложность Срок
Базовый каталог (сетка, список, пагинация) от 5 до 8 рабочих дней
С фасетным фильтром и быстрым просмотром от 10 до 15 рабочих дней
С бесконечной прокруткой и SEO-гибридом от 15 до 20 рабочих дней