Ogybil Posted November 6, 2012 Report Share Posted November 6, 2012 Искал-искал, спрашивал-спрашивал, но не нашел и не подсказали, пришлось сочинять:Файл 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} Вроде работает, корзина считает.Может кто посмотрит и доточит, может кому-то пригодится. Quote Link to post Share on other sites
Kosjak76 Posted November 6, 2012 Report Share Posted November 6, 2012 Да, вполне разумное решение. Если его немного доработать, можно вывести в админку, в раздел Настройки. Quote Link to post Share on other sites
Mariik Posted November 6, 2012 Report Share Posted November 6, 2012 Идея приятная, но реализация топорная. А ели надо будет изменить сумму, от которой идет скидка? каждый раз будете код править? Как минимум надо реализовать хранение в базе и настройку через админку. Если будет интересно, могу показать как это реализовать. Quote Link to post Share on other sites
Ogybil Posted November 6, 2012 Author Report Share Posted November 6, 2012 Давайте, как это встроить в админку, очень интересно!!! Quote Link to post Share on other sites
Ogybil Posted November 6, 2012 Author Report Share Posted November 6, 2012 Система скидок одно из слабых мест Симплы и если она будет реализована минимально, система будет веселее Quote Link to post Share on other sites
HotHeadMan Posted November 7, 2012 Report Share Posted November 7, 2012 Ogybil, ты гений! Спасибо за труд — очень полезное дополнение. Quote Link to post Share on other sites
AndryFroggy Posted November 7, 2012 Report Share Posted November 7, 2012 Косяк прав, это все делается на бэкенде и настраивается без затрагивания шаблонов , вьюшек и классов в дальнейшем. Quote Link to post Share on other sites
Ogybil Posted November 7, 2012 Author Report Share Posted November 7, 2012 Так никто и не спорит, только и помогать желающих нет 6( Quote Link to post Share on other sites
Kasha Posted November 7, 2012 Report Share Posted November 7, 2012 а я реализовывал это через группы, при заказе - добавление суммы заказа к пользователю, и от того на сколько заказал меняется группа, а в группах уже пределы "от" "до" стоят, и всё красиво работает Quote Link to post Share on other sites
Ogybil Posted November 7, 2012 Author Report Share Posted November 7, 2012 Решение хорошее, выложи для общества Quote Link to post Share on other sites
Kasha Posted November 8, 2012 Report Share Posted November 8, 2012 Решение работает только в том случае если пользователи автоматически регистрируются при покупке, а это отдельное дополнение...Если будет хорошее настроение может и выложу, а пока только за денюжку Quote Link to post Share on other sites
HotHeadMan Posted November 8, 2012 Report Share Posted November 8, 2012 sheeft, какая цена при плохом настроении?) Quote Link to post Share on other sites
gunner Posted November 30, 2012 Report Share Posted November 30, 2012 А как вывести сумму ДО скидки еще?подозреваю, что надо подправить тут, но что и как...{$cart->total_price|convert} {$currency->sign} Quote Link to post Share on other sites
gunner Posted December 10, 2012 Report Share Posted December 10, 2012 никто не подскажет? Quote Link to post Share on other sites
Ogybil Posted December 11, 2012 Author Report Share Posted December 11, 2012 Скорее всего надо:или приплюсовывать то что отняли, или вводить какую-нибудь cart->total_price1, которая будет отвечать только за это, наверное второе проще. Quote Link to post Share on other sites
RodgerFox Posted January 17, 2013 Report Share Posted January 17, 2013 А вы могли бы мне объяснить как встроить в админку что либо? я пытался понять, но это нереал для меня. я бы выложил парочку интересных решений. Сейчас они как бы работают с системой, хранятся, инициализируются, но нету графической настройки в админ панели их. Quote Link to post Share on other sites
Danya Posted January 19, 2013 Report Share Posted January 19, 2013 SimplaDevподскажите пожалуйста, реализацию в админке? Quote Link to post Share on other sites
SimplaDev Posted January 19, 2013 Report Share Posted January 19, 2013 2 Danya: доработка система скидок - коммерческая, поэтому в паблике вылложить не могу. Кому требуется эта разработка - пишите в личку Quote Link to post Share on other sites
Danya Posted January 19, 2013 Report Share Posted January 19, 2013 Ogybil А вывод суммы со скидками как выводили в оформленном заказе? Quote Link to post Share on other sites
Ogybil Posted January 19, 2013 Author Report Share Posted January 19, 2013 Вывод суммы со скидками у меня сложный т.к. там есть и клиентская скидка и скидка от суммы заказа и выбирается большая и еще там реальная проблема с мультивалютностью потому-что я связывал валюту с доставкой.Вот код итога (насколько я помню, после того как поправили 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> Но этот код мало даст, ведь все правки не в шаблоне. Quote Link to post Share on other sites
Danya Posted January 20, 2013 Report Share Posted January 20, 2013 когда человек отправляет заказ уже со скидкой от суммы, его перекидывает на страницу выбора оплаты, вот на этой странице отображается та скидка, которая установленна в группе "персональная скидка", а не скидка от суммы заказа. так же нужно вывести скидку в заказе в админке и в письмо отправляемое клиенту и админу.файлы темы: order.tpl, email_order.tplфайлы темы админки: order.tpl, email_order_admin.tplк примеру в файле order.tpl темы скидка отображается так: {$order->discount} % Quote Link to post Share on other sites
Danya Posted January 20, 2013 Report Share Posted January 20, 2013 в файле установил такие скидки:// Скидки от суммы заказа (вставляем суммы и скидки) 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 Quote Link to post Share on other sites
delprofile Posted January 20, 2013 Report Share Posted January 20, 2013 ну так у вас цену со скидкой считает только в корзине , далее вы переходите в order там тоже надо посчитать со скидкой чтобы нужную сумму требовать к оплате Quote Link to post Share on other sites
Danya Posted January 29, 2013 Report Share Posted January 29, 2013 ребята, помогите пожалуйста добавить код в файл api/orders.php Quote Link to post Share on other sites
Kulibbin Posted April 3, 2013 Report Share Posted April 3, 2013 Скидка на товар в зависимости от суммы покупки.Итого к оплате {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}Какая скидка от какой суммы думаю разобрались Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.