importasynciofromdatetimeimportdatetime,timedeltafrommarketplace_apis.ozon.seller_apiimportSellerApiimportosasyncdefmain():asyncwithSellerApi(os.getenv("API_KEY"),os.getenv("CLIENT_ID"))asclient:# получить все отправления за прошедшие 14 днейnow=datetime.now()postings=awaitclient.posting.list_postings(filter_since=now-timedelta(14),filter_to=now)print(postings)# получить информацию и товарах в первом отправленииasyncwithasyncio.TaskGroup()astg:posting=postings[0]offer_ids=[product.offer_idforproductinposting.products]info=tg.create_task(client.product.list_info(offer_ids))attributes=tg.create_task(client.product.list_attributes(offer_id=offer_ids))print(info.result(),attributes.result())asyncio.run(main())
importasynciofromdatetimeimportdatetime,timedeltafrommarketplace_apis.yandex.market_apiimportMarketApiimportosasyncdefmain():# не нужно передавать CAMPAIGN_ID или BUSINESS_ID,# если вы не будете использовать методы, которым они нужныasyncwithMarketApi(os.getenv("TOKEN"),os.getenv("CAMPAIGN_ID"),os.getenv("BUSINESS_ID"))asclient:# получить все отправления за прошедшие 14 днейnow=datetime.now()orders=awaitclient.order.list_orders(fromDate=(now-timedelta(14)).date(),toDate=now.date())print(orders)# получить offer_mappings из первого отправленияorder=orders[0]offer_ids=[item.offerIdforiteminorder.items]offer_mappings=awaitclient.offer_mapping.list_offer_mappings(offerIds=offer_ids)print(offer_mappings)asyncio.run(main())
Для того чтобы передавать в одни и те же аутентификационные данные в разные контекстные менеджеры, существуют фабрики:
Python
1234567
importosfrommarketplace_apis.ozon.seller_apiimportSellerApiFactoryseller_api=SellerApiFactory(os.getenv("API_KEY"),os.getenv("CLIENT_ID"))asyncwithseller_api()asclient:# do something...pass
То же самое актуально и для MarketApi. (Используйте MarketApiFactory для этого)