В InstantShope существует проблема: если в корзине выбрать кол-во товара, а потом удалить какой либо товар из корзины, либо перейти к покупкам без оформления заказа, то кол-во товара не сохраняется. Прошу рассмотреть мое решение этой проблемы и посоветовать, возможно ли это решение как-то улучшить.
Буду показывать на примере своего сайта zoo40.ru
1. Вставляем в шаблон корзины перед концом формы </form> код:
mk — будет показывать код команды, mk=0 — просто обычное оформление, 1 — это вернуться к покупкам, 2 — удаление товара
2. Присваиваем ссылкам классы:
3. Делаем код на jQuery:
т.е. через mk передаем код в форму
4. В файле frontend.php добавляем код проверки:
Посмотреть в деле вы сможете зайдя на сайт zoo40.ru, закажите каконить товар и в корзине попробуйте менять кол-во товара, а потом либо перейти к покупкам либо удалить какуюнить позицию
P.S. Если интересно, то в след. посте могу рассказать как я сделал ajax корзину для и-шопа
Буду показывать на примере своего сайта zoo40.ru
1. Вставляем в шаблон корзины перед концом формы </form> код:
<input id="mk" type="hidden" name="make" value="0" /><input id="pos" type="hidden" name="pos_id" value="0" />
2. Присваиваем ссылкам классы:
<a href="#" id="cart-back" class="btn-back">ВЕРНУТЬСЯ К ПОКУПКАМ</a> <a href="#" rel="{$item.cart_id}" class="btn-close" title="отказаться от товара">отказаться</a>
$(document).ready(function(){ $('#cart-back').click(function(){ $('#mk').val('1'),$('#cart_form').submit(); return false; }); $('.btn-close').click(function(){ var rel=$(this).attr('rel'); $('#mk').val('2'),$('#pos').val(rel),$('#cart_form').submit(); return false; }); ...
4. В файле frontend.php добавляем код проверки:
// ПРОСМОТР ЗАКАЗА // if ($do=='view_order'){ //сохраняем кол-во товаров в корзине $qty_arr = $inCore->request('qty', 'array'); $mk = $inCore->request('make', 'int', 0); //это комманда, например вернуться к покупкам if($mk==1) { //вернуться к покупкам if ($qty_arr) { $model->saveCart($qty_arr); } if($_SESSION['inshop_last_url']) $inCore->redirect($_SESSION['inshop_last_url']); else $inCore->redirect('/shop'); } if($mk==2) { //отказаться от товара if ($qty_arr) { $model->saveCart($qty_arr); } $pos_id = $inCore->request('pos_id', 'int', 0); $model->deleteFromCart($pos_id); $inCore->redirect('/shop/cart.html'); } if ($qty_arr) { ....
Посмотреть в деле вы сможете зайдя на сайт zoo40.ru, закажите каконить товар и в корзине попробуйте менять кол-во товара, а потом либо перейти к покупкам либо удалить какуюнить позицию
P.S. Если интересно, то в след. посте могу рассказать как я сделал ajax корзину для и-шопа
Реклама #
Роман 12 лет назад #
vicoder 12 лет назад #