""" Тестовый скрипт для отладки флага new (Новинки) в 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() # Показываем интересующие поля if 'new' in result: print(f" new: {result['new']}") if 'popular' in result: print(f" popular: {result['popular']}") if 'special' in result: print(f" special: {result['special']}") if 'marks' in result: print(f" marks: {result['marks']}") 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_new_1(): """Тест: new=1 (установить флаг Новинки)""" print(f"\n=== TEST: new=1 (установить флаг Новинки) ===") update_product({'new': 1}) def test_new_0(): """Тест: new=0 (сбросить флаг Новинки)""" print(f"\n=== TEST: new=0 (сбросить флаг Новинки) ===") update_product({'new': 0}) def test_popular_1(): """Тест: popular=1 (установить флаг Популярные)""" print(f"\n=== TEST: popular=1 (установить флаг Популярные) ===") update_product({'popular': 1}) def test_popular_0(): """Тест: popular=0 (сбросить флаг Популярные)""" print(f"\n=== TEST: popular=0 (сбросить флаг Популярные) ===") update_product({'popular': 0}) if __name__ == "__main__": if "your-store" in STORE_URL or "your-api" in API_TOKEN: print("=" * 50) print("ОШИБКА: Заполни STORE_URL и API_TOKEN в скрипте!") print("Открой test_is_new.py и замени значения") print("=" * 50) exit(1) print("=" * 50) print("Тестирование флага new (Новинки) для Recommerce API") print(f"Store: {STORE_URL}") print(f"SKU: {SKU}") print("=" * 50) # Сначала смотрим текущее состояние get_product() print("\n" + "=" * 50) print("Выберите тест:") print("1 - GET (показать текущее состояние)") print("2 - new=1 (установить флаг Новинки)") print("3 - new=0 (сбросить флаг Новинки)") print("4 - popular=1 (установить флаг Популярные)") print("5 - popular=0 (сбросить флаг Популярные)") print("0 - Выход") print("=" * 50) while True: choice = input("\nВведите номер теста: ").strip() if choice == "0": break elif choice == "1": get_product() elif choice == "2": test_new_1() elif choice == "3": test_new_0() elif choice == "4": test_popular_1() elif choice == "5": test_popular_0() else: print("Неверный выбор")