Parece que nadie ha respondido. Despues de unos dias de pruebas he decidido hacerlo añadiendo el usuario directamente en la BD. Me respondo a mi mismo por si a alguien mas le interesa la respuesta.
Para añadir un usuario nuevo a prestashop se puede hacer añadiendo un registro en la tabla ps_customers y otro en ps_customers_group. El valor _COOKIE_KEY_ lo encontrareis en config/settings.inc.php y la funcion MakeSQLInsert crea la sentencia sql insert para la tabla y campos=>valor indicados.
Código PHP:
function register_prestashop($email, $passwd, $name, $lastname, $gender=NULL, $birthday=NULL)
{
$field = array( 'email' => $email, 'firstname' => $name, 'lastname' => $lastname);
if (!empty($birthday)) {
$field['birthday'] = $birthday;
}
if (!empty($gender)) {
$field['id_gender'] = $gender;
}
$field['passwd'] = md5(_COOKIE_KEY_.$passwd);
$field['active'] = 1;
$field['newsletter'] = 0;
$field['optin'] = 0;
$field['id_default_group'] = 1;
$field['is_guest'] = 0;
$field['deleted'] = 0;
$field['secure_key'] = md5(uniqid(rand(), true));
$field['last_passwd_gen'] = date('Y-m-d H:i:s');
$field['date_add'] = date('Y-m-d H:i:s');
$field['date_upd'] = date('Y-m-d H:i:s');
//$field['id_customer'] (autoincrement)
# SQL insert
$table = 'ps_customer';
$query = MakeQueryInsert($table, $field);
$result = mysql_query($query);
if ($result) {
# echo "<p>Ok</p>";
}
else {
die('<p class="error">Problems with database: ' . mysql_error() . '</p>');
}
# We also need to add customer into group 1
$id_user = mysql_insert_id();
$query = "INSERT INTO ps_customer_group (`id_customer`, `id_group`) VALUES ('$id_user', '1');";
$result = mysql_query($query);
if ($result) {
echo "<p>Ok</p>";
}
else {
die('<p class="error">Problems with database: ' . mysql_error() . '</p>');
}
}