trainracing Posted July 22, 2015 Report Share Posted July 22, 2015 (edited) Долго и упорно думал как сделать одну вещь, и наконец то сделал.Уверен что сразу сделает платный аналог kors, т.к. вещь очень полезна многим. Суть - мод показывает сколько осталось до бесплатной доставки .Модуль показывает сообщение только если положили товар например больше 45тыс руб но меньше 60,а после 60тыс выводится "доставка бесплатно" рассчет остатка на ajax, без перезагрузки. выложу полный дефолт, без стилей, для стандартного шаблона в файле cart_informer.tpl заменить все на : {* Информер корзины *} {if $cart->total_products>0} В <a href="./cart/">корзине</a> {$cart->total_products} {$cart->total_products|plural:'товар':'товаров':'товара'} на {$cart->total_price|convert} {$currency->sign|escape} {if ($cart->total_price > 45000) and ($cart->total_price < 60000)} <div style="margin: 6px 0px 6px;"> До бесплатной доставки осталось <b> {(60000-{$cart->total_price})} {$currency->sign} </b> </div> {else} {if $cart->total_price > 60000} <div style="margin: 6px 0px 6px;"><b> Доставка бесплатно!</b></div>{/if} {/if} {else} Корзина пуста {/if} 45000 - сумма от которой выводим блок60000 - сумма от которой доставка бесплатна пример - clim-shop.ru Edited July 22, 2015 by trainracing Quote Link to post Share on other sites
mishanya Posted July 22, 2015 Report Share Posted July 22, 2015 лучше брать сумму из настроек откуда-то. потому что придется в друх местах менять это все. в коде и в настройках доставки для корзины Quote Link to post Share on other sites
trainracing Posted July 22, 2015 Author Report Share Posted July 22, 2015 (edited) лучше брать сумму из настроек откуда-то. потому что придется в друх местах менять это все. в коде и в настройках доставки для корзины Ну проще в cart.tpl примерно 111 строка добавить {if ($cart->total_price > 45000) and ($cart->total_price < 60000)} <div style="margin: 6px 0px 6px;"> До бесплатной доставки осталось <b> {(60000-{$cart->total_price})} {$currency->sign} </b> </div> {else} {if $cart->total_price > 60000} <div style="margin: 6px 0px 6px;"><b> Доставка бесплатно!</b></div>{/if} {/if} Если знаешь что получше - дай идею Edited July 22, 2015 by trainracing Quote Link to post Share on other sites
mishanya Posted July 22, 2015 Report Share Posted July 22, 2015 Ну проще в cart.tpl примерно 111 строка добавить {if ($cart->total_price > 45000) and ($cart->total_price < 60000)} <div style="margin: 6px 0px 6px;"> До бесплатной доставки осталось <b> {(60000-{$cart->total_price})} {$currency->sign} </b> </div> {else} {if $cart->total_price > 60000} <div style="margin: 6px 0px 6px;"><b> Доставка бесплатно!</b></div>{/if} {/if} Если знаешь что получше - дай идею я о том что виды доставки настраиваются в админке. и что делать если у доставки 1 и доставки 2 разные цены и разные пороги до бесплатной доставки? и сами числа лучше брать переменными из настроек, например $settings->delivery_free и тд. ваш хак подойдет если доставка одна (тогда можно цену до бесплатной доставки брать прямо из этой доставки), либо если у всех доставок одна цена, после которой доставка бесплатна Quote Link to post Share on other sites
Kors Posted July 22, 2015 Report Share Posted July 22, 2015 Долго и упорно думал как сделать одну вещь, и наконец то сделал.Уверен что сразу сделает платный аналог kors, т.к. вещь очень полезна многим.В таком виде вещь не слишком полезна."Вещь" Ваша - примерно как красивый, но пустой фантик, без конфетки. Вы ведь изменили только информер. А надо ведь менять и реальный расчет цены. И тут возникают уже разные вопросы и ограничения, про которые Вам говорил mishanya. К его замечаниям добавлю еще: а если покупатель планирует самовывоз - для чего ему все это? Сбить его с толку, чтоб засомневался и ушел к конкурирующему магазину? В целом - изобретаете велосипед даже не кривой, а нерабочий. Kors-у было бы стыдно делать аналог такому... Он, если возьмется, как минимум ПРОДУМАЕТ сначала хотя бы простейшие моменты. И уж сделает без кучи ляпов, бросающихся в глаза. А если какой недостаток выплывет, то нашедшего поблагодарит и быстренько исправит... Quote Link to post Share on other sites
dimon1974 Posted July 22, 2015 Report Share Posted July 22, 2015 (edited) {if $cart->total_price < $delivery->free_from && $delivery->price>0}({$delivery->price|convert} {$currency->sign})не хватает{($delivery->free_from - $cart->total_price)|convert} {$currency->sign} чтобы доставка стала бесплатной{elseif $cart->total_price >= $delivery->free_from} Edited July 22, 2015 by dimon1974 Quote Link to post Share on other sites
mishanya Posted July 22, 2015 Report Share Posted July 22, 2015 {if $cart->total_price < $delivery->free_from && $delivery->price>0}({$delivery->price|convert} {$currency->sign}) не хватает{($delivery->free_from - $cart->total_price)|convert} {$currency->sign} чтобы доставка стала бесплатной {elseif $cart->total_price >= $delivery->free_from} дело в том что у автора вообще не учитывается стоимость доставки, той которая задается в админке, о чем я и писал выше. 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.