Skip to main content

Library is intended to provide the integration of the external service or CRM system with the TelegramShops/It allows to configure the relationship between NocoDB list of the products used further to display in the shop/As a resultss the products can be synchronized and updated uppon the request.

Project description

from typing import List
import asyncio

from config import NocoDBConfig
from tgshops_integrations.middlewares.gateway import Gateway
from services.bitrix.client import BitrixClient

# Your credentials are here and source of the target table
NOCODB_HOST = NocoDBConfig.HOST
NOCODB_API_KEY = NocoDBConfig.API_KEY
SOURCE=NocoDBConfig.source_table

async def main():

    # Here is your client to upload data from your service
    bitrixService=BitrixClient()

    # Products have to be in a according to the ProductModel
        # class ProductModel(BaseModel):
            # id: Optional[str]
            # external_id: Optional[str]
            # category: Optional[List[str]]
            # category_name: Optional[List[str]]
            # name: str
            # description: Optional[str]
            # price: Optional[float]
            # final_price: Optional[float]
            # currency: Optional[str]
            # stock_qty: int
            # orders_qty: int = Field(0, hidden_field=True)
            # created: datetime = Field(default=datetime.now, hidden_field=True)
            # updated: datetime = Field(default=datetime.now, hidden_field=True)
            # preview_url: List[str] = []
            # extra_attributes: List[ExtraAttribute] = []

    bitrix_product_list=await bitrixService.get_crm_product_list()

    NocoGateway = Gateway(NOCODB_HOST=NOCODB_HOST,NOCODB_API_KEY=NOCODB_API_KEY)
    
    # Example how to clean your table
    # await NocoGateway.load_data(SOURCE=SOURCE)
    # await NocoGateway.delete_all_products()


    # In order to obtain data from the table need to call load data, to obtain it for further comparation
    await NocoGateway.load_data(SOURCE=SOURCE)
    # Initializes any missing categories
    await NocoGateway.category_manager.update_categories(external_products=bitrix_product_list)

    # Creates or updates the products
    await NocoGateway.update_products(external_products=bitrix_product_list)


asyncio.run(main())

# python3 setup.py sdist bdist_wheel
# twine upload dist/* --verbose

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tgshops_integrations-4.6.tar.gz (12.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tgshops_integrations-4.6-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file tgshops_integrations-4.6.tar.gz.

File metadata

  • Download URL: tgshops_integrations-4.6.tar.gz
  • Upload date:
  • Size: 12.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.10.12

File hashes

Hashes for tgshops_integrations-4.6.tar.gz
Algorithm Hash digest
SHA256 d56b76d0612625d04827a4e4b39c5f6a16e90595dbe428308a53811d444a72b1
MD5 498acd2ccccd9dca00211a2297e2d7fb
BLAKE2b-256 1afedb3d1406cd827e00da8b2dd48ba00dd1faeaafb5e10378dc070f3a175b82

See more details on using hashes here.

File details

Details for the file tgshops_integrations-4.6-py3-none-any.whl.

File metadata

File hashes

Hashes for tgshops_integrations-4.6-py3-none-any.whl
Algorithm Hash digest
SHA256 40b8797ef24f170d34f0b248301a04ae7b4efe1d577297b45f983be65fcd5fa4
MD5 17e53a655b94a045c76690e26890ae11
BLAKE2b-256 fae0d146ea31931f75732ddcf2c8d25738f01d87f554f9e7d1b81ff6aeddc1a7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page