ВНИМАНИЕ!!! ЭТО СТАРАЯ ВЕРСИЯ САЙТА.
ДЛЯ ПОЛУЧЕНИЯ АКТУАЛЬНОЙ ИНФОРМАЦИИ
ПЕРЕЙДИТЕ НА WWW.DIDGO.RU
Изменение цены товара в зависимости от его свойств |
Данная модификация была разработана мной для одного из сайтов. Довольно часто возникает необходимость использовать свойства товара. Например мы продаём автомобиль Opel, который стоит 50000 евро. Такой же автомобиль красного цвета стоит 60000 евро, к примеру. Когда клиент выбирает из списка свойств нужный ему товар или опцию, то на странице он видит не начальную стоимость товара, а стоимость с учётом его опции. Но, расскажу более подробно... Когда мы вносим информацию о товаре, мы можем назначить для него определённые свойства. Рассмотрим на примере "чистого" Virtuemart с установленными демоданными. У нас есть товар, который называется "Hammer", на самом деле - это молоток :) Перейдём во вкладку "Статус товара" и назначим ему дополнительные свойства. Я, например, задал размеры - простой, большой, очень большой и наигромаднейший. Для простого молотка стоимость равна стоимости товара по умолчанию. Большой молоток будет стоить 10 зелёных рублей, очень большой - 15 и наигромаднейший - 20 зелёных рубликов. Почему в долларах? Лень было менять настройки Virta :) Нажимаем кнопку применить и видим, что на странице товара появилась возможность выбрать свойства товара. Например выберем большой молоток. Мы увидим, что в выпадающем списке указана его цена ($10.98), но стоимость товара на странице осталась неизменной. Довольно часто подобная ерунда приводит покупателей в замешательство. Цену видят одну, а в корзину добавляется совсем другая. Чтобы этого избежать, я решил сделать так, чтобы цена динамически изменялась в зависисмости от выбранной опции (свойства). Скачками кинулся рыть интернет и нифига не нашёл. Готовых решений нет. У буржуев есть вариант, но стоит 25 баксов. В силу своего патриотизма и жадности этот вариант был отброшен сразу. У украинского разработчика мелькнул вариант коряво оформленного неработающего кода. Ну и на Joomla форуме есть кое-какая инфа, но тоже, по большому счёту состоящая из вопросов и невнятных ответов. Пришлось "убить" лень и делать самому. Делать будем используя библиотеку jQuery, поэтому для начала её нужно подключить.
Шаг 1. Подключение jQuery jQuery можно подключать как из папки своего сайта, так и с гугла. В данном примере я подключаю библиотеку с гугла, вы же можете делать на своё усмотрение. Открываем файл index.php шаблона. Он находится в папке /templates/имя вашего шаблона/index.php Перед </head> добавляем код: На данном этапе мы подключили jQuery, а также добавили noConflict, дабы избежать проблем с mootools Joomla. Кстати, перед подключением jQuery проверьте, не подключена ли это библиотека вами ранее. Возможно у вас стоит какое-либо дополнение/плагин, который уже подключил данную библиотеку.
Шаг 2. Правка файла price.tpl.php Открываем файл /components/com_virtuemart/themes/default/templates/common/price.tpl.php В районе 23-24 строки ищем код: После него нужно добавить следующий код: На данном этапе мы добавляем скрипт, который и будет динамически менять цену. Шаг 3. Правим файл addtocart_advanced_attribute.tpl.php Открываем файл /components/com_virtuemart/themes/default/templates/product_details/includes/addtocart_advanced_attribute.tpl.php В районе 12 строки ищем код Заменяем его на: Тестирование: Тестирование проводилось на Joomla 1.5.23 и Virtuemart 1.4-1.8. Полёт нормальный. Недостатки: При использовании данного метода, можно указывать только явную стоимость в свойствах товара. Т.е. цена должна быть указана так: =10 , нельзя прибавлять или удалять стоимость. Т.е. нельзя в стоимости указать +10 или -10. Также не происходит перерасчёта стоимости в случае увеличения количества товаров. Данные моменты будут дорабатываться по мере необходимости. Если у кого-то возникнут идеи, появятся предложения по улучшению или доработке кода - буду только рад. С удовольствием внесу изменения с указанием вашего авторства. |
Вы можете отблагодарить автора:
WMR - R166832041362
WMZ - Z314865156270
QIWI - 9638061071
Яндекс деньги - 41001228750313
Комментарии
Заранее спасибо
Мне нравиться компонент virtuemart. Но как всегда есть недочеты.У меня получается так.
Услуга рекламное объявление размером А6 с размещение на 1 неделю на одном стенде . Цена услуги 80 руб.
1 Свойство товара : Формат рекламного объявления А5-=120
А4=200 и такк далее до А0
2. Свойство Срок размещения рекламного объявления
1 неделя цена равна стоимость свойства формат умножить на Свойство Срок размещения.
т.е. Формат А4=200 рублей. Срок размещения месяц то цена будет 200*4=800.
Можно использовать также не только умножения можно использовать %
3 Свойство. Выбор рекламных стендов.
Количество стендов до 150.Они прописаны в БД.
Там указывается его адрес и свободен ли он в данный момент.
Заказчик может разместить свое рекламное объявление на 30-150 стендах . Количество выбранных стендов и является количество заказа.
Сможешь ли ты выполнить это задание. Укажи скок исполнения и стоимость на емайл leo28031939yandex.ru или скайп leo28031939
Жду
Распишите задачу более детально. Из Вашего объяснения не могу понять зависимость. Либо в скайп - stdidgo
от 100 - до 200?
подскажите пожалуйста по свойствам товара.(инет-магазин по нижнему белью).
Устанавливаю для товара в "Статусе товара" список свойств. Title: Бежевый Особенность: (тут у меня перечисляются размеры).Далее новое свойство Title: Белый Особенность (также размеры).
Вопрос в следующем: когда я выбираю нужный цвет и размер, кладу его в корзину, в корзине отображается не только выбранный нужный цвет и размер, а все свойства....
Кто сталкивался, подскажите, можно ли как то сделать, чтобы в корзине отображался только выбранный цвет и размер.спасибо заранее.