Zero-Dependency TypeScript Engine

Master the Automotive Part Number Chaos

High-performance normalizer, variant generator, and catalog schema detector for automotive & commercial vehicle OEM/OES references. Built to power the core search of CrazyPartSnatcher – Preisvergleich für Nutzfahrzeug- & Lkw-Ersatzteile .

$ npm i @crazypartsnatcher/oem-normalizer
Try Interactive Demo

⚡ Live OEM Normalizer Demo

Test any OEM reference in real time directly in your browser.

Live Price Comparison:

Connect this reference directly with verified aftermarket & OE supplier listings:

Live-Vergleich auf CrazyPartSnatcher prüfen →
Canonical Normalized (SQL / Index) 81501100144
Formatted Display (Invoice / UI) 81.50110.0144
Detected Manufacturer Schema
MAN
Generated Fulltext Search Variants

Why Standard Exact-String Search Fails

1

Supplier Notation Drift

Suppliers export CSV feeds with hyphens (81.50110-0144), dots, or spaces. Standard SQL exact matches miss up to 60% of inventory cross-references.

2

Daimler 'A' Prefix Gap

Mercedes-Benz parts are frequently indexed as A 000 420 00 20, but mechanics search for 0004200020. The normalizer reconciles both schemas.

3

Multi-Supplier Price Matching

Built as the core comparison engine for CrazyPartSnatcher, matching Bosch, Hella, Brembo, Mahle, and Febi Bilstein offers.

TypeScript / JavaScript Quickstart

example.ts Zero Dependencies
import { normalizeOem, generateSearchVariants, buildPartSearchUrl } from '@crazypartsnatcher/oem-normalizer';

// 1. Strip punctuation & unify to uppercase alphanumeric
const clean = normalizeOem('81.50110.0144');
console.log(clean); // '81501100144'

// 2. Generate search variations for SQL / Elasticsearch index
const variants = generateSearchVariants('A0004200020');
console.log(variants);
// ['A0004200020', '0004200020', 'A 000 420 00 20', '000 420 00 20', ...]

// 3. Build comparison link on CrazyPartSnatcher
const url = buildPartSearchUrl('81.50110.0144');
console.log(url); // 'https://www.crazypartsnatcher.com/shop?q=81501100144'