Hi,
To get the user based on the email, you can do like this:
$user = $userClass->get($email_address, 'email');
To create a new address, you can do like this:
$address = new stdClass();
$address->address_user_id = $user->user_id;
$address->address_type = 'billing';
$address->address_published = 1;
$address->address_firstname = $firstname;
$address->address_lastname = $lastname;
...
$addressClass->save($address);
Note also that in address_state and address_country, you need to provide the namekey of the zone in the hikashop_zone table.
For example:
$country = "france";
$zoneClass = hikashop_get('class.zone');
$country_zone = $zoneClass->getZones(array($country), '*', 'zone_name_english', true);
$address->address_country = $country_zone['zone_namekey'];
You can infer this from looking directly at the code of the classes in the files of the folder administrator/components/com_hikashop/classes/
When you do hikashop_get('class.product') it basically returns you an object of the class in the file product.php of that folder.
The point of using hikashop_get instead of a require is that it's shorter to write, and it also handles dynamic overrides of the classes.