DSW depo mantığı eklendi - gelecek stok bilgisi
Browse files
app.py
CHANGED
@@ -73,11 +73,15 @@ def get_realtime_stock(product_name):
|
|
73 |
# Her mağazanın stok bilgisini topla
|
74 |
stock_info = {}
|
75 |
total_stock = 0
|
|
|
76 |
|
77 |
for warehouse in warehouses:
|
78 |
warehouse_id = warehouse['id']
|
79 |
warehouse_name = warehouse['title']
|
80 |
|
|
|
|
|
|
|
81 |
# Mağaza stoklarını al - endpoint parametresi eklendi
|
82 |
inventory_url = f"{STOCK_API_BASE}?action=inventory&warehouse={warehouse_id}&endpoint=inventory/{warehouse_id}"
|
83 |
inventory_response = requests.get(inventory_url, timeout=5, verify=False)
|
@@ -107,6 +111,12 @@ def get_realtime_stock(product_name):
|
|
107 |
actual_stock = max(qty, stock) # İkisinden büyük olanı al
|
108 |
|
109 |
if actual_stock > 0:
|
|
|
|
|
|
|
|
|
|
|
|
|
110 |
# Varyant detayını sakla (beden/renk bilgisi için)
|
111 |
# Ürün adını temizle - Türkçe karakterleri de dikkate al
|
112 |
variant_info = original_title
|
@@ -138,11 +148,16 @@ def get_realtime_stock(product_name):
|
|
138 |
warehouse_variants.append(f"{original_title}: ✓ Stokta")
|
139 |
total_stock += actual_stock
|
140 |
|
141 |
-
|
|
|
142 |
stock_info[warehouse_name] = warehouse_variants
|
143 |
|
144 |
if not stock_info:
|
145 |
-
|
|
|
|
|
|
|
|
|
146 |
|
147 |
# Minimal prompt oluştur - varyant detaylarıyla
|
148 |
prompt_lines = [f"{product_name} stok durumu:"]
|
@@ -158,6 +173,9 @@ def get_realtime_stock(product_name):
|
|
158 |
# Güvenlik: Toplam adet bilgisi gösterme
|
159 |
if total_stock > 0:
|
160 |
prompt_lines.append(f"✓ Ürün stokta mevcut")
|
|
|
|
|
|
|
161 |
else:
|
162 |
prompt_lines.append(f"✗ Stokta yok")
|
163 |
|
|
|
73 |
# Her mağazanın stok bilgisini topla
|
74 |
stock_info = {}
|
75 |
total_stock = 0
|
76 |
+
dsw_stock = 0 # DSW deposundaki gelecek stok
|
77 |
|
78 |
for warehouse in warehouses:
|
79 |
warehouse_id = warehouse['id']
|
80 |
warehouse_name = warehouse['title']
|
81 |
|
82 |
+
# DSW'yi ayrı tut (gelecek stok için)
|
83 |
+
is_dsw = 'DSW' in warehouse_name or 'ÖN SİPARİŞ' in warehouse_name.upper()
|
84 |
+
|
85 |
# Mağaza stoklarını al - endpoint parametresi eklendi
|
86 |
inventory_url = f"{STOCK_API_BASE}?action=inventory&warehouse={warehouse_id}&endpoint=inventory/{warehouse_id}"
|
87 |
inventory_response = requests.get(inventory_url, timeout=5, verify=False)
|
|
|
111 |
actual_stock = max(qty, stock) # İkisinden büyük olanı al
|
112 |
|
113 |
if actual_stock > 0:
|
114 |
+
# DSW ise gelecek stok olarak say
|
115 |
+
if is_dsw:
|
116 |
+
dsw_stock += actual_stock
|
117 |
+
continue # DSW'yi mağaza listesine ekleme
|
118 |
+
|
119 |
+
# Normal mağaza stoğu
|
120 |
# Varyant detayını sakla (beden/renk bilgisi için)
|
121 |
# Ürün adını temizle - Türkçe karakterleri de dikkate al
|
122 |
variant_info = original_title
|
|
|
148 |
warehouse_variants.append(f"{original_title}: ✓ Stokta")
|
149 |
total_stock += actual_stock
|
150 |
|
151 |
+
# DSW değilse mağaza listesine ekle
|
152 |
+
if warehouse_variants and not is_dsw:
|
153 |
stock_info[warehouse_name] = warehouse_variants
|
154 |
|
155 |
if not stock_info:
|
156 |
+
# Mağazada yok ama DSW'de varsa
|
157 |
+
if dsw_stock > 0:
|
158 |
+
return f"{product_name}: Şu anda mağazalarda stokta yok, ancak yakında gelecek. Ön sipariş verebilirsiniz."
|
159 |
+
else:
|
160 |
+
return f"{product_name}: Şu anda hiçbir mağazada stokta bulunmuyor."
|
161 |
|
162 |
# Minimal prompt oluştur - varyant detaylarıyla
|
163 |
prompt_lines = [f"{product_name} stok durumu:"]
|
|
|
173 |
# Güvenlik: Toplam adet bilgisi gösterme
|
174 |
if total_stock > 0:
|
175 |
prompt_lines.append(f"✓ Ürün stokta mevcut")
|
176 |
+
# Eğer DSW'de de stok varsa ve mağaza stoğu azsa belirt
|
177 |
+
if dsw_stock > 0 and len(stock_info) <= 2: # 2 veya daha az mağazada varsa
|
178 |
+
prompt_lines.append(f"ℹ️ Yakında daha fazla stok gelecek")
|
179 |
else:
|
180 |
prompt_lines.append(f"✗ Stokta yok")
|
181 |
|