Hi,
1. Yes. You can use such code to generate the alias from the product name automatically:
// supposing you have your product data in $product
$productClass = hikashop_get('class.product');
$productClass->addAlias($product);
$product->product_alias = $product->alias;
unset($product->alias);
$productClass->save($product);
2. If you want to programmatically add translations to products, you can do like this:
$translations = array(
'product_name' => array(
1 => 'product name in english',
2 => 'nom du produit en français',
),
'product_description' => array(
1 => 'product description in english',
2 => 'description du produit en français',
),
);
$translationHelper = hikashop_get('helper.translation');
$translationHelper->handleTranslations('product', $product->product_id, $product, 'hikashop_', $translations);
This assumes that the id of the en-GB language in your Joomla is 1 and the id of the fr-FR language in your Joomla is 2.
You want to look at the lang_id column of the languages table of Joomla in the database in order to know these ids. The loadLanguage method of $translationHelper will return an array of objects from this table with the id and the code for each language.
3. If you want a custom product field to be multilingual, you need to edit the settings of the custom field in the menu Display>Custom fields and turn on the "Translatable" setting. The custom field will then be automatically added to the translation popup of each product.