ΠΡΠΈΠ½Ρ ΡΠΎΠ½Π½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄Π»Ρ 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()
ΠΠ»Ρ 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'))