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

  • 36 Ответов
  • 11277 Просмотров

0 Пользователей и 1 Гость просматривают эту тему.

Цены и скидки в VM 2.0
« : 06.01.2012, 04:17:19 »
Подскажите, пожалуйста. Как в VirtueMart 2.0 сделать так, чтобы в случае, если у товара нет скидки, строка со скидкой не отображалась? Как сделать обычную цену зачеркнутой, когда скидка есть?

*

July07

  • ***
  • 34
  • 1
Re: Цены и скидки в VM 2.0
« Ответ #1 : 25.04.2012, 11:25:59 »
+1
вопрос актуален
Подскажите, кто как с ним справляется?

*

July07

  • ***
  • 34
  • 1
Re: Цены и скидки в VM 2.0
« Ответ #2 : 25.04.2012, 11: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

  • **
  • 12
  • 0
Re: Цены и скидки в VM 2.0
« Ответ #3 : 26.04.2012, 15:29:38 »
у меня нет в этом файле этой строки которую нужно заменить;
echo $this->currency->createPriceDiv ( 'priceWithoutTax', 'COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX', $this->product->prices );
и как быть?

*

July07

  • ***
  • 34
  • 1
Re: Цены и скидки в VM 2.0
« Ответ #4 : 26.04.2012, 16:54:52 »
какая версия VM ?
ищите подобную строку : где вывод с параметрами priceWithoutTax или COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX

*

Sanyaha

  • **
  • 12
  • 0
Re: Цены и скидки в VM 2.0
« Ответ #5 : 26.04.2012, 18:05:30 »
не нашло совпадений версия 2.0.2

Re: Цены и скидки в VM 2.0
« Ответ #6 : 27.04.2012, 15: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

  • **
  • 12
  • 0
Re: Цены и скидки в VM 2.0
« Ответ #7 : 27.04.2012, 17:17:18 »
Поменал, не появились цены перечеркнутыми((

*

Bowa

  • ****
  • 363
  • 5
Re: Цены и скидки в VM 2.0
« Ответ #8 : 30.04.2012, 02:50:12 »
версия 2.0.6
Магия...
а я поменял и цена стала зачеркнутой, но строка со скидкой не пропала.
Как же от нее избавится? если на товар нет скидки!

и как такое же сделать в модуле вывода товаров?

Re: Цены и скидки в VM 2.0
« Ответ #9 : 04.06.2012, 03: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

  • ********
  • 3800
  • 698
  • Все начинается с Value
Re: Цены и скидки в VM 2.0
« Ответ #10 : 04.06.2012, 05:30:16 »
Можно и так
Код: php-brief
if ($product->prices['discountAmount'] > 0){
echo $this->currency->createPriceDiv('priceWithoutTax','COM_VIRTUEMART_PRODUCT_SALESPRICE_WITHOUT_TAX',$product->prices);
}
Код: css
.PricepriceWithoutTax {
    background:url("../images/discount.png") no-repeat scroll right top transparent; //картинка для скидок
    height:48px;
    text-decoration:line-through;
}

*

dreamod

  • ***
  • 82
  • 2
Re: Цены и скидки в VM 2.0
« Ответ #11 : 22.06.2012, 18: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

  • *****
  • 526
  • 20
  • Гульсина
Re: Цены и скидки в VM 2.0
« Ответ #12 : 27.06.2012, 11: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

  • **
  • 19
  • 0
Re: Цены и скидки в VM 2.0
« Ответ #13 : 06.07.2012, 17:54:14 »
Странно, но если на товар повесить две категории, и если создать правило Налог(-10%) и привязать на одну из этих котегорий, то Скидка на товар не отображается.

*

nadim

  • **
  • 24
  • 0
Re: Цены и скидки в VM 2.0
« Ответ #14 : 30.08.2012, 12:02:52 »
Подскажите как сделать чтобы на товар в категории вывести строку старая цена в место скидки?

Re: Цены и скидки в VM 2.0
« Ответ #15 : 07.11.2012, 22: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

  • ***
  • 72
  • 0
Re: Цены и скидки в VM 2.0
« Ответ #16 : 28.11.2012, 20: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>';
}
Оптимист изучает английский, пессимист - китайский, а реалист - автомат Калашникова

Re: Цены и скидки в VM 2.0
« Ответ #17 : 01.12.2012, 00:39:58 »
У меня версия 2.0.14. Файлик такой есть, который тут предлогают изменить и код такой есть. Всё зделал, как написано. но результат абсолютно нулевой.
В админке в настройках формирования цены указаны все флажки, где есть слово скидка!
В списке товаров указано две цены (бредятина, кто такое придумал?):
цена:100
цена без скидки:100
Объясните, в чем разница? :) Как это исправить, что бы отображалась вместо цена без скидки цена со скидкой?
А в карточке товара:
цена: (пусто)
Цена: 100
Тоже ясен вопрос, что нужно тоже самое, только почему тут первая строка не выводит сумму?

*

marozz1k

  • ****
  • 321
  • 8
Re: Цены и скидки в VM 2.0
« Ответ #18 : 01.12.2012, 02: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, 02:46:21 от marozz1k »

*

Bowa

  • ****
  • 363
  • 5
Re: Цены и скидки в VM 2.0
« Ответ #19 : 03.12.2012, 00:35:42 »
Работает в карточке товара без нареканий.
Но как добиться что бы в стандартном модуле вывода товаров (VM - Featured products), если есть скидка, то выводило цену со скидкой и сумму скидки. А если нет скидки то просто саму цену.

Re: Цены и скидки в VM 2.0
« Ответ #20 : 04.12.2012, 21: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

  • ****
  • 321
  • 8
Re: Цены и скидки в VM 2.0
« Ответ #21 : 05.12.2012, 03:29:40 »
блин ребят, у меня во-первых модулей таких нету, во-вторых я случайно по аналогии с автором темы дописал этот код, и то... около часа писал это простое условие :)) поэтому я врядли смогу решить вашу проблему. Возможно кто-то другой поможет.

*

Bowa

  • ****
  • 363
  • 5
Re: Цены и скидки в VM 2.0
« Ответ #22 : 13.12.2012, 18:54:40 »
Кто-то другой, видимо ни кто!  :(

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

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

*

albrt

  • **
  • 21
  • 0
Re: Цены и скидки в VM 2.0
« Ответ #23 : 31.12.2012, 16:40:31 »
Есть, как мне кажется неплохой платный модуль (http://www.joomla357.com/professional-joomla-extensions?view=item&id=1)
Можно и отдельную страничку для дисконтных товаров сделать.

Re: Цены и скидки в VM 2.0
« Ответ #24 : 01.03.2013, 19: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 
^-^
Не судите строго  ;)

*

CyDb6a

  • ***
  • 124
  • 0
  • От меня не уйдешь =)
Re: Цены и скидки в VM 2.0
« Ответ #25 : 12.10.2013, 16:47:38 »
Работает в карточке товара без нареканий.
Но как добиться что бы в стандартном модуле вывода товаров (VM - Featured products), если есть скидка, то выводило цену со скидкой и сумму скидки. А если нет скидки то просто саму цену.
Кто нибудь решил этот вопрос?

*

AHTEPO

  • ***
  • 61
  • 5
Re: Цены и скидки в VM 2.0
« Ответ #26 : 17.12.2013, 22: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', '', '');
}

*

Мари

  • **
  • 21
  • 1
Re: Цены и скидки в VM 2.0
« Ответ #27 : 03.01.2014, 12:05:18 »
В шаблоне, с которым я работаю, есть и зачеркнутая цена, и новая цена со скидкой, и даже изображение на товаре, обозначающее % скидки ...А вот на своем сайте я не могу добиться даже зачеркнутой старой цены и скидки.
Галочки стоят, как в примере, испробовала несколько вариантов с файлами php, результат нулевой...

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

Re: Цены и скидки в VM 2.0
« Ответ #28 : 04.02.2014, 16: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

  • ****
  • 202
  • 7
  • Мечты - это то, из чего сделано будущее
Re: Цены и скидки в VM 2.0
« Ответ #29 : 26.02.2014, 20:59:55 »
Спасибо ребят, скомпилировав разные варианты, получилось! VM 2.0.26d
Делаю без всяких "овверайд" а просто скидка для товара 10%, лезем в Налоги и правила расчета - делаем скидку 10%, выбираем в товаре пункт скидка и в категории оно зачеркивается и выводит 2ю цену если есть скидка, все соседние цены показывает как обычно:

   вот кусок для шаблона категории:
Спойлер
[свернуть]

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

Спойлер
[свернуть]