""" Тестовый скрипт для отладки поля count (Наличие) в Recommerce API Без Django - напрямую через requests """ import requests # === НАСТРОЙКИ - ЗАПОЛНИ === STORE_URL = "https://mixflowers.by" # Замени на свой URL API_TOKEN = "baac4380c190c4c3fed7a89977fd6155b846c7e8" # Замени на свой токен # =========================== SKU = "re-3560" def get_headers(): return { 'x-auth-token': API_TOKEN, 'Accept': 'application/json', } def get_product(): """Получить товар и показать текущее наличие""" print(f"\n=== GET товар {SKU} ===") url = f"{STORE_URL}/api/v1/catalog/products/{SKU}" try: resp = requests.get(url, headers=get_headers(), timeout=15) print(f"Status: {resp.status_code}") if resp.status_code == 200: result = resp.json() # Показываем наличие print(f" count: {result.get('count')}") print(f" availability: {result.get('availability')}") print(f" waiting_time: {result.get('waiting_time')}") print(f"\nПолный ответ: {result}") return result else: print(f"Ошибка: {resp.text}") except Exception as e: print(f"Ошибка: {e}") return None def update_product(data): """Обновить товар""" url = f"{STORE_URL}/api/v1/catalog/products/{SKU}" print(f"POST {url}") print(f"Data: {data}") try: resp = requests.post(url, headers=get_headers(), data=data, timeout=15) print(f"Status: {resp.status_code}") print(f"Response: {resp.text[:500] if resp.text else 'empty'}") return resp except Exception as e: print(f"Ошибка: {e}") return None def test_count_10(): """Тест: count=10 (конкретное количество)""" print(f"\n=== TEST: count=10 (конкретное количество) ===") update_product({'count': 10}) def test_count_inf(): """Тест: count=999999 (есть в наличии, без количества)""" print(f"\n=== TEST: count=999999 (есть в наличии = 'inf') ===") # Recommerce использует 999999 вместо inf update_product({'count': 999999}) def test_count_0(): """Тест: count=0 (нет в наличии)""" print(f"\n=== TEST: count=0 (нет в наличии) ===") update_product({'count': 0}) def test_count_custom(): """Тест: произвольное количество или 'inf'""" print(f"\n=== TEST: произвольное количество ===") val = input("Введите количество (число или 'inf'): ").strip() if val.lower() == 'inf': update_product({'count': 999999}) else: try: update_product({'count': int(val)}) except ValueError: print("Ошибка: введите число или 'inf'") if __name__ == "__main__": if "your-store" in STORE_URL or "your-api" in API_TOKEN: print("=" * 50) print("ОШИБКА: Заполни STORE_URL и API_TOKEN в скрипте!") print("Открой test_count.py и замени значения") print("=" * 50) exit(1) print("=" * 50) print("Тестирование поля count (Наличие) для Recommerce API") print(f"Store: {STORE_URL}") print(f"SKU: {SKU}") print("=" * 50) # Сначала смотрим текущее состояние get_product() print("\n" + "=" * 50) print("Выберите тест:") print("1 - GET (показать текущее состояние)") print("2 - count=10 (конкретное количество)") print("3 - count=inf (есть в наличии)") print("4 - count=0 (нет в наличии)") print("5 - произвольное (число или 'inf')") print("0 - Выход") print("=" * 50) while True: choice = input("\nВведите номер теста: ").strip() if choice == "0": break elif choice == "1": get_product() elif choice == "2": test_count_10() elif choice == "3": test_count_inf() elif choice == "4": test_count_0() elif choice == "5": test_count_custom() else: print("Неверный выбор")