Приложение · Новый проект

Установка пакета маркетплейса для Svelte

Выберите технологию и установите пакет для подключения маркетплейса. Каждый пакет создаёт рабочий стартовый проект и подключает его к вашему персональному бэкенду.

1 Подготовьте окружение

Установите Node.js версии 20.19 или новее вместе с npm. Интеграция SvelteKit 2 работает на сервере Node.js. Проверьте установленные версии:

Скачать Node.js
bash
node --version
npm --version

2 Начните с нуля

Выполните команды в папке, где храните проекты. CLI создаст проект SvelteKit 2, добавит пакет Orionplace и исходный код подключения.

bash
npx --yes orionplace-svelte init my-marketplace
cd my-marketplace
npm install
orionplace-svelte · npm

Уже есть проект SvelteKit 2?

Пропустите создание проекта. Установите пакет в корне существующего проекта SvelteKit 2, затем перейдите к настройке доменов ниже.

bash
npm install orionplace-svelte

3 Укажите домены

Откройте личный профиль на orionmarket.place. Домен вашего персонального API бэкенда уже выдан и указан там. При необходимости его можно изменить в профиле.

Открыть личный профиль
bash
# Замените your-project.orionplace.app на домен бэкенда из профиля
npx orionplace-svelte set backend your-project.orionplace.app

# Замените yourfrontenddomain.com на домен вашего магазина
npx orionplace-svelte add frontend yourfrontenddomain.com

npm install

Выполните команды в корне проекта. Они настроят подключение, а последняя команда установит необходимые зависимости. Команды настройки доменов не создают DNS-записи и не публикуют сайт.

MIMIC_FRONT_DOMAIN — первый добавленный домен магазина автоматически выбирается для локальной разработки.

4 Запустите проект

bash
npm run dev

Откройте локальный адрес, который напечатает SvelteKit 2, обычно http://localhost:5173. После успешного Application Load откроется магазин. Если инициализация завершилась ошибкой, проверьте настройку доменов и доступность бэкенда.

orionplace/README.md — подробности настройки, документация исходного кода и управление доменами. Все команды доступны через help:

bash
npx orionplace-svelte help

Управляйте доменами

Выполняйте команды из корня проекта. Замените домены в примерах на свои. Для каждого домена магазина создаётся файл с именем этого домена, например sitemaps/yourfrontenddomain.com.cfg.

КомандаРезультат
set backend <domain>Задаёт персональный бэкенд и обновляет адрес во всех файлах доменов, которыми управляет CLI. Указать бэкенд и добавить первый домен магазина можно в любом порядке.
add frontend <domain>Добавляет домен и сохраняет существующие домены. Первый домен выбирается для MIMIC_FRONT_DOMAIN; последующие добавления сохраняют текущий выбор. Повторное добавление того же домена допустимо.
set mimic <domain>Выбирает уже добавленный домен для localhost. Файлы соответствия доменов и бэкенда сохраняются без изменений. Неизвестный домен сначала добавьте через add frontend.
remove frontend <domain>Удаляет указанный домен и его созданный CLI файл, если файл не изменён вручную. Если домен был выбран для MIMIC, выбирается первый оставшийся домен. Удаление последнего домена очищает MIMIC.
set frontend <domain>Добавляет домен и выбирает его для MIMIC. Эта сокращённая команда остаётся доступной для существующих скриптов.
helpПоказывает команды и параметры без изменения файлов проекта.
bash
npx orionplace-svelte add frontend www.yourfrontenddomain.com
npx orionplace-svelte set mimic yourfrontenddomain.com
npx orionplace-svelte remove frontend www.yourfrontenddomain.com

CLI проверяет запланированные изменения до записи файлов. Попытка заменить или удалить файл домена, изменённый вручную или созданный вне CLI, завершится ошибкой. Добавьте --dry-run, чтобы посмотреть изменения без записи файлов проекта, или --cwd path/to/project, чтобы выбрать другой проект.

После изменения доменов перезапустите сервер разработки. В production файлы доменов читаются при каждом запросе; после изменения MIMIC перезагрузите окружение процесса. Настройте DNS, TLS и прокси на хостинге для каждого публичного домена.

Карта сайта и robots.txt

Магазин отдаёт /robots.txt и /sitemap.xml для каждого домена фронтенда. В карте сайта есть публичные страницы, категории, товары в продаже и публикации журнала на всех языках магазина; публикация попадает в неё только на тех языках, на которых она написана. Каждая из этих страниц указывает свой адрес из карты сайта как канонический (canonical и og:url), а превью ссылок получают полный адрес картинки страницы. Эти же страницы ссылаются на свои версии на других языках магазина (hreflang), а публикация журнала сообщает поисковикам дату публикации и данные статьи.

Карта сайта собирается из вашего бэкенда и пересобирается раз в час. После новых публикаций или изменений каталога пересоберите её сразу из папки проекта: работающий магазин начнёт отдавать новую карту без перезапуска.

bash
# Все домены фронтенда
npm run orionplace:sitemap

# Один домен
npx orionplace-svelte sitemap rebuild yourfrontenddomain.com

# Когда собрана каждая карта
npx orionplace-svelte sitemap status

Собранная карта хранится в node_modules/.cache/orionplace/sitemaps/; переменная ORIONPLACE_CACHE_DIR переносит её в другую папку. На сервере, где магазин работает как служба, команду можно запускать через sudo: созданные файлы остаются у владельца проекта. Проекты, созданные до версии 0.6.0, получают эти маршруты и команду через update.

Чтобы страницы магазина на демо- или тестовом сайте не попадали в поисковые системы, задайте в .env переменную ORIONPLACE_NOINDEX_PATHS с префиксами путей через пробел, например ORIONPLACE_NOINDEX_PATHS="/catalog /category /product". Эти страницы отвечают с заголовком X-Robots-Tag: noindex, follow, а карта сайта их не включает; журнал и остальные страницы по-прежнему индексируются. На рабочем магазине оставьте переменную пустой.

Каждая страница товара содержит данные schema.org для Google и Яндекса: цену, зачёркнутую старую цену, наличие, фото, бренд, продавца, рейтинг и условия возврата, которые показывает страница. В условиях возврата указываются страны доставки магазина — их передаёт Application Load в init.shipping_countries; без стран доставки условия возврата не указываются. Стоимость доставки не указывается: она зависит от адреса покупателя.

Обновите проект

Сначала посмотрите запланированные изменения, затем выполните обновление. Команда update получает последнюю версию пакета, добавляет новые исходные файлы, обновляет созданные ранее файлы без ваших правок и запускает npm install.

bash
npx orionplace-svelte update --dry-run
bash
npx orionplace-svelte update

Исходные файлы с вашими правками, настройки доменов и MIMIC сохраняются. Проверьте список сохранённых файлов и при необходимости перенесите в них изменения. Сохраняйте orionplace/.generated.json: CLI использует его, чтобы распознавать созданные ранее файлы без ваших правок.

Предварительный просмотр может загрузить последнюю версию пакета в кеш npm, но сохраняет файлы и зависимости проекта без изменений. Если установка зависимостей завершилась ошибкой после обновления исходных файлов, выполните npm install и повторите обновление. После успешного обновления перезапустите сервер разработки или соберите и разверните production заново.