Vendor Data Overview
Unified schema map showing how parts data from different vendors normalizes into the common IndexedPart interface.
Vendor Data Overview
All vendor part data normalizes into a common IndexedPart interface stored in Elasticsearch. Each vendor provides data through different APIs and formats, but the catalog service transforms everything into a unified shape.
Data Sources
| Source | Vendor Codes | API | MongoDB Collections |
|---|---|---|---|
| DIS (Dealer Information Systems) | NHL, BNS, VNT, MCH, KUH, HOT, HAR, KIN, MAR | DIS REST API | parts_{vendor_code} |
| K&M Tire | KMT | K&M REST API | parts_kmt |
IndexedPart Interface
The common shape used across the search index and website:
interface IndexedPart {
partNumber: string; // Unique part identifier
title: string; // Display name
description: string; // Detailed description
manufacturer: string; // Vendor code (e.g., "BNS", "KMT")
manufacturerName: string; // Full name (e.g., "Briggs & Stratton")
category: string; // Product category
price: number; // Unit price
currency: string; // Currency code
inStock: boolean; // Availability
imageUrl?: string; // Primary image URL
images?: string[]; // Additional image URLs
slug: string; // URL-friendly identifier
weight?: number;
dimensions?: string;
crossReferences?: string[]; // Compatible part numbers from other vendors
}Normalization Flow
External API (DIS/K&M) → Catalog Service transformer → MongoDB (raw) → Sync job → Elasticsearch (IndexedPart)Each vendor has a registered transformer in the catalog service that maps vendor-specific fields to the IndexedPart interface. See individual vendor pages for field mappings.
Related
- DIS Parts — DIS API format and per-vendor schemas
- K&M Tire — K&M Tire API format and tire-specific fields
- Media Metadata — Image metadata schema and GCS layout
- Data Flows — End-to-end data pipeline documentation
- DIS Vendor Codes — Vendor code reference table