Skip to content

Неофициальный асинхронный клиент к публичному API Платформы ABCP на Python

License

Notifications You must be signed in to change notification settings

bl4ckm45k/aioabcpapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AioAbcpApi

Асинхронная библиотека для API ABCP с asyncio и aiohttp

Supported python versions Downloads PyPi Package Version

Присоединяйтесь к телеграм чату

Установка

pip install aioabcpapi

Описание


Все методы максимально приближены к древовидному оформлению официальной документации.

Разделяются на cp и ts, они в свою очередь разделяются на client и admin, далее для поиска нужного вам метода отталкивайтесь от документации API ABCP.

Для примера, из документации TS.Client, Обновление позиции в корзине описание операции следующее:

Операция: POST /ts/cart/update

Для использования этого метода нам нужно будет обратиться к await api.ts.client.cart.update()

Доступ к API


Для API Администратора

Если вы являетесь клиентом магазина на платформе 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'))

Больше примеров

About

Неофициальный асинхронный клиент к публичному API Платформы ABCP на Python

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages