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


Как В Корзине Показать Итоговую Сумму Со Скидкой


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 51

#1 John

John

    Продвинутый пользователь

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

Отправлено 06 Февраль 2011 - 14:37

Добрый день!
1) Каким образом показать итоговую сумму со скидкой на странице "Корзина".
2) На шаге 4 ("Подтверждение заказа") также требуется показать итоговую сумму со скидкой.
Это необходимо сделать т.к. получается, что об окончательной сумме к оплате клиент узнает, только после того как отправил заявку.

#2 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 06 Февраль 2011 - 16:23

На заказ может действовать сразу несколько скидок и определить какая из них сработает довольно проблемно из-за сложной логики начисления скидок. В корзине это сделать скорее всего не получится, в случае с подтверждением заказа, можно просто отключить эту стадию заказа и сразу же оформлять заказ, пропуская этот этап. В этом случае на странице следующей за вариантом оплаты будет отображаться цена заказа со скидкой.

#3 John

John

    Продвинутый пользователь

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

Отправлено 07 Февраль 2011 - 07:19

Просмотр сообщенияsupport (06 Февраль 2011 - 16:23) писал:

На заказ может действовать сразу несколько скидок и определить какая из них сработает довольно проблемно из-за сложной логики начисления скидок. В корзине это сделать скорее всего не получится, в случае с подтверждением заказа, можно просто отключить эту стадию заказа и сразу же оформлять заказ, пропуская этот этап. В этом случае на странице следующей за вариантом оплаты будет отображаться цена заказа со скидкой.

Честно сказать не понимаю в чем проблема, возможно у меня частный случай, но мне надо переписать код в моем шаблоне. Скидки накопительные от суммы текущего заказа клиента, например: 10% от суммы 1000 р, 20% от суммы 2000 р. Скидка действуют только на товар в корзине, т.е. цена за доставку не участвует в расчете скидки.
В файле "Просмотр заказа" нашел следующий код вывода на экран суммы заказа с учетом скидки, может есть возможность его как то использовать:          
          <td class="cell1"><p><span>Сумма заказа:</span></p></td>
          <td class="cell2">
            {ORDER_SUM | money}
            {% IF ORDER_SUM_WITHOUT_DISCONT != ORDER_SUM %}
              <br /><span style="color:#888888;">{ORDER_SUM_WITHOUT_DISCONT | money("i")} без учета скидки</span>
            {% ENDIF %}
          </td>  

Второе вы говорите , что можно "отключить эту стадию заказа и сразу же оформлять заказ, пропуская этот этап.". Приведите пример как правильно это сделать.

#4 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 08 Февраль 2011 - 22:30

К сожалению в текущем формате системы выдачу этой информации сделать как Вам требуется не возможно. Я записал задачу в задачник, постараемся просчитать сумму до момента покупки, делают же другие магазины, и мы сможем :)

По поводу этапа заказа, просто переставить его в форме с
	<form 
	  {% IF ORDER_STAGE_NUM=1 %}
		action="{ORDER_STAGE_CONTACTS_URL}"
	  {% ELSEIF ORDER_STAGE_NUM=2 %}
		action="{ORDER_STAGE_DELIVERY_URL}"
	  {% ELSEIF ORDER_STAGE_NUM=3 %}
		action="{ORDER_STAGE_PAYMENT_URL}"
	  {% ELSEIF ORDER_STAGE_NUM=4 %}
		action="{ORDER_STAGE_CONFIRM_URL}"
	  {% ENDIF %}
	  method="post"
	>

На
	<form 
	  {% IF ORDER_STAGE_NUM=1 %}
		action="{ORDER_STAGE_CONTACTS_URL}"
	  {% ELSEIF ORDER_STAGE_NUM=2 %}
		action="{ORDER_STAGE_DELIVERY_URL}"
	  {% ELSEIF ORDER_STAGE_NUM=3 %}
		action="{ORDER_STAGE_CONFIRM_URL}"
	  {% ELSEIF ORDER_STAGE_NUM=4 %}
		action="{ORDER_STAGE_CONFIRM_URL}"
	  {% ENDIF %}
	  method="post"
	>


#5 John

John

    Продвинутый пользователь

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

Отправлено 10 Февраль 2011 - 09:41

Все получилось по второй части вопроса...Что касается доработки вывода в корзине итоговой суммы со скидкой ждем от вас доработки программного кода.

#6 John

John

    Продвинутый пользователь

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

Отправлено 11 Февраль 2011 - 09:54

Все таки хочу доработать код самостоятельно. В HTML файле корзина есть программный код, где выводиться итоговая сумма без скидки
                    <td class="cell1">Итого:</td>
                    <td class="cell2">
                      {% FOR cart_sum %}
                        {cart_sum.NOW | money_format}<br />
                      {% ENDFOR %}
                    </td>                    

Идея такая поставить внутрь цикла FOR  следующее условие:
{%IF  cart_sum.NOW >= 4000 %} с 30% скидкой: {cart_sum.NOW | multiply("0.7")}<br />
{% ELSEIF  cart_sum.NOW >= 3000 %} с 20% скидкой: {cart_sum.NOW | multiply("0.8")}<br />
{% ELSEIF  cart_sum.NOW >= 2000 %} с 15% скидкой: {cart_sum.NOW | multiply("0.85")}<br />
{% ENDIF %}
Проблема в том, что условие не работает... не могу понять может cart_sum.NOW не вещественного типа? Если так, то как можно его преобразовать в данный тип.  Без условий IF (внутри цикла FOR)  умножение на коэф-т скидки {cart_sum.NOW | multiply("0.7")} работает правильно и выдает на экран итоговую сумму со скидкой.
Вообщем остался один шаг до победы, чтобы правильно заработало условие IF.

#7 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 11 Февраль 2011 - 18:46

Отличный у Вас получился код, почти ничего не пришлось дописывать.

В итоге у меня из начального:
{% FOR cart_sum %}
  {cart_sum.NOW | money_format}<br />
{% ENDFOR %}

вот такой код получился для шаблона "Корзина":
{% FOR cart_sum %}
  {% IF  cart_sum.NOW >= 4000 %} с 30% скидкой: {cart_sum.NOW | multiply("0.7")}<br /> 
  {% ELSEIF  cart_sum.NOW >= 3000 %} с 20% скидкой: {cart_sum.NOW | multiply("0.8")}<br /> 
  {% ELSEIF  cart_sum.NOW >= 2000 %} с 15% скидкой: {cart_sum.NOW | multiply("0.85")}<br /> 
  {% ELSE %}{cart_sum.NOW | money_format}<br />
  {% ENDIF %}
{% ENDFOR %}

Так же для того чтобы не путать покупателя в шапке выдачу суммы корзины так же изменил в шаблоне "html" с использованием вашего кода. Изначально было так:
{% FOR cart_sum %}
  <span class="num">{cart_sum.NOW | money_format}</span><br />
{% ENDFOR %}

Стало вот так:
{% FOR cart_sum %}
  <span class="num">
	{% IF  cart_sum.NOW >= 4000 %}{cart_sum.NOW | multiply("0.7")}
	{% ELSEIF  cart_sum.NOW >= 3000 %}{cart_sum.NOW | multiply("0.8")}
	{% ELSEIF  cart_sum.NOW >= 2000 %}{cart_sum.NOW | multiply("0.85")}
	{% ELSE %}{cart_sum.NOW | money_format}
	{% ENDIF %} руб.
  </span><br />
{% ENDFOR %}

Теперь всё выглядит очень даже логично, скидки считаются, спасибо за код, думаю он многим пригодится :)

#8 Ника

Ника

    Пользователь

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

Отправлено 10 Апрель 2011 - 14:30

Я тоже хочу что-бы у меня сумма со скидкой считалась!
Куда нужно поставить код?
Как он будет выглядеть если при единовременной покупки на
5 000р. скидка 3%;
10 000р. скидка 5%;
20 000р. скидка 10%. ?

#9 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 11 Апрель 2011 - 04:20

Добавлять изменения нужно в шаблоны "Корзина" и "html"

Выглядеть он будет по аналогии

Код шаблона "Корзина"

{% FOR cart_sum %}
  {% IF  cart_sum.NOW >= 5000 %} с 3% скидкой: {cart_sum.NOW | multiply("0.97")}<br /> 
  {% ELSEIF  cart_sum.NOW >= 10000 %} с 5% скидкой: {cart_sum.NOW | multiply("0.95")}<br /> 
  {% ELSEIF  cart_sum.NOW >= 20000 %} с 10% скидкой: {cart_sum.NOW | multiply("0.9")}<br /> 
  {% ELSE %}{cart_sum.NOW | money_format}<br />
  {% ENDIF %}
{% ENDFOR %}

Код для шаблона "html"

{% FOR cart_sum %}
  <span class="num">
	{% IF  cart_sum.NOW >= 5000 %}{cart_sum.NOW | multiply("0.97")}
	{% ELSEIF  cart_sum.NOW >= 10000 %}{cart_sum.NOW | multiply("0.95")}
	{% ELSEIF  cart_sum.NOW >= 20000 %}{cart_sum.NOW | multiply("0.9")}
	{% ELSE %}{cart_sum.NOW | money_format}
	{% ENDIF %} руб.
  </span><br />
{% ENDFOR %}


#10 Ника

Ника

    Пользователь

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

Отправлено 12 Апрель 2011 - 14:57

Спасибо! Все получилось, все считает!!! ))

#11 AleXS

AleXS

    Новичок

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

Отправлено 15 Июль 2011 - 14:48

Добрый день,

У меня почему-то не считает скидку 10 и 15% (от 10000 и 20000, всё равно дает скидку 5%), использую вот такой шаблон:

{% FOR cart_sum %}
  {% IF  cart_sum.NOW >= 5000 %} с 5% скидкой - {cart_sum.NOW | multiply("0.95")}<br />
  {% ELSEIF cart_sum.NOW >= 10000 %} с 10% скидкой - {cart_sum.NOW | multiply("0.9")}<br /> 
  {% ELSEIF cart_sum.NOW >= 20000 %} с 15% скидкой - {cart_sum.NOW | multiply("0.85")}<br /> 
  {% ELSE %}{cart_sum.NOW | money_format}<br />
	   {% ENDIF %}
	   {% ENDFOR %}

Заранее благодарен за ответ.

#12 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 15 Июль 2011 - 22:41

Хм. данный код только показывает цену при той или иной процентной скидки, он ничего не модифицирует. Для того что бы скидки работали - вам нужно настроить систему скидок в вашей панели управления.

#13 medisan

medisan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 53 сообщений
  • ГородНовосибирск

Отправлено 24 Август 2011 - 13:45

А как расчитать вот эти показатели

IF  cart_sum.NOW >= 5000 %} с 5% скидкой - {cart_sum.NOW | multiply("0.95")

при таких скидках
2000 - 5%
5000 - 10%
10000 - 15%
20000 - 20%

#14 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 25 Август 2011 - 09:03

Думаю это будет выглядеть следующим образом.

{% FOR cart_sum %}
  <span class="num">
	{% IF  cart_sum.NOW >= 2000 %}{cart_sum.NOW | multiply("0.95")}
	{% ELSEIF  cart_sum.NOW >= 5000 %}{cart_sum.NOW | multiply("0.9")}
	{% ELSEIF  cart_sum.NOW >= 10000 %}{cart_sum.NOW | multiply("0.85")}
	{% ELSEIF  cart_sum.NOW >= 20000 %}{cart_sum.NOW | multiply("0.8")}
	{% ELSE %}{cart_sum.NOW | money_format}
	{% ENDIF %} руб.
  </span><br />
{% ENDFOR %}


#15 medisan

medisan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 53 сообщений
  • ГородНовосибирск

Отправлено 25 Август 2011 - 18:48

Прописала, а считается при любой сумме только 5% скидка.
Почему то не могу прикрепить скрин, ну в общем показывает так Итого: с 5% скидкой: 12202.75 хотя уже после 5000 скидка должна была измениться.



#16 Vaccina

Vaccina

    Активный участник

  • Модераторы
  • 24 353 сообщений

Отправлено 25 Август 2011 - 19:33

Да, верно. поняла в чем причина данного поведения. Условия нужно было прописать в обратном порядке

попробуйте так

{% FOR cart_sum %}
  <span class="num">
	{% IF cart_sum.NOW >= 20000 %}{cart_sum.NOW | multiply("0.8")}
	{% ELSEIF  cart_sum.NOW >= 10000 %}{cart_sum.NOW | multiply("0.85")}
	{% ELSEIF  cart_sum.NOW >= 5000 %}{cart_sum.NOW | multiply("0.9")}
	{% ELSEIF  cart_sum.NOW >= 2000 %}{cart_sum.NOW | multiply("0.95")}
	{% ELSE %}{cart_sum.NOW | money_format}
	{% ENDIF %} руб.
  </span><br />
{% ENDFOR %}


#17 medisan

medisan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 53 сообщений
  • ГородНовосибирск

Отправлено 26 Август 2011 - 17:33

Спасибо, работают!

#18 medisan

medisan

    Продвинутый пользователь

  • Пользователи
  • PipPipPip
  • 53 сообщений
  • ГородНовосибирск

Отправлено 30 Август 2011 - 16:33

Еще вопрос по скидкам. Возможно ли их показать вот таким образом

Изображение

Уж очень покупателям нравится когда видно и до и после.

#19 support

support

    Активный участник

  • Модераторы
  • 3 686 сообщений
  • ГородМосква

Отправлено 02 Сентябрь 2011 - 17:53

Да, конечно же можно.
Для этого можно использовать
{goods.MAX_DISCOUNT} - максимальная скидка действующая на товар
{goods.MAX_PRICE_NOW_WITHOUT_DISCOUNT} - Цена на товар без учёта скидки
{goods.MAX_PRICE_NOW} - Цена на товар с учётом скидки
Шаблонизатор вычислять разницу между двумя переменными по-моему не умеет, поэтому можно посчитать разницу на javascript-е. Вот пример использования в шаблоне сияние. Раздел сайт > редактор тем. Шаблон "Товары":

<!-- Список товаров. Список -->
{% FOR goods %}
  <div class="listing">
	<div class="imagem"><a href="{goods.URL}"><img {% IF goods.IMAGE_EMPTY %}src="{ASSETS_IMAGES_PATH}no-photo-medium.png" width="220"{% ELSE %}src="{goods.IMAGE_SMALL}"{% ENDIF %} alt="{goods.NAME}" /></a></div>

	<div class="contm">
	  <h3><a href="{goods.URL}">{goods.NAME}</a></h3>
	  <p>
		{goods.DESCRIPTION_SHORT}
	  </p>
	  <p>
		Цена сейчас: <a href="{goods.URL_MIN_PRICE_NOW}"><span class="price_now">{goods.MIN_PRICE_NOW | money_format}</span></a><br />
		{% IF goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT>goods.MIN_PRICE_NOW %}
		  Цена без учёта скидки: <a href="{goods.URL_MIN_PRICE_NOW_WITHOUT_DISCOUNT}" class="lineThrough">{goods.MIN_PRICE_NOW_WITHOUT_DISCOUNT | money_format}</a><br />
		  Скидка: {goods.MAX_DISCOUNT}</span>% по акции {goods.MAX_DISCOUNT_CAMPAIGN_NAME}<br />
		  <span class="benefit"></span>
		{% ELSEIF goods.MIN_PRICE_OLD>goods.MIN_PRICE_NOW %}
		  Старая цена: <a href="{goods.URL_MIN_PRICE_OLD}" class="lineThrough">{goods.MIN_PRICE_OLD | money_format}</a>
		{% ENDIF %}
	  </p>
	  <p>
		<a class="readmore" title="{goods.NAME}" href="{goods.URL}">Подробнее</a>
	  </p>
	</div>
	<div class="clr"></div>
  </div>
{% ENDFOR goods %}
<!-- /Список товаров. Список -->
<script type="text/javascript">
// 33 599,65 + 2000 - 1910-41,6
// Считает сумму
function GetSum(val,precision) {
  if(typeof (precision) == "undefined" || precision < 0) { precision = 0; }
  
  // Возводим в степень точности 10 для округления
  var p = Math.pow(10,precision);  
  try {return Math.round(parseFloat(eval(val.toString().replace(/\s/gi, "").replace(/,/gi, ".")))*p)/p;} catch (e) {return 0;}
}
$('.benefit').each(function(){
  var WithoutDiscount = GetSum($(this).parent().find('.lineThrough .num').text(), 2);
  var Now = GetSum($(this).parent().find('.price_now .num').text(), 2);
  $(this).html( "Выгода: " + number_format(WithoutDiscount - Now , 2, ",", " ") + " руб.");
});
</script>

Пример как это выглядит:
discount.jpg

#20 fury21

fury21

    Продвинутый пользователь

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

Отправлено 23 Сентябрь 2011 - 01:29

1) Если товар попадает по скидку от какой то цены и в акцию одновременно, то скидки суммируются, а не выбирается большая. Мне кажеться так не должно быть.
2) После подтверждения заказа, снизу в таблице пишется только о скидке про сумму заказа, а про акцию не пишется.
3) везде по разному пишется о скидках и акциях. При добавлении в корзину, к корзине в шапке, в само корзине, на разных этапах оформления заказа и после подтверждения заказа.




Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных