# Тестовое задание: Каталог товаров на мок-классах Битрикс + Vue

Проект демонстрирует работу с имитацией API 1С-Битрикс (`CIBlockElement`, `CCatalogProduct`, `CDBResult`) и отображение данных в Vue 3.

## 1. Как запустить локально

**Требования:** PHP 7.4+ (без дополнительных расширений), браузер.

Никакие сборщики или `npm` не нужны – Vue подключается через CDN, PHP работает как встроенный сервер.

## 2. Структура проекта

```bash
/
├── BitrixMock/                 # Мок-классы, имитирующие API 1С-Битрикс
│   ├── CDBResult.php           # Класс-обёртка для выборки (Fetch, SelectedRowsCount)
│   ├── CIBlockElement.php      # Имитация CIBlockElement::GetList (возвращает элементы)
│   ├── CCatalogProduct.php     # Имитация CCatalogProduct::GetByID (остатки и доступность)
│
├── ajax/                       # PHP-эндпоинты для фронтенда (JSON API)
│   ├── getProducts.php         # GET/POST – возвращает список товаров с ценами и остатками
│   └── order.php               # POST – оформление заказа, проверка остатка, новый остаток
│
├── frontend/                   # Vue-приложение (без сборки, на ES-модулях)
│   ├── index.php               # Точка входа, подключает Vue 3 (CDN) и главный модуль
│   ├── js/
│   │   ├── main.js             # Корневой компонент App – инициализация, загрузка данных, реактивность
│   │   ├── api/
│   │   │   ├── products.js     # Функция fetchProducts() – запрос к getProducts.php
│   │   │   └── order.js        # Функция placeOrder() – отправка заказа
│   │   └── components/
│   │       ├── ProductList.js  # Компонент таблицы товаров (подсветка низких остатков)
│   │       └── OrderForm.js    # Форма заказа (выпадающий список, валидация, отправка)
│   └── css/
│       └── styles.css          # Стили (таблица, форма, подсветка)
│                 
├── autoload.php                # Загрузчик мок-классов
└── test_data.php               # Тестовый набор из 6 товаров (ID, название, артикул, цена, остаток)
```
## 3. Перенос на реальный сайт 1С-Битрикс

Проект спроектирован так, чтобы минимальными изменениями заработать внутри настоящей установки Битрикс.