Асинхронная библиотека для API ABCP с asyncio и aiohttp
Присоединяйтесь к телеграм чату
pip install aioabcpapi
Все методы максимально приближены к древовидному оформлению официальной документации.
Разделяются на cp
и ts
, они в свою очередь разделяются на client
и admin
, далее для поиска нужного вам метода
отталкивайтесь от документации API ABCP.
Для примера, из документации TS.Client, Обновление позиции в корзине описание операции следующее:
Операция: POST /ts/cart/update
Для использования этого метода нам нужно будет обратиться к await api.ts.client.cart.update()
Если вы являетесь клиентом магазина на платформе ABCP, обратитесь к вашему менеджеру. (Вам понадобится статический IP адрес)
Все аргументы времени, такие как create_time
, update_time
, date_start
, date_end
и прочие, принимают str
или datetime
. При передаче datetime
объект будет преобразован в зависимости от требований метода в RFC3339
или "%Y-%m-%d %H:%M:%S"
import asyncio
from aioabcpapi import Abcp
host, login, password = 'id33333', 'api@id33333', 'md5hash'
api = Abcp(host, login, password)
async def search_some_parts(article, brand):
search_result = await api.cp.client.search.articles(number=article, brand=brand,
use_online_stocks=True,
disable_online_filtering=True,
with_out_analogs=True)
for x in search_result:
if float(x['price']) < 3000:
print('Похоже на чудо, но скорее ошибка прайса. Отключим пока поставщика')
await api.cp.admin.distributors.edit_status(x['distributorId'], False)
elif float(x['price']) < 37000:
await api.cp.client.basket.add(basket_positions={'number': x['article'],
'brand': x['brand'],
'supplierCode': x['supplierCode'],
'itemKey': x['itemKey'],
'quantity': 1,
'comment': f"Да, РРЦ никто не любит"})
if __name__ == '__main__':
asyncio.run(search_some_parts('602000600', 'LuK'))