Самое прекрасное — это когда нужна поддержка сайта, а ты сидишь с телефоном
в руке и ЗНАЕШЬ, чей номер набрать! т. +7 831 4637611 моб. +7 910 3820622
WhatsApp +7 953 5571863 Skype aitishnik
Айтишник РУ Нижний Новгород, Симферопольская, 21 ПН-ПТ 08 - 18
от 500 RUB до 200 000 RUBlogo aitishnik.ru
Создание сайта на CMS Joomla!

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

    • Установка и настройка phpMyAdmin

      Установка и настройка phpMyAdminУстановка phpMyAdmin написана по материалам сайта php-myadmin.ru. Рекомендую этот сайт всем, кто хочет разобраться во всех тонкостях работы с phpMyAdmin. Скачиваем файловый архив phpMyAdmin-3.4.9-all-languages.7z по следующей ссылке. На момент написания...

    • Общие настройки сайта на Joomla. Система...

      Общие настройки сайта на Joomla. Система...В левой части вкладки «Система» общих настроек сайта на Joomla находится группа настроек, которая называется «Настройка системы». Поле ввода «Путь к каталогу логов» содержит путь к журналам Joomla. Обращаем внимание на запись пути! Так как мы организовывали локальный хостинг...

    • Установка и удаление расширений в Joomla 2.5...

      Установка и удаление расширений в Joomla 2.5...В предыдущей статье мы получили общие сведения о расширениях в Joomla 2.5. Теперь самое время узнать, как устанавливать и удалять расширения. Все расширения Joomla, будь то компонент, модуль, плагин или шаблон устанавливаются и удаляются одинаково. Делается это с помощью, входящего в...

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

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

    • Вставка и подсветка кода в Joomla 2.5

      Вставка и подсветка кода в Joomla 2.5В одной из предыдущих статей («Текстовые редакторы в Joomla») я вкратце описывал использование текстовых редакторов. Возможности этих редакторов на 99% покрывают потребности пользователей Joomla. Но иногда их возможностей не хватает или лучше воспользоваться специальными расширениями. Допустим, что в статью...

    • Настройка CAPTCHA в Joomla 2.5

      Настройка CAPTCHA в Joomla 2.5В Joomla, в версии 2.5 появилось полезное нововведение – CAPTCHA. CAPTCHA это аббревиатура, расшифровывающаяся как Completely Automated Public Turing test to tell Computers and Humans Apart. Что переводится как «Полностью автоматизированный...