Сервис-шлюз FastAPI для создания заказов на сайте 1С-Битрикс через существующий REST /local/rest/front/ (вариант A: цепочка session/get → basket/add → order/checkout → order/create).
Отдельный репозиторий; исходный импорт из монорепо (каталог buketopt-gateway/). Документация по Битриксу по-прежнему в MCP, см. ссылки ниже.
По умолчанию в docker-compose.yml проброшен 127.0.0.1:8600:8600.
Отдельный репозиторий; исходный импорт из монорепо (каталог buketopt-gateway/). Документация по Битриксу по-прежнему в MCP, см. ссылки ниже.
Быстрый старт (локально)
Код:
cd buketopt-gateway
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
export GATEWAY_API_KEYS=dev-key
export GATEWAY_BITRIX_BASE_URL=https://ai-test.buketopt.ru
export GATEWAY_BITRIX_VERIFY_TLS=false
uvicorn gateway.app:app --reload --app-dir src --port 8600
- Документация API:
Для просмотра ссылки Вы должны войти или зарегистрироваться.
- Health:
Для просмотра ссылки Вы должны войти или зарегистрироваться.
Секреты
Канонично:~/.secrets/buketopt-gateway/ (env-файл без коммита). Переменные см. .env.example.Docker
docker compose up --buildПо умолчанию в docker-compose.yml проброшен 127.0.0.1:8600:8600.
API
- POST /api/v1/orders — тело JSON (OrderRequest), заголовок X-Api-Key.
- GET /api/v1/orders/{order_id} — прокси к Bitrix order/id/ (часто нужна авторизация на стороне Битрикса).
- GET /health — доступность Bitrix (session/get).
Аудит стенда
Сводка SSH-аудита ai-test (платёжные системы, примеры product_id): файл SSH_AUDIT_STAGING.md в корне репозитория (если файл не в git — см. историю / создайте из README).Деплой
Только после явного согласования («ДА, ДЕПЛОЙ»). Скрипт scripts/deploy-prod.sh — шаблон под main-server YC, порт 8600 (loopback).Сценарии заказа (контракт Битрикса)
- Доставка: delivery_type=courier | Самовывоз: pickup + pickup_shop_val из ответа order/checkout.
- Интервалы: брать time_range_value из активных time_ranges после order/checkout, не полагаться на default без проверки.
- Оплата: задаётся payment_method_id; онлайн — часто есть payment_link в ответе order/create; офлайн/счёт/маркетплейс — ссылки может не быть, оплата вне этого запроса.
