feat(catalog): supplier catalog cleanup, fuzzy matching, and navigation fixes
- Cleaned 137+ fake engine-displacement models from supplier imports (v3/v4 scripts: Chevrolet, Ford, Chrysler, Dodge, Jeep, Nissan, etc.) - Removed 1,251+ corrupted models (INT. prefixes, year-suffix, torque specs, empty names, trailing-year variants) - Migrated supplier tables to master DB (supplier_catalog, supplier_catalog_compat, supplier_catalog_interchange) - Fixed _get_mye_ids_with_parts() to query supplier_catalog_compat from master DB so supplier-only vehicles appear for all tenants - Added fuzzy model matcher with parenthesis stripping, noise suffix removal, compact matching, prefix/substring fallback, model aliases, and ±3 year proximity - Matched compat rows: KEEP GREEN +14,152, KNADIAN +3,021, VAZLO +127,500, LUK +477, RAYBESTOS +1,743 - Added KNADIAN catalog importer with year-range expansion and future-year filtering - Added VAZLO catalog importer with position parsing and SKU-in-model cleanup - Added Keep Green, LUK, Yokomitsu, Raybestos catalog importers - Cache clearing after cleanups (_classify_cache_*, nexus:mye_ids:*, nexus:brand_mye_counts:*) Final match rates: - KEEP GREEN: 90.3% - VAZLO: 93.6% - YOKOMITSU: 100.0% - KNADIAN: 57.4% - LUK: 51.0% - RAYBESTOS: 55.9%
This commit is contained in:
@@ -184,6 +184,9 @@
|
||||
<button class="tab-btn" role="tab" aria-selected="false" aria-controls="panel-orders" onclick="switchTab('orders')">
|
||||
Órdenes
|
||||
</button>
|
||||
<button class="tab-btn" role="tab" aria-selected="false" aria-controls="panel-questions" onclick="switchTab('questions')">
|
||||
Preguntas
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<!-- Tab Panels -->
|
||||
@@ -262,6 +265,27 @@
|
||||
<div id="listingsPagination" class="table-footer" style="margin-top:var(--space-4);"></div>
|
||||
</div>
|
||||
|
||||
<!-- ══════════ TAB: Preguntas ══════════ -->
|
||||
<div class="tab-panel" id="panel-questions" role="tabpanel">
|
||||
<div class="toolbar">
|
||||
<div class="search-box">
|
||||
<svg viewBox="0 0 24 24" stroke-linecap="round"><circle cx="11" cy="11" r="8"/><line x1="21" y1="21" x2="16.65" y2="16.65"/></svg>
|
||||
<input type="text" id="questionSearch" placeholder="Buscar pregunta..." oninput="filterQuestions()" />
|
||||
</div>
|
||||
<select class="select-filter" id="questionStatusFilter" onchange="filterQuestions()">
|
||||
<option value="">Todas</option>
|
||||
<option value="unanswered">Sin responder</option>
|
||||
<option value="answered">Respondidas</option>
|
||||
<option value="closed">Cerradas</option>
|
||||
</select>
|
||||
<div class="toolbar__spacer"></div>
|
||||
<button class="btn btn--ghost btn--sm" onclick="syncQuestions()">🔄 Sincronizar con ML</button>
|
||||
<button class="btn btn--primary" onclick="loadQuestions()">🔄 Actualizar</button>
|
||||
</div>
|
||||
<div id="questionsStatsBar" style="margin-bottom:var(--space-4);"></div>
|
||||
<div id="questionsContainer" class="meli-grid"></div>
|
||||
</div>
|
||||
|
||||
<!-- ══════════ TAB: Órdenes ══════════ -->
|
||||
<div class="tab-panel" id="panel-orders" role="tabpanel">
|
||||
<div class="toolbar">
|
||||
|
||||
Reference in New Issue
Block a user