Перейти к содержимому


Фото
- - - - -

Итоговая цена в корзине с учетом старых цен товара


  • Чтобы отвечать, сперва войдите на форум
19 ответов в теме

#1 MStyle28

MStyle28
  • Пользователь
  • 95 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Одесса

Опубликовано 11.09.2017 - 15:16

Можно ли в корзине вывести рядом с итоговой ценой,вывести цену без учёта старых цен товаров,если такие есть.

 

К примеру в корзине 1 товар,у него цена 2000 руб. и старая цена 3000 руб.

Итоговая цена будет: 2000 руб.

Итоговая по старым ценам будет 3000руб.

 



#2 artbykoff

artbykoff
  • Пользователь
  • 8 сообщений

Опубликовано 11.09.2017 - 16:23

Можно, так как данные по старой и новой цене хранятся в БД сайта, а дальше с ними можно делать что угодно.



#3 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 5 680 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 11.09.2017 - 16:50

Либо в шаблоне умножить на кол-во далее сплюсовать товары, либо сделать это в api/Cart.php смотрите как сделан подсчет корзины.

#4 MStyle28

MStyle28
  • Пользователь
  • 95 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Одесса

Опубликовано 11.09.2017 - 17:44

Либо в шаблоне умножить на кол-во далее сплюсовать товары, либо сделать это в api/Cart.php смотрите как сделан подсчет корзины.

Первый вариант не подскажите как реализовать?



#5 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 5 680 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 11.09.2017 - 17:55

Первый вариант не подскажите как реализовать?

Смотрите как это сделано в cart.tpl.

#6 MStyle28

MStyle28
  • Пользователь
  • 95 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Одесса

Опубликовано 11.09.2017 - 19:16

Смотрите как это сделано в cart.tpl.

В корзине вывод просто через

{$cart->total_price}


#7 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 5 680 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 11.09.2017 - 19:26

В корзине вывод просто через

{$cart->total_price}


Вы не туда смотрите, смотрите где цена множится на кол-во, точно такое же есть в api/Cart.php.

#8 MStyle28

MStyle28
  • Пользователь
  • 95 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Одесса

Опубликовано 12.09.2017 - 04:52

Вы не туда смотрите, смотрите где цена множится на кол-во, точно такое же есть в api/Cart.php.

 

Разобрался,спасибо что подтолкнули в верном направлении.

 

Может кому понадобится,в файле /api/Cart.php находим:

$cart->total_price += $item->variant->price*$item->amount;

после вставляем:

$cart->total_compare_price += $item->variant->compare_price*$item->amount;

В cart.tpl или cart_informer.tpl выводим:

{$cart->total_compare_price|convert}

Изменено: MStyle28, 12.09.2017 - 05:00


#9 loxter

loxter
  • Пользователь
  • 100 сообщений
  • Дизайн
  • Откуда:paris

Опубликовано 12.09.2017 - 09:08

Интересно, и как это будет использоваться дальше?

Например, в корзине 2 товара, у одного  цена 1000, старая - 1500, а у другого цена 1000, старой нет.

И под каким соусом будете показывать в корзине {$cart->total_compare_price|convert}? Что пользователь увидит и какую информацию должно ему давать выведенное значение ? 



#10 MStyle28

MStyle28
  • Пользователь
  • 95 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Одесса

Опубликовано 12.09.2017 - 12:09

Интересно, и как это будет использоваться дальше?

Например, в корзине 2 товара, у одного  цена 1000, старая - 1500, а у другого цена 1000, старой нет.

И под каким соусом будете показывать в корзине {$cart->total_compare_price|convert}? Что пользователь увидит и какую информацию должно ему давать выведенное значение ? 

Действительно не правильно считает.

Должно работать так,в корзине есть 2 товара:

1 товар - цена - 2000 - старая цена 3000

2 товар - цена - 2000 - старой цены нет

 

В итоге должно выдать 5000,то есть старая цена первого товара и новая цена второго,так как старой нет.

Но сейчас получается не учитывается наличие старой цены,и в данном примере выводит просто 3000.



#11 Kosjak76

Kosjak76
  • Модератор
  • 3 561 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 12.09.2017 - 12:13

if($item->variant->compare_price > 0)

$cart->total_compare_price += $item->variant->compare_price*$item->amount;

else

$cart->total_compare_price += $item->variant->price*$item->amount;



#12 MStyle28

MStyle28
  • Пользователь
  • 95 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Одесса

Опубликовано 12.09.2017 - 12:15

if($item->variant->compare_price > 0)

$cart->total_compare_price += $item->variant->compare_price*$item->amount;

else

$cart->total_compare_price += $item->variant->price*$item->amount;

Спасибо большое,теперь работает!



#13 loxter

loxter
  • Пользователь
  • 100 сообщений
  • Дизайн
  • Откуда:paris

Опубликовано 12.09.2017 - 13:22

Другой пример. В корзине 2 товара, оба по цене 1000, старой нет у обоих.

Опять тот же вопрос: в каком виде будете показывать в корзине {$cart->total_compare_price|convert} и что пользователь  должен понять, увидев выведенное значение ? 



#14 MStyle28

MStyle28
  • Пользователь
  • 95 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Одесса

Опубликовано 13.09.2017 - 16:47

Другой пример. В корзине 2 товара, оба по цене 1000, старой нет у обоих.

Опять тот же вопрос: в каком виде будете показывать в корзине {$cart->total_compare_price|convert} и что пользователь  должен понять, увидев выведенное значение ? 

Да,опять баг,выводит обычную итоговую цену.

Получается нужно писать условие,если в корзине ни один товар не имеет старой цены то не выводить,верно?



#15 Kosjak76

Kosjak76
  • Модератор
  • 3 561 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 13.09.2017 - 16:52

Проще сравнить $cart->total_compare_price и $cart->total_price

И если они РАЗНЫЕ - то выводить



#16 MStyle28

MStyle28
  • Пользователь
  • 95 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Одесса

Опубликовано 13.09.2017 - 17:03

Проще сравнить $cart->total_compare_price и $cart->total_price

И если они РАЗНЫЕ - то выводить

Такое условие будет верным? 

{if $cart->total_compare_price > $cart->total_price}
{$cart->total_compare_price|convert} {$currency->sign}
{/if}


#17 Kosjak76

Kosjak76
  • Модератор
  • 3 561 сообщений
  • Программирование
  • Версия CMS:1.x, 2.x
  • Откуда:Харьков, Украина

Опубликовано 13.09.2017 - 17:07

Да, а почему нет?



#18 MStyle28

MStyle28
  • Пользователь
  • 95 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Одесса

Опубликовано 13.09.2017 - 17:37

Да, а почему нет?

Возможно прописать это условие на уровне php?



#19 Noxter

Noxter

    Simpla Developer

  • Фрилансер
  • 5 680 сообщений
  • Дизайн, Программирование, Верстка
  • Версия CMS:2.x
  • Откуда:Киев

Опубликовано 13.09.2017 - 18:04

Возможно прописать это условие на уровне php?

if($cart->total_compare_price > $cart->total_price)
{
$this->design->assign('var', $cart->total_compare_price);
}


#20 MStyle28

MStyle28
  • Пользователь
  • 95 сообщений
  • Пользователь
  • Версия CMS:2.x
  • Откуда:Одесса

Опубликовано 13.09.2017 - 23:46

if($cart->total_compare_price > $cart->total_price)
{
$this->design->assign('var', $cart->total_compare_price);
}

Спасибо.






0 пользователей читают эту тему

0 пользователей, 0 гостей, 0 скрытых