Как В Корзине Показать Итоговую Сумму Со Скидкой
#1
Отправлено 06 Февраль 2011 - 14:37
1) Каким образом показать итоговую сумму со скидкой на странице "Корзина".
2) На шаге 4 ("Подтверждение заказа") также требуется показать итоговую сумму со скидкой.
Это необходимо сделать т.к. получается, что об окончательной сумме к оплате клиент узнает, только после того как отправил заявку.
#2
Отправлено 06 Февраль 2011 - 16:23
#3
Отправлено 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
Отправлено 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
Отправлено 10 Февраль 2011 - 09:41
#6
Отправлено 11 Февраль 2011 - 09:54
<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
Отправлено 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
Отправлено 10 Апрель 2011 - 14:30
Куда нужно поставить код?
Как он будет выглядеть если при единовременной покупки на
5 000р. скидка 3%;
10 000р. скидка 5%;
20 000р. скидка 10%. ?
#9
Отправлено 11 Апрель 2011 - 04:20
Выглядеть он будет по аналогии
Код шаблона "Корзина"
{% 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
Отправлено 12 Апрель 2011 - 14:57
#11
Отправлено 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
Отправлено 15 Июль 2011 - 22:41
#13
Отправлено 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
Отправлено 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
Отправлено 25 Август 2011 - 18:48
Почему то не могу прикрепить скрин, ну в общем показывает так Итого: с 5% скидкой: 12202.75 хотя уже после 5000 скидка должна была измениться.
#16
Отправлено 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
Отправлено 26 Август 2011 - 17:33
#18
Отправлено 30 Август 2011 - 16:33
Уж очень покупателям нравится когда видно и до и после.
#19
Отправлено 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>
Пример как это выглядит:
#20
Отправлено 23 Сентябрь 2011 - 01:29
2) После подтверждения заказа, снизу в таблице пишется только о скидке про сумму заказа, а про акцию не пишется.
3) везде по разному пишется о скидках и акциях. При добавлении в корзину, к корзине в шапке, в само корзине, на разных этапах оформления заказа и после подтверждения заказа.
Количество пользователей, читающих эту тему: 0
0 пользователей, 0 гостей, 0 анонимных