bronto-python is a python query client which wraps the Bronto SOAP API in an easy to use manner, using the suds library.
from bronto.client import Client
client = Client('BRONTO_API_TOKEN')
client.login()
Simple as that!
contact_data = {'email': 'me@domain.com',
'source': 'api',
'customSource': 'Using bronto-python to import my contact'}
client.add_contact(contact_data)
client.get_contact('me@domain.com')
client.delete_contact('me@domain.com')
order_data = {'id': 'xyz123',
'email': 'me@domain.com',
'products': [
{'id': 1,
'sku': '1111',
'name': 'Test Product 1',
'description': 'This is our first test product.',
'quantity': 1,
'price': 3.50},
{'id': 2,
'sku': '2222',
'name': 'Second Test Product',
'description': 'Here we have another product for testing.',
'quantity': 12,
'price': 42.00}
]
}
client.add_order(order_data)
client.delete_order('xyz123') # Orders are deleted by their orderId
field_data = {'name': 'my_field',
'label': 'My Field',
'type': 'text',
'visible': 'private'
}
client.add_field(field_data)
client.get_field('my_field')
field = client.get_field('my_field')
client.delete_field(field.id)
list_data = {'name': 'my_list',
'label': 'My List'
}
client.add_list(list_data)
client.get_list('my_list')
list_to_del = client.get_list('my_list')
client.delete_field(list_to_del.id)
NOTE: This client is not built with long-running processes in mind. The Bronto API connection will time out after 20 minutes of inactivity, and this client does NOT handle those timeouts.