1+ import asyncio
2+ from fixprice_api import FixPriceAPI , CatalogSort
3+ from PIL import Image
4+
5+
6+ async def main ():
7+ async with FixPriceAPI () as api :
8+ # 1. Получаем дерево категорий
9+ tree_data = (await api .Catalog .tree ()).json ()
10+ first_alias = tree_data [next (iter (tree_data ))]["alias" ]
11+ print (f"Первая категория: { first_alias } " )
12+
13+ # 2. Список товаров в категории
14+ products = (
15+ await api .Catalog .products_list (
16+ category_alias = first_alias ,
17+ page = 1 ,
18+ limit = 24 ,
19+ sort = CatalogSort .POPULARITY ,
20+ )
21+ ).json ()
22+ first_product_id = products [0 ]["id" ]
23+ first_product_url = products [0 ]["url" ]
24+ print (f"Первый товар: { products [0 ]['title' ]!s:.60s} ({ first_product_id } )" )
25+
26+ # 3. Геолокация (влияет на каталог и баланс)
27+ cities = (await api .Geolocation .cities_list (country_id = 2 )).json () # Россия
28+ api .city_id = cities [0 ]["id" ]
29+ print (f"Текущий city_id: { api .city_id } " )
30+
31+ # 4. Проверка наличия товара по магазинам
32+ balance = (await api .Catalog .Product .balance (product_id = first_product_id )).json ()
33+ print (f"Проверено магазинов: { len (balance )} " )
34+
35+ # 5. Подробное инфо о товаре
36+ info = (await api .Catalog .Product .info (url = first_product_url )).json ()
37+ print (f"Подробно о товаре: { list (info .keys ())} " )
38+
39+ # 6. Загрузка изображения
40+ image_url = products [0 ]["images" ][0 ]["src" ]
41+ image_stream = await api .General .download_image (image_url )
42+ with Image .open (image_stream ) as img :
43+ print (f"Image format: { img .format } , size: { img .size } " )
44+
45+
46+ if __name__ == "__main__" :
47+ asyncio .run (main ())
0 commit comments