Upload app.py
Browse files
app.py
CHANGED
@@ -741,43 +741,50 @@ def process_whatsapp_message_with_memory(user_message, phone_number):
|
|
741 |
if any(keyword in user_message.lower() for keyword in ['mağaza', 'mağazada', 'nerede', 'hangi mağaza', 'şube']):
|
742 |
print(f"DEBUG: Mağaza sorusu algılandı: {user_message}")
|
743 |
|
744 |
-
#
|
|
|
745 |
warehouse_info_parts = []
|
746 |
-
|
747 |
-
|
748 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
749 |
product_name = product[2] # Full product name
|
750 |
print(f"DEBUG: Mağaza stogu kontrol ediliyor: {product_name}")
|
751 |
warehouse_stock = get_warehouse_stock(product_name)
|
752 |
print(f"DEBUG: Mağaza stok sonucu: {warehouse_stock}")
|
753 |
-
|
|
|
754 |
warehouse_info_parts.append(f"{product_name} mağaza stogu:")
|
755 |
warehouse_info_parts.extend(warehouse_stock)
|
756 |
warehouse_info_parts.append("")
|
757 |
-
|
758 |
-
# If no results from products_found, try direct search from user message
|
759 |
-
if not warehouse_info_parts:
|
760 |
-
print("DEBUG: products_found'dan sonuç yok, mesajdan ürün çıkarmaya çalışıyor")
|
761 |
-
# Extract potential product name from user message
|
762 |
-
message_words = user_message.lower().split()
|
763 |
-
skip_words = ['hangi', 'mağaza', 'mağazada', 'nerede', 'var', 'stok', 'stokta']
|
764 |
-
product_words = [word for word in message_words if word not in skip_words]
|
765 |
-
|
766 |
-
if product_words:
|
767 |
-
# Try common product name patterns
|
768 |
-
test_names = [
|
769 |
-
' '.join(product_words),
|
770 |
-
f"marlin 6 gen 3 (2026) {' '.join(product_words)}",
|
771 |
-
f"marlin 6 gen 3 (2026) m - {' '.join(product_words)}"
|
772 |
-
]
|
773 |
-
|
774 |
-
for test_name in test_names:
|
775 |
-
print(f"DEBUG: Test ediliyor: {test_name}")
|
776 |
-
warehouse_stock = get_warehouse_stock(test_name)
|
777 |
-
if warehouse_stock and warehouse_stock != ['Hiçbir mağazada stokta bulunmuyor']:
|
778 |
-
warehouse_info_parts.append(f"{test_name} mağaza stogu:")
|
779 |
-
warehouse_info_parts.extend(warehouse_stock)
|
780 |
-
break
|
781 |
|
782 |
if warehouse_info_parts:
|
783 |
warehouse_response = "\n".join(warehouse_info_parts)
|
|
|
741 |
if any(keyword in user_message.lower() for keyword in ['mağaza', 'mağazada', 'nerede', 'hangi mağaza', 'şube']):
|
742 |
print(f"DEBUG: Mağaza sorusu algılandı: {user_message}")
|
743 |
|
744 |
+
# First, always search for products using improved search
|
745 |
+
# This will find products even with partial/typo names
|
746 |
warehouse_info_parts = []
|
747 |
+
|
748 |
+
# Use the response text from improved search to extract product names
|
749 |
+
if product_result['response']:
|
750 |
+
# Extract product names from the response
|
751 |
+
import re
|
752 |
+
# Look for product names in bold (between * markers)
|
753 |
+
product_names = re.findall(r'\*([^*]+)\*', product_result['response'])
|
754 |
+
|
755 |
+
if product_names:
|
756 |
+
print(f"DEBUG: Response'tan {len(product_names)} ürün adı çıkarıldı")
|
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}")
|
765 |
+
warehouse_stock = get_warehouse_stock(product_name)
|
766 |
+
print(f"DEBUG: Mağaza stok sonucu: {warehouse_stock}")
|
767 |
+
|
768 |
+
if warehouse_stock and warehouse_stock != ['Ürün bulunamadı'] and warehouse_stock != ['Hiçbir mağazada stokta bulunmuyor']:
|
769 |
+
warehouse_info_parts.append(f"{product_name} mağaza stogu:")
|
770 |
+
warehouse_info_parts.extend(warehouse_stock)
|
771 |
+
warehouse_info_parts.append("")
|
772 |
+
break # Found warehouse info, stop searching
|
773 |
+
|
774 |
+
# If still no warehouse info, use products_found as backup
|
775 |
+
if not warehouse_info_parts and product_result['products_found']:
|
776 |
+
print(f"DEBUG: Response'tan bulunamadı, products_found kullanılıyor")
|
777 |
+
for product in product_result['products_found'][:2]:
|
778 |
product_name = product[2] # Full product name
|
779 |
print(f"DEBUG: Mağaza stogu kontrol ediliyor: {product_name}")
|
780 |
warehouse_stock = get_warehouse_stock(product_name)
|
781 |
print(f"DEBUG: Mağaza stok sonucu: {warehouse_stock}")
|
782 |
+
|
783 |
+
if warehouse_stock and warehouse_stock != ['Ürün bulunamadı'] and warehouse_stock != ['Hiçbir mağazada stokta bulunmuyor']:
|
784 |
warehouse_info_parts.append(f"{product_name} mağaza stogu:")
|
785 |
warehouse_info_parts.extend(warehouse_stock)
|
786 |
warehouse_info_parts.append("")
|
787 |
+
break
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
788 |
|
789 |
if warehouse_info_parts:
|
790 |
warehouse_response = "\n".join(warehouse_info_parts)
|