Описываю способы решений проблем с которыми я столкнулся:
1) Нужно было вместо "руб." у цены поставить "Рублей", так как есть ограничение в базе на длину строки то необходимо увеличить эту самую длину идем в БД находим таблицу virtuemart_currencies и в поле currency_symbol ставим значение например 10. Теперь в это поле поместится до 10 знаков включительно
2) По умолчанию Virtuamart выводит на главную страницу только 5 лучших товаров хотя везде написано что должно быть их 10.
Править в components/com_virtuemart/views/virtuemart/view.html.php строка 92 текст
$productModel->getProductListing('topten', 5);
меняем на 10
3) В состав VirtuaMart 2 входит модуль категории в который работает как слайдер и только в одном направлении. Сделал что бы работал в обоих направлениях, но пока особенно не тестировал так как категорий не много.
Открываем файл modules/mod_virtuemart_category/tmpl/default.php
и в начале заменяем весь код в переменной на это
$js="jQuery(document).ready(function() {
jQuery('#VMmenu".$ID." li.VmClose ul').hide();
jQuery('#VMmenu".$ID." li .VmArrowdown').click(
function() {
if (jQuery(this).parent().next('ul').is(':hidden')) {
jQuery('#VMmenu".$ID." ul:visible').delay(500).slideUp(500,'linear').parents('li' ).addClass('VmClose').removeClass('VmOpen');
jQuery(this).parent().next('ul').slideDown(500,'linear');
jQuery(this).parents('li').addClass('VmOpen').removeClass(' VmClose');
} else {
jQuery('#VMmenu".$ID." ul:visible').delay(500).slideDown(500,'linear').parents('li' ).addClass('VmOpen').removeClass('VmClose');
jQuery(this).parent().next('ul').slideUp(500,'linear');
jQuery(this).parents('li').addClass('VmClose').removeClass(' VmOpen');
}
});
});" ;
4) При выводе 10 товаров если кликнуть на картунку то она просто показывалась а не перекидывалась на карточку товара. Решение:
/Applications/MAMP/htdocs/vm2shop/components/com_virtuemart/views/virtuemart/tmpl/d efault_products.php
Находим строку:
echo JHTML::_ ( 'link', JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id ), $product->images[0]->displayMediaThumb( 'class="featuredProductImage" border="0"',true,'class="modal"' ) );
и меняем ее на:
echo JHTML::link ( JRoute::_ ( 'index.php?option=com_virtuemart&view=productdetails&virtuemart_product_id=' . $product->virtuemart_product_id . '&virtuemart_category_id=' . $product->virtuemart_category_id ), '<img src="'.$product->images[0]->file_url_thumb.'"/>', array ('title' => $product->product_name) );
5) По умолчанию в категориях краткое описание товара обрезается до 40 символов.
Решение:
Идем в файл components/com_virtuemart/views/category/tmpl/default.php
Находим строчку:
<?php echo shopFunctionsF::limitStringByWord($product->product_s_desc, 40, '...')?> и меняем цифру 40 на свою.
6) Если Вы добавляете товар вручную в менюшке (Каждый новый товар в меню отдельный пункт меню) то у меня случился баг, что половину товаров не стало отоброжаться справа. Лечим так в файле components/com_virtuemart/views/productdetails/tmpl/default.xml:
Было:
<field name="virtuemart_product_id" type="product"
label="COM_VIRTUEMART_PRODUCTDETAILS_FIELD_SELECT"
required="true"
description="COM_VIRTUEMART_PRODUCTDETAILS_FIELD_SELECT_DESC"
/>
Стало:
<field name="virtuemart_product_id"
type="sql"
query="SELECT a.product_name, a.virtuemart_product_id FROM #__virtuemart_products_ru_ru AS a LEFT JOIN #__virtuemart_products AS b ON b.virtuemart_product_id=a.virtuemart_product_id WHERE b.published='1' ORDER BY b.product_sku"
key_field="virtuemart_product_id"
value_field="product_name"
label="COM_VIRTUEMART_PRODUCTDETAILS_FIELD_SELECT"
required="true"
description="COM_VIRTUEMART_PRODUCTDETAILS_FIELD_SELECT_DESC"
/>
P.S. Буду обновлять эту тему