Jump to content

Система скидок от суммы заказа


Recommended Posts

Искал-искал, спрашивал-спрашивал, но не нашел и не подсказали, пришлось сочинять:
Файл api/cart.php:
вместо

// Пользовательская скидка
$cart->discount = 0;
if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])))
$cart->discount = $user->discount;

$cart->total_price *= (100-$cart->discount)/100;

вставляем

// Начальная пользовательская скидка (клиент сразу получает скидку)
$cart->discount = 0;

// Скидки от суммы заказа (вставляем суммы и скидки)
if($cart->total_price>0)//если сумма заказа больше 1000 денег
$cart->discount = 5;//скидка 5%

if($cart->total_price>1000)
$cart->discount = 10;

if($cart->total_price>3000)
$cart->discount = 15;

if($cart->total_price>5000)
$cart->discount = 20;

if($cart->total_price>8000)
$cart->discount = 25;

// Если зарегистрированный пользователь
if(isset($_SESSION['user_id']) && $user = $this->users->get_user(intval($_SESSION['user_id'])))

// Выбираем большую скидку
if ($user->discount>$cart->discount)
$cart->discount = $user->discount;

// Результат
$cart->total_price *= (100-$cart->discount)/100; 

Файл cart.tpl:
там где надо вывести скидку

{if $user->discount OR $cart->discount} <tr> <th class=""></th> <th class=""></th> <th colspan="2" class="cart-amount">{if $cart->discount>$user->discount}Cкидка от суммы заказа{else}Персональная скидка{/if}:</th> <th class="price-cart-amount">{$cart->discount} %</th> <th class=""></th> </tr> {/if}

 

Вроде работает, корзина считает.

Может кто посмотрит и доточит, может кому-то пригодится.

Link to post
Share on other sites

Идея приятная, но реализация топорная. А ели надо будет изменить сумму, от которой идет скидка? каждый раз будете код править? Как минимум надо реализовать хранение в базе и настройку через админку. Если будет интересно, могу показать как это реализовать.

Link to post
Share on other sites

а я реализовывал это через группы, при заказе - добавление суммы заказа к пользователю, и от того на сколько заказал меняется группа, а в группах уже пределы "от" "до" стоят, и всё красиво работает

Link to post
Share on other sites

Решение работает только в том случае если пользователи автоматически регистрируются при покупке, а это отдельное дополнение...
Если будет хорошее настроение может и выложу, а пока только за денюжку ;)

Link to post
Share on other sites
  • 4 weeks later...
  • 2 weeks later...

Скорее всего надо:
или приплюсовывать то что отняли,
или вводить какую-нибудь cart->total_price1, которая будет отвечать только за это, наверное второе проще.

Link to post
Share on other sites
  • 1 month later...

А вы могли бы мне объяснить как встроить в админку что либо? я пытался понять, но это нереал для меня. я бы выложил парочку интересных решений. Сейчас они как бы работают с системой, хранятся, инициализируются, но нету графической настройки в админ панели их.

Link to post
Share on other sites

Вывод суммы со скидками у меня сложный т.к. там есть и клиентская скидка и скидка от суммы заказа и выбирается большая и еще там реальная проблема с мультивалютностью потому-что я связывал валюту с доставкой.
Вот код итога (насколько я помню, после того как поправили api там код вывода суммы со скидками не менялся, т.к. изменился механизм расчета):

<tr>            <td colspan="4" class="cart-amount-all">Итого:</td>            <td class="price-cart-amount-all">{$cart->total_price|convert} {$currency->sign}</td>            <td class=""></td>        </tr>

Но этот код мало даст, ведь все правки не в шаблоне.
Link to post
Share on other sites

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

так же нужно вывести скидку в заказе в админке и в письмо отправляемое клиенту и админу.

файлы темы: order.tpl, email_order.tpl
файлы темы админки: order.tpl, email_order_admin.tpl

к примеру в файле order.tpl темы скидка отображается так:

{$order->discount} %
Link to post
Share on other sites

в файле установил такие скидки:

// Скидки от суммы заказа (вставляем суммы и скидки)                       if($cart->total_price>5000)//если сумма заказа больше 1000 рублей                       $cart->discount = 10;//скидка 10%                       if($cart->total_price>10000)//скидка 15%                       $cart->discount = 15;


вот пример на сайте уже отправленного заказа:

http://simplacms.16mb.com/order/ba937542732dd94dd641da20b3708ef9

должно отображать 15% скидки и сумма с учётом скидки

добавьте товар в корзину и измените количество от 1-3 шт. товара, скидка будет меняться
http://simplacms.16mb.com/products/nokia_c203
Link to post
Share on other sites

ну так у вас цену со скидкой считает только в корзине , далее вы переходите в order там тоже надо посчитать со скидкой чтобы нужную сумму требовать к оплате

Link to post
Share on other sites
  • 2 weeks later...
  • 2 months later...

Скидка на товар в зависимости от суммы покупки.

Итого к оплате         {if $cart->total_price>19999.99}        	{$cart->total_price*0.9}	{elseif $cart->total_price>14999.99}        	{$cart->total_price*0.91}	{elseif $cart->total_price>9999.99}        	{$cart->total_price*0.93}	{elseif $cart->total_price>7999.99}        	{$cart->total_price*0.95}	{elseif $cart->total_price>4999.99}        	{$cart->total_price*0.97}        {else}        	{$cart->total_price}	{/if}	 {$currency->sign}

Какая скидка от какой суммы думаю разобрались
Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...