Форум русской поддержки Joomla!® CMS
05.12.2016, 20:43:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Цены и скидки в VM 2.0

 (Прочитано 10334 раз)
0 Пользователей и 1 Гость смотрят эту тему.
jewel93
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 4


« : 06.01.2012, 02:17:19 »

Подскажите, пожалуйста. Как в VirtueMart 2.0 сделать так, чтобы в случае, если у товара нет скидки, строка со скидкой не отображалась? Как сделать обычную цену зачеркнутой, когда скидка есть?
Записан
July07
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 34



« Ответ #1 : 25.04.2012, 09:25:59 »

+1
вопрос актуален
Подскажите, кто как с ним справляется?
Записан
July07
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 34



« Ответ #2 : 25.04.2012, 09:57:05 »

Решено.
Чтобы выводилась цена со скидкой только там, где есть скидка и с перечеркнутой исходной ценой необходимо:
/components/com_virtuemart/views/productdetails/tmp/
в файле default.php (примерно строка 410 - где вывод цен идет)
вместо
Код:
echo $this->currency->createPriceDiv ( 'priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $this->product->prices );

написать
            
Код:
if($this->product->prices[priceWithoutTax] != $this->product->prices[salesPrice])
{
echo '<span style="text-decoration: line-through;">'.$this->currency->createPriceDiv ( 'priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $this->product->prices ).'</span>';
}
Записан
Sanyaha
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #3 : 26.04.2012, 13:29:38 »

у меня нет в этом файле этой строки которую нужно заменить;
echo $this->currency->createPriceDiv ( 'priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $this->product->prices );
и как быть?
Записан
July07
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 34



« Ответ #4 : 26.04.2012, 14:54:52 »

какая версия VM ?
ищите подобную строку : где вывод с параметрами priceWithoutTax или COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX
Записан
Sanyaha
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #5 : 26.04.2012, 16:05:30 »

не нашло совпадений версия 2.0.2
Записан
Morozzz...
Захожу иногда
**

Репутация: +2/-0
Offline Offline

Пол: Мужской
Сообщений: 12


« Ответ #6 : 27.04.2012, 13:04:25 »

у меня нет в этом файле этой строки которую нужно заменить;
echo $this->currency->createPriceDiv ( 'priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $this->product->prices );
и как быть?
эта строка находится в  /components/com_virtuemart/views/productdetails/tmp/default_showprices.php
Записан
Sanyaha
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 12


« Ответ #7 : 27.04.2012, 15:17:18 »

Поменал, не появились цены перечеркнутыми((
Записан
Bowa
Давно я тут
****

Репутация: +5/-0
Offline Offline

Сообщений: 337



« Ответ #8 : 30.04.2012, 00:50:12 »

версия 2.0.6
Магия...
а я поменял и цена стала зачеркнутой, но строка со скидкой не пропала.
Как же от нее избавится? если на товар нет скидки!

и как такое же сделать в модуле вывода товаров?
Записан
alpha-helix
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Сообщений: 69


« Ответ #9 : 04.06.2012, 01:05:11 »

Код:
if($product->prices[priceWithoutTax] != $product->prices[salesPrice])
{
echo '<span style="text-decoration: line-through;">'.$this->currency->createPriceDiv ( 'priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $product->prices ).'</span>';
}
Это аналогичный код для шаблона категории (\category\default.php)
Отличие в том, что $this->product заменяем на $product
Записан
Fedor Vlasenko
Профи
********

Репутация: +696/-5
Offline Offline

Пол: Мужской
Сообщений: 3820


Все начинается с Value


« Ответ #10 : 04.06.2012, 03:30:16 »

Можно и так
Код
if ($product->prices['discountAmount'] > 0){
echo $this->currency->createPriceDiv('priceWithoutTax','COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX',$product->prices);
}
Код
.PricepriceWithoutTax {
   background:url("../images/discount.png") no-repeat scroll right top transparent; //картинка для скидок
   height:48px;
   text-decoration:line-through;
}
« Последнее редактирование: 06.06.2012, 22:01:55 от Poznakomlus » Записан
dreamod
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline Offline

Сообщений: 82


« Ответ #11 : 22.06.2012, 16:48:37 »

мой рецепт для вирта 2.0.6
в файле /components/com_virtuemart/views/productdetails/tmpl/default_showprices.php

меняем строчку
Код:
echo $this->currency->createPriceDiv('priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $this->product->prices);
на
Код:
if($this->product->prices[discountAmount]>0)
{
    echo $this->currency->createPriceDiv('basePrice', 'Старая цена: <span style="text-decoration: line-through;">', $this->product->prices).'</span>';
}
получаем базовую стоимость товара, перечеркнутую и с надписью "старая цена", выводится только тогда, когда скидка больше "0", т.е. когда она есть.
Записан
12mv
Завсегдатай
*****

Репутация: +20/-0
Offline Offline

Пол: Женский
Сообщений: 580


Гульсина


« Ответ #12 : 27.06.2012, 09:46:47 »

У меня отредактированный код. Что нужно в этом случае сделать?

Код:
    if($this->product->prices[salesPrice] != $this->product->prices[priceWithoutTax]) {
    echo $this->currency->createPriceDiv('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices);      
    echo $this->currency->createPriceDiv('priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $this->product->prices);
     } else {
    echo $this->currency->createPriceDiv('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices);      
    echo $this->currency->createPriceDiv('priceWithoutTax', '', '');
     }
Записан
AngelV
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 20


« Ответ #13 : 06.07.2012, 15:54:14 »

Странно, но если на товар повесить две категории, и если создать правило Налог(-10%) и привязать на одну из этих котегорий, то Скидка на товар не отображается.
Записан
nadim
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 24


« Ответ #14 : 30.08.2012, 10:02:52 »

Подскажите как сделать чтобы на товар в категории вывести строку старая цена в место скидки?
Записан
Pashtetdiz
Осваиваюсь на форуме
***

Репутация: +4/-0
Offline Offline

Пол: Мужской
Сообщений: 162


« Ответ #15 : 07.11.2012, 20:23:09 »

мой рецепт для VirtueMart 2.0.6
в файле /components/com_virtuemart/views/productdetails/tmpl/default_showprices.php

меняем строчку
Код:
echo $this->currency->createPriceDiv('priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $this->product->prices);
на
Код:
if($this->product->prices[discountAmount]>0)
{
    echo $this->currency->createPriceDiv('basePrice', 'Старая цена: <span style="text-decoration: line-through;">', $this->product->prices).'</span>';
}
получаем базовую стоимость товара, перечеркнутую и с надписью "старая цена", выводится только тогда, когда скидка больше "0", т.е. когда она есть.
Спасибо за решение, работате 2.12, но только в карточке товара, а вот в категории "старая цена" не выводится, как решить кто подскажет
Записан
najdera
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Женский
Сообщений: 72



« Ответ #16 : 28.11.2012, 18:29:34 »

У меня для категории работает такой вариант!

Код:
        if($product->prices[basePriceWithTax] != $product->prices[salesPrice])
{
echo '<span style="text-decoration: line-through;">'.$this->currency->createPriceDiv ( 'basePriceWithTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $product->prices ).'</span>';
}
Записан
AndrewFar
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 46


« Ответ #17 : 30.11.2012, 22:39:58 »

У меня версия 2.0.14. Файлик такой есть, который тут предлогают изменить и код такой есть. Всё зделал, как написано. но результат абсолютно нулевой.
В админке в настройках формирования цены указаны все флажки, где есть слово скидка!
В списке товаров указано две цены (бредятина, кто такое придумал?):
цена:100
цена без скидки:100
Объясните, в чем разница? Azn Как это исправить, что бы отображалась вместо цена без скидки цена со скидкой?
А в карточке товара:
цена: (пусто)
Цена: 100
Тоже ясен вопрос, что нужно тоже самое, только почему тут первая строка не выводит сумму?
Записан
marozz1k
Давно я тут
****

Репутация: +8/-0
Offline Offline

Сообщений: 324



« Ответ #18 : 01.12.2012, 00:01:15 »

для тех кто делает не как у людей)):

я первый раз в виртуе марте, и даже не понял как эти скидки вообще там работают, поэтому сделал деревянный, но вроде работающий вариант для себя:
В админке вот так:

в default_showprices вот так:
Код:
вместо:

 if ($this->showBasePrice) {

echo $this->currency->createPriceDiv('basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $this->product->prices);

echo $this->currency->createPriceDiv('basePriceVariant', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_VARIANT', $this->product->prices);

    }

пишем:

if ($this->product->prices[basePrice] <= $this->product->prices[salesPrice]) {
     echo $this->currency->createPriceDiv('basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $this->product->prices);
} elseif ($this->product->prices[basePrice] != $this->product->prices[salesPrice]) {
echo '<span style="text-decoration: line-through;">'.$this->currency->createPriceDiv('basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $this->product->prices).'</span>';
    echo $this->currency->createPriceDiv ( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $this->product->prices ); }
в default.php отвечающим за вывод товара в категории вот так:
Код:
вместо:
if ($this->showBasePrice) {
echo $this->currency->createPriceDiv( 'basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $product->prices );
echo $this->currency->createPriceDiv( 'basePriceVariant', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_VARIANT', $product->prices );
}

пишем:
if ($product->prices[basePrice] <= $product->prices[salesPrice]) {
     echo $this->currency->createPriceDiv('basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $product->prices);
} elseif ($product->prices[basePrice] != $product->prices[salesPrice]) {
echo '<span style="text-decoration: line-through;">'.$this->currency->createPriceDiv('basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $product->prices).'</span>';
    echo $this->currency->createPriceDiv ( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $product->prices ); }
и результат получился такой:




Код наверное с ошибкой где-то, т.к. я профан в программировании, это мой первый опыт) может кому-то и пригодится мой вариант

Забыл написать: обязательно в админке должны стоять 2 галки в настройках вывода цены:


и строчки:
Код:
echo $this->currency->createPriceDiv( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $product->prices );
удалить
« Последнее редактирование: 01.12.2012, 00:46:21 от marozz1k » Записан
Bowa
Давно я тут
****

Репутация: +5/-0
Offline Offline

Сообщений: 337



« Ответ #19 : 02.12.2012, 22:35:42 »

Работает в карточке товара без нареканий.
Но как добиться что бы в стандартном модуле вывода товаров (VM - Featured products), если есть скидка, то выводило цену со скидкой и сумму скидки. А если нет скидки то просто саму цену.
Записан
lara77775
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 6


« Ответ #20 : 04.12.2012, 19:23:53 »

да, уважаемый marozz1k ... как в модуле (VM - Featured products)   вывести тоже также цены..
файл \modules\mod_virtuemart_product\tmpl\default.php


я попробовала по аналогии

if ($product->prices['basePrice'] <= $product->prices['salesPrice']) {
       echo $currency->createPriceDiv('basePrice',  $product->prices, FALSE, FALSE, 1.0, TRUE );
} elseif ($product->prices['basePrice'] != $product->prices['salesPrice']) {
echo '<span style="text-decoration: line-through;">'.$currency->createPriceDiv('basePrice',  $product->prices, FALSE, FALSE, 1.0, TRUE ).'</span>';
    echo $currency->createPriceDiv ( 'salesPrice',  $product->prices, FALSE, FALSE, 1.0, TRUE  ); }
   

но что-то не так
Записан
marozz1k
Давно я тут
****

Репутация: +8/-0
Offline Offline

Сообщений: 324



« Ответ #21 : 05.12.2012, 01:29:40 »

блин ребят, у меня во-первых модулей таких нету, во-вторых я случайно по аналогии с автором темы дописал этот код, и то... около часа писал это простое условие Azn) поэтому я врядли смогу решить вашу проблему. Возможно кто-то другой поможет.
Записан
Bowa
Давно я тут
****

Репутация: +5/-0
Offline Offline

Сообщений: 337



« Ответ #22 : 13.12.2012, 16:54:40 »

Кто-то другой, видимо ни кто!  Sad

Может все таки, кто не будь, сможет решить это?
Как сделать что бы... в модуле выводило цену скидки (или процент), если такова есть к товару.
Как сделать что бы... в модуле выводило старую цену и новую, если такова есть к товару.

А может кто знает готовое решение? Какой платный модуль? Или готов за оплату взяться сам?
Записан
albrt
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 21


« Ответ #23 : 31.12.2012, 14:40:31 »

Есть, как мне кажется неплохой платный модуль (http://www.joomla357.com/professional-joomla-extensions?view=item&id=1)
Можно и отдельную страничку для дисконтных товаров сделать.
Записан
nemezida32
Осваиваюсь на форуме
***

Репутация: +3/-0
Offline Offline

Сообщений: 52


« Ответ #24 : 01.03.2013, 17:40:55 »

Открываем панель управления - заходим в настройки
Делаем так как указано на картинке


В товаре делаем вот так:



в default.php вот так:
Находится в /components/com_virtuemart/views/category/tmpl/

Код:
ВМЕСТО:

 if ($this->showBasePrice) {

echo $this->currency->createPriceDiv('basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $this->product->prices);

echo $this->currency->createPriceDiv('basePriceVariant', 'COM_VIRTUEMART_PRODUCT_BASEPRICE_VARIANT', $this->product->prices);

    }


ПИШЕМ:

if ($product->prices[basePrice] <= $product->prices[salesPrice]) {
   
} elseif ($product->prices[basePrice] != $product->prices[salesPrice]) {
echo '<span style="text-decoration: line-through;">'.$this->currency->createPriceDiv('basePrice', 'COM_VIRTUEMART_PRODUCT_BASEPRICE', $product->prices).'</span>';
     }



Унас получится вот так:


Это отображается в категориях. Сделал на основе примерах. Может кому то помогло. Если кто то что то не понял пишите в скайп nemezida32 
Smiley
Не судите строго  Wink
Записан
CyDb6a
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Женский
Сообщений: 124


От меня не уйдешь =)


« Ответ #25 : 12.10.2013, 14:47:38 »

Работает в карточке товара без нареканий.
Но как добиться что бы в стандартном модуле вывода товаров (VM - Featured products), если есть скидка, то выводило цену со скидкой и сумму скидки. А если нет скидки то просто саму цену.
Кто нибудь решил этот вопрос?
Записан
AHTEPO
Осваиваюсь на форуме
***

Репутация: +5/-0
Offline Offline

Сообщений: 55


« Ответ #26 : 17.12.2013, 20:23:42 »

У меня отредактированный код. Что нужно в этом случае сделать?

Код:
     if($this->product->prices[salesPrice] != $this->product->prices[priceWithoutTax]) {
    echo $this->currency->createPriceDiv('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices);       
    echo $this->currency->createPriceDiv('priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $this->product->prices);
     } else {
    echo $this->currency->createPriceDiv('salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices);       
    echo $this->currency->createPriceDiv('priceWithoutTax', '', '');
     }

В этом случае правильным будет не prices[priceWithoutTax] в условии в первой строчке, а prices[basePrice], т.е.
Код:
if($this->product->prices[salesPrice] != $this->product->prices[basePrice]) {
   echo $this->currency->createPriceDiv ( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices );
   echo $this->currency->createPriceDiv ( 'basePrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $this->product->prices );
   echo $this->currency->createPriceDiv ( 'discountAmount', 'COM_VIRTUEMART_PRODUCT_DISCOUNT_AMOUNT', $this->product->prices );
} else {
   echo $this->currency->createPriceDiv ( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices);
   echo $this->currency->createPriceDiv ( 'priceWithoutTax', '', '');
}
Записан
Мари
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 21


« Ответ #27 : 03.01.2014, 10:05:18 »

В шаблоне, с которым я работаю, есть и зачеркнутая цена, и новая цена со скидкой, и даже изображение на товаре, обозначающее % скидки ...А вот на своем сайте я не могу добиться даже зачеркнутой старой цены и скидки.
Галочки стоят, как в примере, испробовала несколько вариантов с файлами php, результат нулевой...

...Решено... каким-то странным путем
Видимо в шаблоне где-то так устроено, что скидка отображается только тогда, когда в расчете цены задействованы налоги, т.е. ставлю основную цену и цену со скидкой, окончательную цену VM пересчитывает с налогом, и выводит уже ее.
Сделала налог +0
« Последнее редактирование: 03.01.2014, 10:45:36 от Мари » Записан
bilaychik
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 13


« Ответ #28 : 04.02.2014, 14:26:22 »

Ребят, у меня проблема. Сделал скидки, они работают, но проблема в том, что когда в категории этот товар - то старая цена. Когда я нажимаю на товар - там уже цена со скидкой.

Где настроить, не подскажете?
Пример. Категория:
http://acuariomalaga.com/index.php/productos/rocas-y-grava/natural

Сам товар из этой категории:
http://acuariomalaga.com/index.php/productos/rocas-y-grava/arena-s-lice-seca-detail

Спасибо
Записан
Polosat
Давно я тут
****

Репутация: +7/-0
Offline Offline

Пол: Мужской
Сообщений: 202


Мечты - это то, из чего сделано будущее


« Ответ #29 : 26.02.2014, 18:59:55 »

Спасибо ребят, скомпилировав разные варианты, получилось! VM 2.0.26d
Делаю без всяких "овверайд" а просто скидка для товара 10%, лезем в Налоги и правила расчета - делаем скидку 10%, выбираем в товаре пункт скидка и в категории оно зачеркивается и выводит 2ю цену если есть скидка, все соседние цены показывает как обычно:

   вот кусок для шаблона категории:
Показать текстовый блок

вот кусок для карточки товара

Показать текстовый блок
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet