# Архитектура решения

МаркетПро состоит из двух частей, которые работают на одном сервере:

**Серверная часть** — 1С-Битрикс на PHP. Здесь админка, каталог, заказы, обмен с 1С — всё, что вы видите в панели управления. Она же отдаёт данные наружу через API.

**Клиентская часть** — приложение на Nuxt (Node.js). Это то, что видит покупатель: каталог, карточки товаров, корзина, оформление заказа. Данные она берёт у серверной части по API.

Из такого устройства следует почти всё, что отличает МаркетПро от обычного сайта на Битриксе.

# Как распределяются запросы

nginx настроен так, что почти любой адрес уходит на Nuxt. Исключения — адреса, которые обслуживает Битрикс:

| Адрес | Зачем |
|-------|-------|
| `/bitrix/` | админка и служебные файлы 1С-Битрикс |
| `/api/` | обмен клиентской части с серверной |
| `/upload/` | загруженные файлы: изображения, документы, файлы обмена с 1С |
| `/local/` | доработки решения |
| `/php/` | фоновые задачи решения, которые запускает cron |
| `/static/` | файлы, которые отдаются как есть: `custom.css` |
| `/.well-known/` | проверка владения доменом при выпуске сертификата; исключение — файлы `assetlinks.json` и `apple-app-site-association` для мобильного приложения, их nginx берёт из `frontend/static/.well-known` |

Отсюда правило: не создавайте разделов каталога и страниц с такими адресами — они не дойдут до клиентской части.

Остальные файлы из корня сайта — исходный код, настройки, служебные файлы — наружу не отдаются. Файлы, которые должны открываться по адресу сайта напрямую (`robots.txt`, `sitemap.xml`, файл подтверждения для Яндекс.Вебмастера), лежат в `frontend/static`: их отдаёт клиентская часть.

# Что это значит на практике

**Изменения появляются не сразу.** Часть настроек попадает в конфигурацию клиентской части, и после сохранения её нужно пересобрать. Обычно это занимает 5–10 минут, а запускается автоматически.

**Панели «Эрмитаж» нет.** Править страницы прямо на сайте нельзя: публичная часть не собирается на PHP. Всё правится в админке.

**Шаблон сайта не редактируется как обычно.** Клиентская часть поставляется собранной, исходных компонентов на сервере нет. Внешний вид меняется настройками решения, а тонкие правки — своими стилями: [Свои стили сайта](/s/marketpro/doc/svoi-stili-sajta-DJ8yfnyeiV).

**За клиентскую часть отвечает процесс Node.js.** Он работает под менеджером процессов PM2. Если сайт отдаёт «502 Bad Gateway», обычно дело в нём — см. [502 Bad Gateway](/s/marketpro/doc/502-bad-gateway-2UNBIWrGe7).

# Где что лежит на сервере

| Папка | Что внутри |
|-------|------------|
| `/home/bitrix/www` | сайт: файлы 1С-Битрикс |
| `/home/bitrix/www/frontend` | клиентская часть на Nuxt |
| `/home/bitrix/www/frontend/static` | файлы, которые клиентская часть отдаёт как есть: `robots.txt`, `sitemap.xml`, файлы подтверждения |
| `/home/bitrix/www/static` | `custom.css` — свои стили сайта |
| `/home/bitrix/www/php` | фоновые задачи решения для cron |
| `/etc/nginx/bx/site_avaliable` | конфигурация nginx для сайтов |

Пути указаны для стандартной виртуальной машины BitrixVM с одним сайтом. При нескольких сайтах корень будет в `/home/bitrix/ext_www/<домен>`.

---

**Documents**

- [Установка решения](https://docs.astdesign.ru/s/marketpro/doc/ustanovka-resheniya-Z8Q6r79liU)
- [FAQ перед покупкой](https://docs.astdesign.ru/s/marketpro/doc/faq-pered-pokupkoj-HPgKP7mWDT)
- [Общая настройка](https://docs.astdesign.ru/s/marketpro/doc/obshaya-nastrojka-Io6HZQaGXf)
- [Шаблон](https://docs.astdesign.ru/s/marketpro/doc/shablon-ylLAFZV3o8)
- [Главная страница](https://docs.astdesign.ru/s/marketpro/doc/glavnaya-stranica-7PwYozaVVo)
- [Магазины (склады)](https://docs.astdesign.ru/s/marketpro/doc/magaziny-sklady-7rEEZJrA45)
- [Каталог](https://docs.astdesign.ru/s/marketpro/doc/katalog-FpnYzZr900)
- [Поиск](https://docs.astdesign.ru/s/marketpro/doc/poisk-xsDdFVh5h0)
- [Текстовые страницы](https://docs.astdesign.ru/s/marketpro/doc/tekstovye-stranicy-jVtNXZv3T5)
- [Реклама и маркетинг](https://docs.astdesign.ru/s/marketpro/doc/reklama-i-marketing-iZkaCoxr5b)
- [Региональность](https://docs.astdesign.ru/s/marketpro/doc/regionalnost-bCuM9AOBNO)
- [Корзина](https://docs.astdesign.ru/s/marketpro/doc/korzina-Mh27pZA7v9)
- [Оформление заказа](https://docs.astdesign.ru/s/marketpro/doc/oformlenie-zakaza-VyvQjOQxZo)
- [Авторизация](https://docs.astdesign.ru/s/marketpro/doc/avtorizaciya-5HwEb1oDJG)
- [SEO и аналитика](https://docs.astdesign.ru/s/marketpro/doc/seo-i-analitika-d1Hw6c4YAM)
- [Уведомления](https://docs.astdesign.ru/s/marketpro/doc/uvedomleniya-SKDyjYg14J)
- [Мобильное приложение](https://docs.astdesign.ru/s/marketpro/doc/mobilnoe-prilozhenie-F5E0hT7TnN)
- [Обновление решения](https://docs.astdesign.ru/s/marketpro/doc/obnovlenie-resheniya-RRRgtxV5uH)
- [Для разработчика](https://docs.astdesign.ru/s/marketpro/doc/dlya-razrabotchika-WJePeJCmpy)
- [Интеграции](https://docs.astdesign.ru/s/marketpro/doc/integracii-D3DqjYOZYm)
- [Что делать, если что-то не работает](https://docs.astdesign.ru/s/marketpro/doc/chto-delat-esli-chto-to-ne-rabotaet-Q8L8sTVJF8)