export FULFIL_SUBDOMAIN=your_subdomain
export FULFIL_API_KEY=a-long-api-key-which-is-secret
$ pip install -r requirements.txt
python get_addresses.py
import os | |
from fulfil_client import Client | |
from unicodecsv import DictWriter | |
client = Client(os.environ['FULFIL_SUBDOMAIN'], os.environ['FULFIL_API_KEY']) | |
Contact = client.model('party.party') | |
Address = client.model('party.address') | |
def get_addresses(fields, writer): | |
contact_count = Contact.search_count([]) | |
address_count = Address.search_count([]) | |
print "Total contacts in DB: %s" % contact_count | |
print "Total addresses in DB: %s" % address_count | |
addresses = [] | |
batch_size = 1000 | |
for offset in xrange(0, address_count, batch_size): | |
print "Fetching %s to %s" % ( | |
offset + 1, offset + batch_size | |
) | |
addresses = Address.search_read( | |
[], offset, batch_size, None, fields | |
) | |
writer.writerows(addresses) | |
return addresses | |
if __name__ == '__main__': | |
fields = [ | |
'id', | |
'party.name', | |
'name', | |
'street', | |
'streetbis', | |
'city', | |
'zip', | |
'country.code', | |
'subdivision.code', | |
'party.average_sale_order_value', | |
'party.total_sale_order_value', | |
'party.sale_order_count', | |
'party.sale_order_frequency', | |
] | |
with open('addresses1.csv', 'w') as csv_file: | |
writer = DictWriter(csv_file, fields) | |
writer.writeheader() | |
get_addresses(fields, writer) |
fulfil_client | |
unicodecsv | |