Skip to content

Обзор проекта

Проект parts-catalogs.com — интеграция внешних сервисов данных об автозапчастях (вендор Tradesoft / Parts.Index) и построение на их основе инструментов для бизнеса.

Что строим

Два взаимосвязанных направления:

  1. Интеграционный слой к внешним REST API (FastAPI, прокси-фасад + кэш).
  2. Админка сопоставления артикулов — оператор вставляет список артикулов и получает Excel с габаритами, весом, применимостью по авто и кросс-номерами.

Дополнительно реализован поиск авто по VIN/FRAME (источник Parts-Catalogs, роуты /oem/*, страница /vin) — отдельный поток от сопоставления артикулов. Функция рабочая, но пункт «Поиск по VIN» временно скрыт из меню (и у оператора, и у админа): страница доступна только по прямой ссылке /vin. Чтобы вернуть пункт — раскомментировать router-link в frontend/src/App.vue.

Два внешних API

У вендора два разных API с разными базовыми URL, scope и ключами — их важно не путать:

APIBase URLЧто даётДля чего
Parts-Catalogsapi.parts-catalogs.com/v1OEM-каталоги, схемы деталей, поиск по VIN/FRAMEкаталог оригинальных запчастей
PartsIndexapi.parts-index.com/v1по артикулу: размеры, вес, аналоги, применимостьобогащение артикулов (админка)

Подробнее о разнице, ключах и лимитах — на странице Два API и тестовый ключ.

Ключевые цифры (parts-catalogs, лендинг)

ПоказательЗначение
Марок101 (легковые + грузовые, есть китайские каталоги)
Моделей3 560
Модификаций~3,9 млн
Запчастей~25 млн

Как работает админка

Оператор вставляет список артикулов (от 1 до 5000 строк, по одному в строке или списком) → система запрашивает данные в PartsIndex → строит таблицу и Excel. Большие задания обрабатываются батчами с контролем памяти воркера.

Столбцы результата: Артикул · Ширина · Длина · Высота · Вес · Марки и модели применимости · Кросс-номера · Бренд · Название · Штрихкод · Статус · Примечание · Источник. Габариты берутся из параметров упаковки детали, применимость — из списка авто, кроссы — из связей (аналоги). Каждая строка подписана источником данных (сейчас — «Parts.Index · Информация о детали»).

Ключевое поведение:

  • Политика бренда — что делать, если у артикула несколько брендов: первый подходящий / указывает оператор (бренд через запятую после артикула) / все варианты (первый + пометка о количестве). Подробнее — Работа с админкой.
  • Дубли повторяющихся артикулов обрабатываются один раз (экономия квоты) и не выводятся в итоговую таблицу и Excel.
  • Применимость выводится нумерованным списком — по одной модели на строку («марка модель двигатель (годы)»); пустые свойства помечаются «Свойство не заполнено». Подробнее — Работа с админкой.
  • Ненайденные артикулы подсвечиваются статусом и остаются в таблице с причиной.
  • Режимы PartsIndex: live (боевой), mock/replay (демо-данные без запросов), record (запись фикстур).

Статус

Система работает на боевых данных PartsIndex (live). Составлена документация по обоим API и ТЗ на админку; готов пакет автоустановки на Ubuntu (deploy/). Первоисточники (OpenAPI-спецификации, выгрузки) — в репозитории в docs/api/.

Сеть

Ключ PartsIndex привязан к IP-whitelist. Запросы к API должны выходить с whitelisted-IP (85.175.98.244) в обход VPN — иначе 403. См. Два API и тестовый ключ.

Внутренняя документация проекта parts-catalogs.com