SamiKoen Claude commited on
Commit
a584ddc
·
1 Parent(s): 95cc1f5

fix: clean query for smart fallback to work properly

Browse files

- "Marlin 4 var mı" → "MARLIN 4" cleaning
- Remove "var mı", "stok", "fiyat" suffixes from query
- Smart fallback now works: MARLIN 4 → MARLIN 4 GEN 3 (2026)
- Add logging to track query cleaning process

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <[email protected]>

Files changed (1) hide show
  1. combined_api_search.py +11 -3
combined_api_search.py CHANGED
@@ -380,15 +380,23 @@ def get_warehouse_stock_combined_api(query):
380
  # Örn: "marlin 4" arandığında MARLIN 4 yoksa MARLIN 4 GEN 3'ü göster
381
  query_normalized = normalize_turkish(query.upper())
382
 
 
 
 
 
 
 
 
 
383
  # Genel ürün adı aranıyorsa (model numarası yok)
384
- if not any(year in query_normalized for year in ['GEN', '2024', '2025', '2026', '(20']):
385
  # Stokta olan modelleri kontrol et
386
  stocked_alternatives = []
387
 
388
  for product in results:
389
  name_normalized = normalize_turkish(product['name'].upper())
390
- # Ana ürün adıyla eşleşiyor mu?
391
- if query_normalized in name_normalized:
392
  # Ana ürün mü?
393
  if is_main_product(product['name']):
394
  # Stokta mı veya varyantları var mı?
 
380
  # Örn: "marlin 4" arandığında MARLIN 4 yoksa MARLIN 4 GEN 3'ü göster
381
  query_normalized = normalize_turkish(query.upper())
382
 
383
+ # Query'yi temizle - "var mı", "stok", "fiyat" gibi ekleri çıkar
384
+ clean_query = query_normalized
385
+ for suffix in ['VAR MI', 'VAR MIYDI', 'STOK', 'STOKTA', 'FIYAT', 'FIYATI', 'KACA', 'NE KADAR']:
386
+ clean_query = clean_query.replace(' ' + suffix, '').replace(suffix + ' ', '').replace(suffix, '')
387
+ clean_query = clean_query.strip()
388
+
389
+ logger.info(f"🧹 Query temizlendi: '{query}' → '{clean_query}'")
390
+
391
  # Genel ürün adı aranıyorsa (model numarası yok)
392
+ if not any(year in clean_query for year in ['GEN', '2024', '2025', '2026', '(20']):
393
  # Stokta olan modelleri kontrol et
394
  stocked_alternatives = []
395
 
396
  for product in results:
397
  name_normalized = normalize_turkish(product['name'].upper())
398
+ # Ana ürün adıyla eşleşiyor mu? (temizlenmiş query ile)
399
+ if clean_query in name_normalized:
400
  # Ana ürün mü?
401
  if is_main_product(product['name']):
402
  # Stokta mı veya varyantları var mı?