Сделал сам. За основу взял
решение от
Beagler'a с его (как я понял) блога. Да украсится его путь лепестками лотоса

Итак. В файле \administrator\components\com_virtuemart\classes\ps_checkout.php ищем следующий код:
$q_oi = "SELECT * FROM #__{vm}_product, #__{vm}_order_item, #__{vm}_orders ";
$q_oi .= "WHERE #__{vm}_product.product_id=#__{vm}_order_item.product_id ";
$q_oi .= "AND #__{vm}_order_item.order_id='$order_id' ";
$q_oi .= "AND #__{vm}_orders.order_id=#__{vm}_order_item.order_id ";
Меняем его на этот:
$q_oi = "SELECT * FROM #__{vm}_product, #__{vm}_order_item, #__{vm}_orders, #__{vm}_category, #__{vm}_product_category_xref ";
$q_oi .= "WHERE #__{vm}_product.product_id=#__{vm}_order_item.product_id ";
$q_oi .= "AND #__{vm}_order_item.order_id='$order_id' ";
$q_oi .= "AND #__{vm}_orders.order_id=#__{vm}_order_item.order_id ";
$q_oi .= "AND #__{vm}_category.category_id=#__{vm}_product_category_xref.category_id ";
$q_oi .= "AND #__{vm}_product.product_id=#__{vm}_product_category_xref.product_id ";
Сохраняем. Закрываем.
Далее берем шаблон письма с уведомлением. Лежит тут - \components\com_virtuemart\themes\
ВАША_ТЕМА\templates\order_emails\confirmation_email.tpl.php
Насчет номера строки ориентировочно сказать не могу, мой уже перелопачен от и до, а дефолтный влом смотреть. Вобщем ищем строку
<td><?php $dboi->p("product_name")?> <?php echo ($dboi->f("product_attribute")? ' ('.$dboi->f("product_attribute").')' : ''); ?></td>
И заменяем ее на:
<td><?php $dboi->p("product_name")?> <?php echo ($dboi->f("product_attribute")? ' ('.$dboi->f("product_attribute").')' : ''); ?><br/><?php $dboi->p("category_name")?> </td>
Сохраняем. Закрываем.
Вот и все:)
По поводу изменения шаблона письма - дело вкуса. в этом варианте категория будет выводиться сразу под названием товара. Можете сделать ее в отдельном <td> с заголовком "Категория" - с этим я думаю проблем не возникнет, нужно просто немного поправить табличку
