Hi Nicolas,
I apologise for not replying before but we needed a moment to look at the issue further and we have found a solution to our issues but it required a hack of the source code. We have tested with Hikashop 2.6.4 and Falang 2.7.0 on Joomla 3.6.4.
To recap in our setup we have several products we are assigned to multiple categories. The category views work correctly and the product listings work correctly. The problem was when you viewed a single product and then clicked on the links to scroll though to view other products in the same category. At a certain point it would jump from the current category and begin showing products from a different category.
We kind of solved the problem by going into the configuration in the SEF url section and setting simplified breadcrumbs to "No". It solved the problem in English which is the default language but in other languages the breadcrumb was screwed up. It basically contained repetitions of itself.
So we went back and set simplified breadcrumbs to "Yes" and had a look at the code in com_hikashop/views/product/view.html.php in the frontend and we see in line 1537 this if $category_id is empty it then looks up the category with loadResult() call which just returns a single result. So if a product is assigned to multiple categories this query does not take that into consideration. However the category id is also stored under the menu item params so we added a couple lines of code
if (!empty($menuData->hikashop_params['category']))
{
$category_id = $menuData->hikashop_params['category'];
}
And that resolved the problem of jumping categories. See attached doc.
We still had this problems in other languages (we had other probems too) when translating the menu items with Falang. We noticed that when we translate the joomla menu item in Falang, unlike other components, in Falang it was impossible to set the hikashop parmas on a per language basis. There is just the message "You need to save this item before accessing the dacShop options". Looking at the falang_content table we see that the hikashop params saved for the menu items were default params but not the complete hikashop menu params
So this took us the file com_hikashop/fields/selectoptions.php in the frontend. In line 23
if(HIKASHOP_J30 && !in_array(@$_REQUEST['option'],array('com_falang','com_joomfish'))){
explicitly stops the params being shown when translating the menu item. We modified this line to
if(HIKASHOP_J30 && !in_array(@$_REQUEST['option'],array('com_joomfish'))){
so that when you translate the menu items the params are shown and are saved in the falang_content table. This resolved the problem of the categories jumping around in other languages because we can access
$menuData->hikashop_params['category'];
as in other languages. Plus it resolves some inconsistencies in the display between English and other languages.
There are probably very good reasons for not showing the hikashop parmas when translating menu items but in testing so for this has not created any problems. The same for modification of the com_hikashop/views/product/view.html.php file. So for in our testing we have not had any side effects.