Перейти к содержанию
Официальный форум поддержки Simpla

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


Рекомендуемые сообщения

Искал-искал, спрашивал-спрашивал, но не нашел и не подсказали, пришлось сочинять:
Файл 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}

 

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

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

Ссылка на сообщение
Поделиться на другие сайты

Да, вполне разумное решение. Если его немного доработать, можно вывести в админку, в раздел Настройки.

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

Косяк прав, это все делается на бэкенде и настраивается без затрагивания шаблонов , вьюшек и классов в дальнейшем.

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты
  • 4 недели спустя...
  • 2 недели спустя...

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

Ссылка на сообщение
Поделиться на другие сайты
  • 1 месяц спустя...

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

Ссылка на сообщение
Поделиться на другие сайты

2 Danya: доработка система скидок - коммерческая, поэтому в паблике вылложить не могу. Кому требуется эта разработка - пишите в личку

Ссылка на сообщение
Поделиться на другие сайты

Вывод суммы со скидками у меня сложный т.к. там есть и клиентская скидка и скидка от суммы заказа и выбирается большая и еще там реальная проблема с мультивалютностью потому-что я связывал валюту с доставкой.
Вот код итога (насколько я помню, после того как поправили 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>

Но этот код мало даст, ведь все правки не в шаблоне.
Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

{$order->discount} %
Ссылка на сообщение
Поделиться на другие сайты

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

// Скидки от суммы заказа (вставляем суммы и скидки)                       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
Ссылка на сообщение
Поделиться на другие сайты

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

Ссылка на сообщение
Поделиться на другие сайты
  • 2 недели спустя...
  • 2 месяца спустя...

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

Итого к оплате         {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}

Какая скидка от какой суммы думаю разобрались
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

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

Загрузка...
×
×
  • Создать...