Skip to main content

Test publish2

Project description

PyPI - Downloads

ORM-система для работы с Bitrix24

Работа библиотеки находится в стадии разработки. (рекомендуется только для локальной разработки)

Библиотека для удобной работы с API Bitrix24 в объектно-ориентированном стиле.

Особенности

  • ORM-подобный доступ к данным через точечную нотацию
  • Удобные методы для создания, обновления и поиска сущностей
  • Поддержка связанных объектов и отношений между ними
  • Поддержка пользовательских полей
  • Работа с товарными позициями сделок
  • Асинхронный подход для лучшей производительности

Установка

uv add orm-bitrix24

Использование

Инициализация

from fast_bitrix24 import Bitrix
from entity import Deal

# Инициализация Bitrix клиента
bitrix = Bitrix('https://your-domain.bitrix24.ru/rest/1/your_webhook_token/')

# Инициализация менеджера сущностей
Deal.get_manager(bitrix)

Получение сделок

# Получение всех сделок
deals = await Deal.objects.get_all()

# Фильтрация сделок
deals = await Deal.objects.filter(type_id="SALE", stage_id="NEW")

# Получение сделки по ID
deal = await Deal.get_by_id(bitrix, "123")

Работа со сделкой

# Чтение полей
print(deal.title)
print(deal.opportunity)
print(deal.created_at)  # Автоматически преобразуется в datetime объект

# Чтение связанных объектов (необходимо использовать await)
company = await deal.company
if company:
    print(company.name)

# Изменение значений
deal.title = "Новое название"
deal.opportunity = 15000
deal.tags.append("новый_тег")
await deal.save()

# Создание примечаний
note = await deal.notes.create(text="Примечание к сделке")

Создание новой сделки

# Создание через менеджер объектов
deal = await Deal.objects.create(
    title="Новая сделка",
    opportunity=10000,
    currency_id="RUB",
    stage_id="NEW"
)

# Альтернативный способ создания
deal = Deal(bitrix)
deal.title = "Новая сделка"
deal.opportunity = 10000
deal.currency_id = "RUB"
deal.stage_id = "NEW"
await deal.save()

Работа с товарами сделки

# Получение товаров сделки
products = await deal.products.get_all()
print(f"В сделке {len(products)} товаров")

# Добавление товара
product = deal.products.add(
    product_id=123,  # ID товара из каталога Bitrix24
    price=1000,
    quantity=2,
    discount_rate=10  # 10% скидка
)

# Изменение параметров товара
product.quantity = 3
product.discount_sum = 500  # Скидка фиксированной суммой

# Сохранение товаров сделки
await deal.save()

Пользовательские поля

from entity import Deal, CustomField, TextCustomField, SelectCustomField

# Добавление пользовательских полей напрямую в класс Deal
Deal.add_custom_field('utm_source', CustomField("UTM_SOURCE"))
Deal.add_custom_field('delivery_address', TextCustomField("UF_CRM_DELIVERY_ADDRESS"))
Deal.add_custom_field('delivery_type', SelectCustomField("UF_CRM_DELIVERY_TYPE"))

# Инициализация менеджера
Deal.get_manager(bitrix)

# Использование пользовательских полей
deals = await Deal.objects.get_all()
deal = deals[0]
deal.delivery_address = "ул. Примерная, д. 1, кв. 2"
await deal.save()

Работа со связанными объектами

Важно! Связанные объекты (company, contact и др.) возвращают корутины, которые нужно ожидать с помощью await:

# Получение связанной компании
company = await deal.company
if company:
    print(f"Компания: {company.title}")

# Получение связанного контакта
contact = await deal.contact
if contact:
    print(f"Контакт: {contact.full_name}")

# Изменение связанного объекта произойдет только после сохранения сделки
deal.company_id = 5  # Смена компании
await deal.save()

Требования

  • Python 3.7+
  • fast-bitrix24

Лицензия

MIT

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

test_publish2-0.1.1.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

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

test_publish2-0.1.1-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file test_publish2-0.1.1.tar.gz.

File metadata

  • Download URL: test_publish2-0.1.1.tar.gz
  • Upload date:
  • Size: 13.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.2

File hashes

Hashes for test_publish2-0.1.1.tar.gz
Algorithm Hash digest
SHA256 e0e2931150ecf3aa07b92d8c87930d83efb685379f651d046f74add5372598cb
MD5 3bffb098e91eaf38b20f1e7faff573d4
BLAKE2b-256 95a32916d9d81c5281464683cbf007e18f0b2f0ae1b11ea437201270e7e82fee

See more details on using hashes here.

File details

Details for the file test_publish2-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for test_publish2-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c7e577f8e7b8909886ade616f7ea5acb0fab4c7f1efd29b0845799d4fd367e84
MD5 7cbd4fc2ca28180afff61ec6c6d08f44
BLAKE2b-256 317c20398dbc4270aac69e369c3c8dbaeb8efdfbdc5aa8014b3121bbbda5fb57

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