По первому вопросу разобрался. Нужно было применить тот же стиль, что был в корзине на странице с подробным описанием. По второму вопросу нашел тоже решение, но возникает одна проблема. При изменении свойства на странице с подробным описанием все работает как надо, а вот при изменении в общей категории изменяются цены и для остальных товаров. Понятно, что в шаблоне прописана одна переменная с ценой и поэтому при изменении в одном месте, она меняется и в других. Подскажите пожалуйста как можно локализовать этот механизм! Найденный код прилагается!
На вкладке «Статус товара» вводим новое свойство «Фасовка». Для нового свойства вводим две особенности: 400 г и 800 г. Выставляем соответствующие цены (со знаком равенства) для каждой особенности и сохраняем изменения.
Теперь правим код. Сначала в индексном файле шаблона сайта /templates/шаблон_вашего_сайта/index.php подключим jQuery. Для этого перед закрывающимся заголовочным тегом добавим две строки:
<script type="text/javascript" src="
https://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js "></script>
<script type="text/javascript">jQuery.noConflict();</script>
Перед добавлением этих строк стоит убедиться, что библиотека jQuery ещё не подключена.
Теперь отредактируем файл /components/com_virtuemart/themes/default/templates/product_details/includes/addtocart_advanced_attribute.tpl.php. Ищем в файле следующий код (двенадцатая строка):
<option value=""><?php echo $options_item['base_value'] ?> (<?php echo $options_item['sign'].$options_item['display_price'] ?>)</option>
и меняем его на:
<option title="<?php echo $options_item['display_price'] ?>" value="<?php echo $options_item['base_var'] ?>"><?php echo $options_item['base_value'] ?></option>
Затем редактируем ещё один файл: /components/com_virtuemart/themes/default/templates/common/price.tpl.php
Ищем следующую строку:
<?php
if( !empty( $price_info["product_price_id"] )) { ?>
И добавляем прямо после неё следующий код:
<script type="text/javascript">
jQuery(document).ready(function(){
jQuery(".inputboxattrib").change(function () {
jQuery('span.productPrice').replaceWith('<span class="productPrice">'+jQuery(".inputboxattrib option:selected").attr("title")+'</span>');
})
});
</script>
Обратите внимание на .inputboxattrib. Это стандартный класс VirtueMart для выпадающего списка свойства товара. Если в вашем магазине используется другой класс, то вставьте его название в код.
На этом всё. Пример можно посмотреть в интернет-магазине «Все штучки».