SamiKoen commited on
Commit
6379eb1
·
verified ·
1 Parent(s): e7db21f

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +26 -8
app.py CHANGED
@@ -62,6 +62,7 @@ else:
62
  def get_warehouse_stock(product_name):
63
  """B2B API'den mağaza stok bilgilerini çek"""
64
  try:
 
65
  warehouse_url = 'https://video.trek-turkey.com/bizimhesap-warehouse-xml.php'
66
  response = requests.get(warehouse_url, verify=False, timeout=15)
67
 
@@ -96,14 +97,26 @@ def get_warehouse_stock(product_name):
96
  normalized_search = normalize_turkish(search_name.replace('(2026)', '').replace('(2025)', '').replace(' - ', ' ').strip())
97
  normalized_xml = normalize_turkish(xml_product_name.replace('(2026)', '').replace('(2025)', '').replace(' - ', ' ').strip())
98
 
99
- # Extract core model name (e.g., "marlin 6 gen 3")
100
- search_core = ' '.join(normalized_search.split()[:3]) # First 3 words
101
- xml_core = ' '.join(normalized_xml.split()[:3]) # First 3 words
102
 
103
- if (search_core in normalized_xml or
104
- xml_core in normalized_search or
105
- normalized_search in normalized_xml or
106
- normalized_xml in normalized_search):
 
 
 
 
 
 
 
 
 
 
 
 
107
  warehouses = product.find('Warehouses')
108
  if warehouses is not None:
109
  warehouse_info = []
@@ -757,8 +770,13 @@ def process_whatsapp_message_with_memory(user_message, phone_number):
757
  for product_name in product_names[:3]: # Max 3 products
758
  # Clean up the product name
759
  product_name = product_name.strip()
 
 
 
 
 
760
  # Skip status indicators
761
- if product_name in ['Stokta mevcut', 'Stokta yok', 'Fiyat:', 'Kampanya:', 'İndirim:']:
762
  continue
763
 
764
  print(f"DEBUG: Mağaza stogu kontrol ediliyor: {product_name}")
 
62
  def get_warehouse_stock(product_name):
63
  """B2B API'den mağaza stok bilgilerini çek"""
64
  try:
65
+ import re
66
  warehouse_url = 'https://video.trek-turkey.com/bizimhesap-warehouse-xml.php'
67
  response = requests.get(warehouse_url, verify=False, timeout=15)
68
 
 
97
  normalized_search = normalize_turkish(search_name.replace('(2026)', '').replace('(2025)', '').replace(' - ', ' ').strip())
98
  normalized_xml = normalize_turkish(xml_product_name.replace('(2026)', '').replace('(2025)', '').replace(' - ', ' ').strip())
99
 
100
+ # Extract key product identifiers (first 2-3 meaningful words)
101
+ search_words = normalized_search.split()
102
+ xml_words = normalized_xml.split()
103
 
104
+ # Calculate similarity score based on common words
105
+ common_words = set(search_words) & set(xml_words)
106
+
107
+ # Check if we have enough common words (at least 2 key words match)
108
+ # OR if the first two words match (brand + model number usually)
109
+ search_key = ' '.join(search_words[:2]) if len(search_words) >= 2 else normalized_search
110
+ xml_key = ' '.join(xml_words[:2]) if len(xml_words) >= 2 else normalized_xml
111
+
112
+ # Match if:
113
+ # 1. First two words are the same (e.g., "marlin 6", "checkpoint sl")
114
+ # 2. OR we have at least 2 common words
115
+ # 3. OR one contains the other (for partial matches)
116
+ if (search_key == xml_key or
117
+ len(common_words) >= 2 or
118
+ search_key in normalized_xml or
119
+ xml_key in normalized_search):
120
  warehouses = product.find('Warehouses')
121
  if warehouses is not None:
122
  warehouse_info = []
 
770
  for product_name in product_names[:3]: # Max 3 products
771
  # Clean up the product name
772
  product_name = product_name.strip()
773
+
774
+ # Remove numbering like "1." "2." from the beginning
775
+ import re
776
+ product_name = re.sub(r'^\d+\.\s*', '', product_name)
777
+
778
  # Skip status indicators
779
+ if product_name in ['Stokta mevcut', 'Stokta yok', 'Fiyat:', 'Kampanya:', 'İndirim:', 'Birden fazla ürün buldum:']:
780
  continue
781
 
782
  print(f"DEBUG: Mağaza stogu kontrol ediliyor: {product_name}")