В общем поскольку товары заливаются таблицей, то лепить главную категорию и привязываться к ней будет трудозатратно. Нужно чтобы все было аутоматически.
Решил делать так чтобы первая введенная категория в связях товара была как бы "главной". Но сразу столкнулся с тем, что при сохранении товара в БД, в таблице product_to_category порядок сортировки меняется самой таблицей. Так например если был введены категории по порядку 20, 32, 8, то таблица изменяла порядок на 8, 20, 32. Чтобы профиксить это пришлось в БД в таблице product_to_category добавить новый столбец, я назвал его order_id и заполнять его для каждой категории со свои порядковым номером.
Итак я пошел в admin/model/catalog/product.php и
1) в функцию addProduct() в запрос при добавлении нового товара добавил поле order_id для таблицы "product_to_category".
2) в функции editProduct() в запрос при редактировании товара также добавил поле order_id для таблицы "product_to_category".
3) Добавил сортировку по order_id в функции getProductCategories().
Поскольку у меня идет импорт товаров через АОП модуль, то пришлось покопаться в модели suppler.php чтобы найти функцию добавления категории и также добавил поле order_id для таблицы "product_to_category".
Чтобы получить доступ к данным первой категории на странице продукта нужно в файле /catalog/model/catalog/product.php в функции getCategories() добавил сортировку ORDER BY order_id ASC
Затем в файле контроллера продукта /catalog/controller/product/product.php получил данные первой категории и вывел в $data['first_cat']
Ну и затем в шаблоне продукта извлек данные о категории в нужном месте.
Все, с главной задачей разобрался. Информация о главной категории выводится автоматически на карточке товара
Ну и на последок покапался с хлебными крошками. оказалось что их генерирует модификатор под названием OCEXT SEO URL GENERATOR.
В нем нужно всего лишь убрать проверку на if($this->config->get('seourlgenerator_select_main_category')), таким образом освободить функцию
$main_path = $this->getCategoriesMainPath($value,$allCategories);
и в самой функции getCategoriesMainPath() немного изменить запрос к БД - в конце сделать "AND order_id=1"
Готово!