
Virtuemart 2 позволяет управлять ценами, налогами и скидками так, как никакой другой открытый компонент интернет-магазина для Joomla. Разработчики учли опыт прошлых лет, а также все те проблемы, которые возникали у пользователей и постарались создать абсолютно универсальную систему. Частично им это удалось. Почему частично? Дело в том, что универсальность всегда повышает сложность, как разработки, так и управления. Разобраться во всех тонкостях цен и правил расчета Virtuemart 2 получается далеко не сразу. В этой статье я постараюсь подробно раскрыть эту тему Virtuemart 2.
Содержание
Цены в Virtuemart 2
Первое, с чем следует разобраться, это ценообразование в Virtuemart 2. Казалось бы: что здесь сложного? Должно быть простое поле «Цена». Заполняем его, и сайт показывает цену товара. Но это только на первый взгляд. На самом деле есть много тонкостей, которые не приходят в голову при первом приближении:
- Валюта продавца. Существуют магазины, которые работают с несколькими валютами. Даже проще. Многие заказывают товар, скажем, в долларах, а продают его в рублях. По какому курсу следует конвертировать доллары в рубли? По текущему? А завтра? Изменять все цены вручную?
- Налоги. Только в одной стране есть несколько типов налогов. Для частных лиц, для бизнеса, и т.д. Бывает так, что магазин может работать сразу на несколько стран. Налоги для каждой из них будут отличаться.
- Скидки. Бывает необходимо сделать скидку какой-то определенной группе покупателей, или на заданную категорию товаров, или в зависимости от времени, страны, и т.д.
- Скидки в зависимости от количества покупаемого товара или суммы. Это так вообще насущный вопрос. Общеизвестная практика: чем больше покупаешь, тем дешевле.
Все эти аспекты приводят к тому, что использовать простое числовое поле для цен нельзя. Именно поэтому в Virtuemart 2 есть несколько типов цен. Они усложняют работу с магазином, но дают ему огромную гибкость. Поговорим о них подробнее.
- Базовая цена(Цена) – фактическая цена товара в выбранной валюте;
- Основная цена – цена, преобразованная в валюту продавца;
- Окончательная цена – основная цена, со всеми правилами расчета;
Все налоги и скидки на товары находятся между основной и окончательной ценами. При добавлении товара это выглядит так:
В простых случаях заполнять эту форму полностью не нужно. Достаточно ввести одну из цен и сохранить товар. Остальные цены будут рассчитаны автоматически.
Какой подход применять к заполнению этой формы каждый может решить сам. Если вы не планируете вести в интернет-магазине учет всех налогов, а просто хотите получить на сайте то, что введете, и при этом все рассчитывается в единой валюте, то можно заполнять поле «Цена» или «Окончательная цена». Этого будет достаточно.
В этой же форме можно указывать налоги, скидки и прочее, но делать это следует только в том случае, если вы хотите установить правило именно на данный единичный товар. Если необходимо применить налог или скидку к категории товаров, группы покупателей или весь магазин, то сделать это можно в менеджере «Налоги правила расчета».
Налоги и правила расчета в Virtuemart 2
Менеджер «Налоги и правила расчета» находится в Virtuemart – Товары – Налоги и правила расчета. Он позволяет очень гибко управлять ценообразованием. В Virtuemart 2 разработчики объединили налоги, скидки и другие манипуляции с ценами в общий термин «Правила расчета». Логика такая: добавь правило, а в нем укажи, что нужно сделать с ценами на сайте.
Форма добавления правила расчета выглядит следующим образом:
В ней размещены поля:
- Название правила расчета – просто название правила для администратора. Лучше давать правилам понятные названия, иначе, через неделю, вы рискуете их не вспомнить;
- Опубликовано – если правило опубликовано, то оно работает на сайте, если нет, то нет;
- Порядок – порядок сортировки правил. Важен, когда имеется несколько равнозначных правил. В этом случае они применяются по порядку;
- Описание – описание правил для администратора. Создано скорее для напоминания о том, что делает текущее правило. На сайте не отображается;
- Вид расчета – самое сложное поле в форме. Позволяет указать, что именно будет делать данное правило. Подробнее о доступных видах расчета рассказано ниже;
- Операция – математическая операция, которую применяет данное правило. Доступно всего четыре операции: сложение, вычитание, добавление процента, вычитание процента;
- Значение – значение для математической операции. Т.е. непосредственно размер налога, скидки, и т.д.;
- Валюта – валюта, в которой указана опция «Значение»;
- Категории – категории, к которым будет применено данное правило;
- Группы покупателей – группы покупателей, к которым будет применено данное правило;
- Страна – страны, к которым будет применено данное правило;
- Область/Регион – регионы выбранных стран, к которым будет применено данное правило;
- Производитель – производители, к которым будет применено данное правило;
- Отобразить для покупателей – показывать ли примененное правило покупателям отдельно от цены(например, цена отдельно, а ниже «включая 10руб НДС»);
- Отобразить для продавцов – показывать ли правило продавцам. Актуально только для тех, кто использует в Virtuemart 2 экспериментальную функцию мультипродавцов.
- Дата начала – дата начала действия правила;
- Дата окончания – дата окончания действия правила.
Форма просто шикарная. Огромным плюсом является то, что можно выбирать несколько категорий, групп покупателей, стран, регионов, производителей для каждого из правил. Это приводит к широкой универсальности. Можно манипулировать ценами, как угодно.
Правила расчета
Теперь поговорим про Правила расчета. Изначально их доступно восемь. Все доступные правила расчета показаны на рисунке:
Правила расчета следующие:
Изменение цены для PMargin – просто изменяет цены на заданную величину (процент). Правило удобно, когда нужно изменить стоимость товаров определенной категорий, производителя или для группы покупателей. На сайте отображается так:
Наценка – показана цена и величина наценки (налогов). В корзине наценка видна, как налог. Удобно использовать, если вы хотите показать какой-то группе покупателей величину наценки. На сайте отображается так:
НДС – в принципе, то же самое, что и наценка. Возможно, есть какие-то экономические тонкости, о которых мне не известно. На сайте отображается так:
Цена перед уплатой налогов – скидка(!) на стоимость без учета налогов. Заметьте, именно скидка! Данное правило расчета относится к скидкам. Есть некоторые недопонимания со знаками +/-. По-моему, сделано наоборот. Т.е. если задать положительное число, то скидка будет отрицательной и цена увеличится.
Цена после уплаты налогов – скидка(!) на стоимость с учетом налогов. Все то же самое, что и в предыдущем виде. На сайте отображается так:
Налог до счета – изменяет итоговую стоимость товаров в корзине без учета оплаты и доставки (что-то вроде дополнительного сбора). Записывается в графу налогов. На сайте отображается так:
Цена перед уплатой налогов за счет/ Цена после уплаты налогов за счет – скидка(!). Эти правила я так и не смог постичь полностью. Видны они только в корзине при оформлении заказа и являют собой тоже, что и предыдущее правило, но только в графе скидок. Эти правила будут различаться между собой только тогда, когда также активировано какое-либо правило расчета налогов.
Из всех представленных правил расчета мне кажутся самыми полезными изменение цены для PMargin и НДС. Хотя, в зависимости от специфики бизнеса, могут оказаться нужными и остальные правила. Также есть возможность настроить магазин таким образом, чтобы старая цена была зачеркнута, а новая написана ниже на основании правил расчета.
Чтобы показать покупателям примененные правила, нужно сделать две вещи:
- В настройках правила включить опцию «Отобразить для покупателей»
- В общих настройках Virtuemart 2 на вкладке «Формирование цен» установить соответствующие галочки.
Скидки в зависимости от количества
Стандартные правила расчета хороши, но в них не хватает парочки очень нужных. Часто встречается задача, когда требуется сделать ту или иную скидку на товар в зависимости от количества единиц, которое покупают. Что-то вроде покупки оптом. Здесь интересно.
Изначально, когда появились только предварительные версии Virtuemart2, разработчики включили правило расчета в зависимости от количества в общий набор правил, но с выпуском релиза данное правило было исключено и сейчас выпускается в виде отдельного коммерческого плагина от разработчиков. Стоимость данного плагина 35 евро. После установки он добавляет новое правило расчета в список. Плюс в том, что помимо расчета скидки в зависимости от количества он умеет и кое-что еще.
Для тех, кто не хочет тратить кровные еврики, но очень нуждается в скидках в зависимости от количества, есть другой вариант. Форма добавления товара позволяет делать такие скидки для каждого товара отдельно. Что нужно сделать:
- Добавить новый товар.
- Указать ему основную цену и диапазон количества.
- Добавить дополнительную цену и указать ему диапазон количества.
- Повторять пункт 3, пока не будут покрыты все диапазоны.
Должно получиться примерно то, что показано на рисунке:
Эта функция работает через AJAX. При изменении количества заказываемого товара цена изменяется в соответствии с данными правилами автоматически без перезагрузки страницы.
Подводя итог, хочу сказать, что в Virtuemart 2 разработчики учли проблемы, которые имели место быть в предыдущей версии компонента и придумали очень удобную, а главное, гибкую систему по управлению ценообразованием. Да, она вызывает некоторую избыточность и сложность в освоении, но дает то, чем может похвастаться далеко не каждый интернет-магазин.
Я все же не могу разобраться, как вывести цену со скидкой под основной ценой.
В "Налогах и правилах расчета" создала правило -5% для всех товаров. Но оно в итоге не работает, не отображается на сайте. Не пойму как все же настроить отображение цены, чтобы была основная, а под ней цена со скидкой для всех товаров.
А как быть со второй частью пункта
Указал - Евро. Но, есть туры, которые продаются за доллары, и нужно, чтобы на сайте, вместо значка евро, отобразилось $, а все равно, отображается евро, но, при этом в переводе по курсу (доллары к евро)
В первом вирте не было накопительной скидки! Во втором похожая ситуация!!!
Это очень востребованная функция.
Возможно ли как-то реализовать?
Price:
Sales Price: 1200
вот что бы 1200 пошло в первую строку после Prices? и желательно другим цветом?
"Sales Price" переименуйте в то, что нужно, с помощью переопределения языковых констант Joomla(http://wedal.ru/uroki-joomla/tekst-na-sajte-joomla-kak-najti-dobavit-izmenit-udalit.html)
Есть категория мелких товаров, условно, пирожки с разными вкусами. На каждый пирожок своя карточка товара. При этом действует система скидок (сетка цен) на всю категорию. При покупке 1-5 РАЗНЫХ пирожков цена 50р за пирожок, при покупке 5-10 пирожков цена 40р и т.д. Т.е цена рассчитывается на на один товар, а на всю категорию. Есть ли готовые модули для решения таких задач?
Если задавать скидки на каждый товар отдельно, то это стандартный функционал.
В настройках Магазин-Продавец указал валюту
Ukrainian hrivnya, но почему-то на сайт выводится значок англ. фунта ? Как быть?
Это глюк шаблона, в котором был и Vsrtuemart 2 ( установил этот шаблон
http://www.demo4leotheme.com/joomla/leo_store/)
Т.е. если покупатель делает предоплату - нормальная цена, если выбирает оплата по получении - цена с наценкой. Можно наоборот: по получении базовая цена, при предоплате скидка.
С уважением, Виктор
При клике по кнопке, скрипт подставляет в форму ввода количества нужное число(10 или 100) и далее сам кликает по основной кнопке добавления в корзину.
На JQuery делается элементарно.
1.Создаю правило и оно сразу подключается ко всем товарам. В товарах выставлено: Использовать без правил и Общие параметры. Т.е. получается все налоги и правила являются Общими параметрами.Если их создать несколько, они все плюсуются, отнимаются и в цена товара черти какая.
2.Создаю скидку. При добавлении, например, Цена после уплаты налога -1
В карточке товара:
Цена со скидкой: $324.00
Цена: $325.00
Цена без скидки: $325.00
В корзину же приходит просто цена 325. И зачем я скидку создавала?
Спасибо.
Как сделать, чтобы цена менялась сразу?
обновляются, только с обновлением страницы.
Может быть существует способ прописать функцию обновления в самом коде элемента?
С моими познаниями в php будет проблематично найти этот элемент, если кто в курсе, отзовитесь.
Интересует как сделать скидку на ассортимент товаров в зависимости от приобретаемого количества по каждому виду.
Простыми словами - есть один вид товара например "Открытки" в нем 20 видов по 200 штук - Итого 4000 в ящике.... Скидка на данный вид товара: от 200шт - 400шт = 5%,
от 400шт - 1000шт = 10% и на ящик = 20%. Подскажите как организовать данное решение для 20 видов.... так чтобы покупатель при необходимости мог указать необходимое ему количество для каждого из 20. То есть покупатель указывает - 1вид = 60шт, 3вид = 40шт, 8вид = 120шт. Иттог = 220штук покупателю делается скидка = 5%. и.т.д
Как возможно организовать данное решение ?
Данный плагин у меня есть - но он работает только для одного товара или категории с заданными параметрами по количеству для формирования скидки... Меня интересует каким образом сделать чтобы товар1 20шт + товар2 20 шт = 40 ..... Получаешь скидку :) И все довольны.... Сейчас я делаю так: Категория - Открытки серия №07 , в ней 20 товаров..... Создаю скидку данным плагином на разное количество и ставлю данную категорию для её выполнения в ней.
При покупке товара в этой категории товара происходит следующее - покупаю товар но чтобы сработала скидка добавляю 50 шт в следующем тоже самое... Интересует как объединить количество товара1 50шт и товара2 50шт = 100 и покупатель получил скидку на это количество. А не так как купи один товар от 40 шт получи скидку 2%, а от 100 шт 5%.... Интересует скидка на общий ассортимент... Или может я упустил какие-то моменты... Подскажите пожалуйста.
Поставил квикстарт с предустановленным Virtuemart 2. Оставил только рубль в качестве валюты, но при указании цены в рублях происходит пересчет в евро (в админке отображается рубль, на сайте евро). Где эта настройка могла спрятаться в таблицах вирта ничего не нашел.
1. от 0 до 5 товаров цена 10
2. от 5 до 10 товаров цена 5
3. от 10 до 15 товаров цена 2
на каталожной странице сейчас выводится 10, как сделать чтобы выводилось 2? И при этом при покупке с каталога в корзину бросало 15 товаров?
Не подскажите, как назначить родительскому товару цену от дочернего? ВМ 2.6.10.
Спасибо !
id="productPrice
Мне нужно выставлять в карточке товара цену в долларах или евро (согласно прайсу поставщика), а в магазине цена должна выводится для клиента в гривне.
Основная валюта в настройках - гривна.
Я ввожу стоимость в карточке товара в евро. Выставляю курсы валют в "Настройки-Валюта-Евро"). Курс евро я поставил - 26.00 (то есть, как я понимаю, 26 гривен за 1 евро)
По идее, цена товара на сайте должна отобразится такая - 730.34 гривен.
Но отображается - 1.08 гривен. То бишь, цена в евро не умножается на курс, а делится.
Что я делаю не так ?
Я курс евро выставил 0.03 (стоимость одной гривны).
Цена товара - 103.01 евро.
На сайте отображается цена - 3433,67 грн.
Правильная цена должна быть по идее - 3038,80 грн.
Откуда берется лишнее - ума не приложу.
В разделе "Товары- Налоги и правила расчета" пусто. :((
Где еще порыться, не подскажите?
Я проверил на других товарах - везде добавляются откуда то 13 процентов к правильной цене. Откуда эти 13 процентов берутся - не нашел. В разделе налогов никаких наценок нет. Скидок тоже нет (если это вообще может влиять)
Такое впечатление, что где-то на уровне кода наценка начисляется 13%. :(
Если в 1 евро 26 гривен, то 1 гривна это 1/26 евро, т.е. 0,0384.
Если ваш товар стоит 103.01 евро, то используя курс 0.03, переводим:
103.01 * 100/3 = 3433,67 - т.е. именно то, что вам и выдает VM.
Да, все правильно получается - нужно цифер больше добавлять после ноля. Спасибо!
http://wedal.ru/rasshireniya-joomla/virtuemart-2-internet-magazin-na-joomla-chast-7-nastraivaemye-polya-custom-fields-vidy-polej.html
Я меняю цены в товарах с гривен на доллары и евро.
Сами числа в цене я меняю быстро сразу у многих товаров через экспорт и импорт товаров CSVI (редактирование поля product_price)
А как можно поменять валюту у нескольких товаров сразу, в рамках одной или нескольких категорий? Изменить в карточке товаров с гривен. к примеру, на доллары или евро?
Я пытался в том же CSVI делать - изменял значек гривны на USD в поле product_currency, но при импорте измененного файла стоимость в гривнах не исчезает, а добавляется вторая цена в карточке товара - в долларах.
Только там все примеры для Virtuemart 1.1.x, а у вас Virtuemart 2. В нем частично изменились названия таблиц и полей, но по аналогии должно быть понятно, как и что сделать.
http://wedal.ru/rasshireniya-joomla/virtuemart-internet-magazin-na-joomla-chast-28-fast-data-processing.html#comment-8921
"Скидки в зависимости от количества покупаемого товара или суммы. Это так вообще насущный вопрос. Общеизвестная практика: чем больше покупаешь, тем дешевле."
Подскажите, возможно ли организовать формирование цены покупателем? Магазин продает не товар, а услуги, стоимость которых формируется индивидуально, в результате покупатель, выбирая необходимую услугу, должен ввести сам сумму к оплате.
1.Создал группу покупателей "Группа 10%"
2.Создал покупателя и ассоциировал его с группой "Группа 10%"
3.В "Налоги и правила расчета" создал правило "Скидка 10%", опубликовал его, назначил PMargin, -10%, назначил группу товара и группу покупателей
В отображении цены все настроил. Захожу под пользователем, для которого назначена скидка 10% - фигушки. Отображается цена без скидки :(
1) Попробуйте в общих настройках Virtuemart активировать отображение всех возможных цен и посмотреть не появилась ли нужная цена со скидкой. Возможно, вы просто показываете в товарах базовую цену, а не окончательную.
2) Попробуйте получить скидку не для конкретной группы покупателей, а для всех, а уже после этого добавьте для этой скидки группу.
Пункт 2 - скидка работает только для группы default. Убираю в настройках скидки группу default и добавляю другую - скидка перестает считаться.
Пункт 2 - все скидки работают только для группы default. Для всех остальных групп скидки не отображаются.
И даже когда скидка рассчитывается, то при включении отображения всех цен, размер скидки не выводится. Выводятся только цены уже со скидкой.
Я применяю для группы товаров скидку по правилу: "Цена перед уплатой налогов – скидка(!)". Все работает. Отображается измененная цена и под ней в скобочках размер скидки - (скидка - 25%).
А как сделать чтобы еще старая цена (без скидки) отображалась в зачеркнутом виде? Так сказать для лучшей визуализации самого факта скидки?
Процент от общей стоимости товаров
Доброго времени суток!
Тоже применяю применю три диапазона цен в зависимости от количества, но клиенту не видно, при каком количестве меняется цена. Как можно вывести в карточке товара все три(четыре) диапазона цен? В ВМ 1.1.9 появлялась табличка, в новых версиях ВМ не могу найти, как вывести. Если подскажете, буду весьма признателен!
В любом случае, это потребует правки кода макета карточки товара. Используйте в карточке товара конструкцию:
чтобы посмотреть всю информацию, которая передается в этот макет.
Если там есть и цены и диапазоны, то достаточно просто вывести их в табличку, красиво оформив.
Если этой информации нет, то нужно получить ее из модели Virtuemart (наверняка функция получения цен существует, подсмотреть где она частично можно с помощью Firebug, на этапе отправки AJAX-запроса) или же прямым SQL-запросом в базу данных. Этот способ, в любом случае, требует знаний PHP.
Ну да, необходимо вывести цену для каждого из диапазонов. Сейчас выводится:
Цена: 3500руб.
А необходимо выводить:
Цена:
1-3шт.: 3500руб
4-10шт: 3400руб.
от 10шт.: 3200руб.
Джумла 2.5+ VM2
Основная валюта Рубль, цены вводятся в долл. и в карточке товара при добавлении выбирается долл.
дополнительные поля с добавленной стоимостью тоже в долл.
(непосредственно в карте товара на сайте дополнительные поля показываются в рублях +1400рублей к примеру)
выбран в настройках конвертер convertECB
в настройках валюты в долл установлен в ручную курс долл к рублю
Сама проблема: При добавлении ПЕРВОГО товара в корзину с выбранным дополнительным параметром из настраиваемых полей с добавлением стоимости сумма добавляется не по курсу рубля к долл. а просто цифра введенная в долл.(не срабатывает конвертер на первый товар) при добавлении ВТОРОГО товара с добавлением других параметров с дополнительной стоимостью все работает нормально и добавляется сумма согласно курсу введенному в настройках валюты, и в корзине такая картина первый товар с неправильной ценой а второй с правильной, если первый товар (с неправильной ценой ) удалить то второй (с правильной ценой ) подымается на первое место и цена его пересчитывается и становится неправильной не по курсу валюты! Получается что для первого товара в корзине не срабатывает конвертер для значений доп. полей ))) И еще : Есть модуль корзины, так вот ,когда нажимаешь купить товар всплывает окно что товар добавлен в корзину с выбором продолжить покупки или показать корзину, нажимаю продолжить покупки и в блоке модуля корзины где отражена цена добавленного товара цена правильная с доп полями конвертированными по курсу, тогда я перехожу в корзину и цена в модуле меняется! ))) Чудеса))) Если есть какие-то идеи, что хоть примерно это может быть, я уже сломал голову! Заранее благодарен за помощь!
1) Обновить VM2 до последней версии (перед обновлением не забудьте сделать резервную копию сайта).
2) Проверить присутствие ошибки на стандартном шаблоне Joomla и VM.
Чудеса с миникорзиной происходят потому, что когда вы добавляете товар в корзину, данные в ней обновляются через AJAX. После перезагрузки страницы данные будут взяты уже из макета корзины. Вот, видимо, в одном месте это работает правильно, а в другом - нет. Но вот почему для второго и последующих товаров ошибка пропадает я просто представить себе не могу.
Шаблон менял на стандартный, ошибка остается!
Вот здесь все версии VM: http://dev.virtuemart.net/projects/virtuemart/files
Вообще, это должно работать так:
( "base price" + "custom field prices" ) * discount = "sale price"