Самое прекрасное — это когда нужна поддержка сайта, а ты сидишь с телефоном
в руке и ЗНАЕШЬ, чей номер набрать! т. +7 831 4637611 моб. +7 910 3820622Айтишник РУ Нижний Новгород, Симферопольская, 21
A+ A A-

Virtuemart - изменение цены в зависимости от свойства товара

Многие владельцы интернет магазинов на Virtuemart 1.1.x сталкивались со следующей задачей: есть варианты одного и того же товара, которые отличаются друг от друга только каким-нибудь свойством, например, размером, фасовкой, массой, цветом, запахом, формой и т. д. При этом цены для разных вариантов могут различаться. И это естественно – не может же пятисотграммовая упаковка чая стоить столько же, сколько стограммовая упаковка точно такого же чая!

Как же пытаются решить эту задачу? Те, кто совсем не хочет вникать в Virtuemart, просто вводят несколько товаров. Отдельно вводится товар «Пачка чая 100 г», отдельно товар «Пачка чая 200 г» и т. д. Более продвинутые администраторы заводят для товара свойство, например «масса», к которому добавляют несколько особенностей, например, «100 г» или «200 г» и т. д. Для каждой из особенностей стандартными средствами Virtuemart устанавливаются цены вида: +100 или -12. В результате этого в карточке товара «Чай» появляется раскрывающийся список «Масса», в котором покупатель может выбрать упаковку нужной ему массы. Но у этого способа есть ряд недостатков. Выбор упаковки другой массы не меняет цену в карточке товара, а покупатель видит лишь разницу в цене. Покупателю это не удобно – он хочет сразу видеть цену за приобретаемый товар, а не высчитывать её. К тому же вид «+100» или «-12» на мой взгляд не добавляет презентабельности. Администратору же магазина тоже приходится каждый раз пересчитывать разницу при изменении цены товара.
Как сказал один исторический персонаж: «Мы пойдём другим путём!». В этой статье я опишу, как в Virtuemart1.1.x сделать автоматическое изменение цены в зависимости от выбранного свойства товара. В качестве примера возьму свечной гель.
Магазин предлагает свечной гель в разной фасовке: 400 г за 200 руб. и 800 г. за 400 руб. В свойствах товара устанавливаем цену за минимальную фасовку 200 руб.

Virtuemart цена товара

На вкладке «Статус товара» вводим новое свойство «Фасовка». Для нового свойства вводим две особенности: 400 г и 800 г. Выставляем соответствующие цены (со знаком равенства) для каждой особенности и сохраняем изменения.

Virtuemart свойства и особенности

Теперь правим код. Сначала в индексном файле шаблона сайта /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 для выпадающего списка свойства товара. Если в вашем магазине используется другой класс, то вставьте его название в код.
На этом всё. Пример можно посмотреть в интернет-магазине «Все штучки».

Не забывайте, что у нас вы можете не только купить готовый сайт, но и подобрать подходящий тариф поддержки сайта, а так же зарегистрировать домен в одной из двухсот доменных зон и выбрать недорогой тариф хостинга! У нас же вы можете заказать продвижение сайта в поисковых системах.Айтишник РУ

Об авторе:

ZolkinМеня зовут Андрей Золкин. Из более, чем пятнадцати лет работы в сфере информационных технологий, десять лет работаю с системами, базирующимися на открытом исходном коде. На страницах сайта Aitishnik.Ru веду блоги по CMC Joomla и Debian GNU/Linux.

 

Ещё статьи о Joomla 2.5

    • Установка счетчика на сайт с Joomla

      Установка счетчика на сайт с JoomlaВ этой статье мы рассмотрим установку счетчика на сайт под управлением Joomla! 1.5 Для примера установим популярный счётчик Liveinternet. Заходим на сайт http://www.liveinternet.ru/ и кликаем на ссылке «Получить счетчик».

    • Контакты и почтовые формы в joomla

      Контакты и почтовые формы в joomlaОдной из важных страниц большинства сайтов является страница с контактной информацией и почтовой формой обратной связи. В этой статье мы рассмотрим пример того, как можно создать такую страницу в Joomla. По традиции, сначала рассмотрим организацию...

    • Материалы в Joomla 2.5 Категории

      Материалы в Joomla 2.5 КатегорииВ предыдущей статье мы познакомились с общими сведениями о материалах в Joomla. Теперь подробнее познакомимся с категориями материалов. И для этого перейдём в «Менеджер категорий». Категории материалов нужны для систематизирования информации и удобной её подачи пользователям сайта. Категории – это своего рода папки для материалов (статей)....

    • Материалы в Joomla 2.5. Медиа-менеджер

      Материалы в Joomla 2.5. Медиа-менеджерВ этой статье я продолжаю знакомить читателя с материалами в Joomla 2.5. В предыдущих статьях мы познакомились с понятием материала, а так же научились управлять категориями и статьями. Можно было бы приступить к размещению информации...

    • Установка Joomla 2.5

      Установка Joomla 2.5Установка Joomla 2.5 довольно проста и не занимает много времени. В этой статье рассматривается установка CMS Joomla (Джумла) в общем виде на локальный компьютер. Установка и настройка вэб-сервера и дополнительных программ рассматриваются в предыдущей...

    • Joomla авторизация через соц. сети

      Joomla авторизация через соц. сетиВ последнее время стало «модно» предоставлять посетителям сайта возможность регистрации и авторизации, используя свои учетные записи в социальных сетях. В этом есть определенная логика - не каждый хочет проходить регистрацию на сайте. По...