Connector to DKC API v1 (dkc.ru)
Connector for connecting via api to DKC. Allows you to easily retrieve product and news data.
For download use pip:
python -m pip install dkc-api
To get started, you need to import the main class DkcAPI.
from dkc_api.v1.dkc_api import DkcAPI
Next, we pass the initialization parameters to the class. If you want to use environment variables, then the file .env.example is prepared for this.
dkc_api = DkcAPI(
master_key=os.getenv("TOKEN"),
debug=True,
storage=storage.FileTokenStorage(),
logger=logger
)
So far, only five DkcAPI models are available for work:
- Catalog
- Content
- Delivery
- News
- Project (In developing)
Catalog object name:
>>> dkc_api.Catalog.*
This method retrieves data on stock balances.
Args:
- code (list[str], str, int, None): Material code list. If present, βMaterial IDβ is not taken into account. Defaults to [].
- id (list[str], str, int, None): Material id list. Defaults to [].
>>> resolve = dkc_api.Catalog.getMaterialStock()
>>> resolve
GetMaterialStock({create: datetime, materials: [{ id: 81, status: true, code: 1200, warehouse: [{code: 2765, ...]}, ...]}, ...] })
This method returns all data for the specified material.
Args:
- code (str): Material code.
>>> resolve = dkc_api.Catalog.getMaterial(code=1200)
>>> resolve
GetMaterial({material: {id: 81, node_id: 1234, etim_class_id: "ETIM", name: "Product name", type: "Type", ...})
This method returns a list of product analogues.
Args:
- code (str, None): Material code.
>>> resolve = dkc_api.Catalog.getMaterialAnalogs(code=1200)
>>> resolve
GetMaterialAnalogs({analogs: { "1200": [ *product_analogue_codes* ]}})
You can get a list of all analogs for all products, for this you need to leave the "code" parameter empty.
>>> resolve = dkc_api.Catalog.getMaterialAnalogs()
>>> resolve
GetMaterialAnalogs({analogs: { *product_codes*: [ *product_analogue_codes* ]}})
This method returns a list of product accessories.
Args:
- code (str, None): Material code.
>>> resolve = dkc_api.Catalog.getMaterialAccessories(code=1200)
>>> resolve
GetMaterialAccessories({accessories: { "1200": [ *product_analogue_codes* ]}})
You can get a list of all accessories for all products, for this you need to leave the "code" parameter empty.
>>> resolve = dkc_api.Catalog.getMaterialAccessories()
>>> resolve
GetMaterialAccessories({accessories: { *product_codes*: [ *product_analogue_codes* ]}})
This method returns a list of product certificates.
Args:
- code (str): Material code.
>>> resolve = dkc_api.Catalog.getMaterialCertificates(code=1200)
>>> resolve
GetMaterialCertificates({certificates: { "1200": [ *product_analogue_codes* ]}})
- getMaterialRelated
- getMaterialVideo
- getMaterialDrawingsSketch
- getMaterialDescription
- getMaterialSpecification
Content object name:
>>> dkc_api.Content.*
The method allows you to get editorial drawings by product code
Args:
- last_updated (datetime, None): if specified, only processes changes from the specified date. Timestamp format.
>>> resolve = dkc_api.Content.getRevisionDrawings(code=1200)
>>> resolve
GetRevisionDrawings({revision: { delta: bool, drawings: { updated: [id: 1200, name: "Name", links: { type: "Type", ...}], removed: [...]}})
The method allows you to get editorial materials by product code
Args:
- last_updated (datetime, optional): if specified, only processes changes from the specified date. Timestamp format.
>>> resolve = dkc_api.Content.getRevisionMaterials(code=1200)
>>> resolve
GetRevisionMaterials({revision: { delta: bool, materials: { updated: [id: 1200, name: "Name", links: { type: "Type", ...}], removed: [...]}})
This method allows you to upload files to the dkc api repository
Args:
- file_content (PostFileContent): file content
>>> post_file_content = PostFileContent(name="name_file", value="value_file")
>>> resolve = dkc_api.Content.postFile(file_content=post_file_content)
>>> resolve
PostFile({revision: { id: 872} })
This method allows you to get files from the dkc api repository
Args:
- file_id (int): file id
>>> resolve = dkc_api.Content.getFile(file_id=872)
>>> resolve
PostFile({revision: { name: "name_file", value: "value_file" } })
- getRevisionCertificates
- getRevisionsLastSize
- getRevisionsLast
Delivery object name:
>>> dkc_api.Delivery.*
The method returns the date of shipment of goods
Args:
- delivery_time_content (DeliveryTimeContent): delivery time content. Work how filter.
>>> delivery_time_content = DeliveryTimeContent(company_warehouse="test", items=[])
>>> resolve = dkc_api.Delivery.getDeliveryTime(delivery_time_content=delivery_time_content)
>>> resolve
GetDeliveryTime({items: [{ code: 172, status: true, date_last: {date: *datetime*, amount: 1689030}, date_detail: [...]}, ...] })
News object name:
>>> dkc_api.News.*
The method returns company news.
Args:
- page_index (int): Page index how need load. Default first (0) page.
- length (int): Count news on page. Default 10 news.
>>> resolve = dkc_api.News.getNewsCompany()
>>> resolve
GetNewsCompany({news: [{title: "Title", text: "Text", thumbnail_url: "Url", images: ["URL", ...], timestamp: *datetime*}, ...]})
The method returns products news.
Args:
- page_index (int): Page index how need load. Default first (0) page.
- length (int): Count news on page. Default 10 news.
>>> resolve = dkc_api.News.getNewsProducts()
>>> resolve
GetNewsProducts({news: [{title: "Title", text: "Text", thumbnail_url: "Url", images: ["URL", ...], timestamp: *datetime*}, ...]})
The method returns community news.
Args:
- page_index (int): Page index how need load. Default first (0) page.
- length (int): Count news on page. Default 10 news.
>>> resolve = dkc_api.News.getNewsCommunity()
>>> resolve
GetNewsCommunity({news: [{text: "Text", timestamp: "08.08.2021"}, ...]})