Удаление товара из корзины на любой странице.

#
Удаление товара из корзины на любой странице.
Доброго времени суток, делаем интернет магазин, на главной есть краткая корзина в которой можно посмотреть список товаров в корзине, их стоимость и так же удалить товар из корзины. Стандартная ссылка для удаления выглядит так
<a href="?delete={shop_item/@id}" onclick="return confirm('Вы уверены, что хотите удалить?')" title="Удалить товар из корзины" alt="Удалить товар из корзины">Удалить</a>
как можно настроить ее что бы товар мог удалятся когда пользователь находится на любой странице, а не только на странице корзины. Заранее благодарен.
#
Re: Удаление товара из корзины на любой странице.
gesar93,
/shop/cart/?delete={shop_item/@id}

/shop/cart/ - у вас может быть свой путь до корзины, так что если что поменяйте

но при клике будет перебрасывать на страницу корзины, лучше сделать через ajax запрос как при добавление товара в корзину
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Удаление товара из корзины на любой странице.
Хорошо, спасибо.
#
Re: Re: Удаление товара из корзины на любой странице.
и как это через аджакс? в кнопке купить ведь стоит онклик и вызов функции аддинкарт, для удаления всех товаров из корзины надо тоже написать тогда чтоли доп функцию?
#
Re: Удаление товара из корзины на любой странице.
volgastar,
конечно
www.morozovpimnev.ru - создание, поддержка и продвижение сайтов | Наш канал https://asmp.su/channel
#
Re: Удаление товара из корзины на любой странице.
Леш, разжуешь?))
#
Re: Удаление товара из корзины на любой странице.
вот я вставил в ТДС Корзина Сайта - настройки:
// Удаление всех товаров из корзины
if (Core_Array::getGet('delete_all'))
{
   $oShop_Cart_Controller = Shop_Cart_Controller::instance();
   $oItemsInCart = $oShop_Cart_Controller->getAll($oShop);
   foreach( $oItemsInCart as $oItemInCart)
   {
         $oShop_Cart_Controller
            ->shop_item_id($oItemInCart->shop_item_id)
            ->delete();
   }
}

эта функция вызывается через
<a class="hide del-all" title="Удалить все товары из заказа" href="/shop/cart/?delete_all=1">Удалить все</a>
, т.е. банальным переходом на страницу с этим урл.
я же хочу вызвать эту функцию без перехода, оставаясь на этой же странице...
т.е. нажали кнопку и тут же аджаксом очистили корзину и далее колдуем с джикверей)))
$('.cart_button_new').live('click',function(){
$.ajax({
type: "POST",
               url: "/info.php",
               data: {fio: fio, phone: phone},
               success: function(html){

   //тут запускаю волшебную функцию, которую мне наверное разжует Леша)))               
                  
$(".zakaz-ok").html(html);
                  
               }
})
}


а пока пришлось вставлять
location.href = "/shop/cart/?delete_all=1";
- но идет переход на новую для джиквери страницу и все остальные данные из запроса теряю (((
#
Re: Удаление товара из корзины на любой странице.
Тоже актуален похожий вопрос, только как очистить краткую корзину без перезагрузки страницы.
Добавил в ТДС код удаления товаров, сделал в краткой корзине форму
<form action="" method="" class="clear-cart" style="display: inline;">
            <input value="Очистить" type="submit" class="button del-all" />
            </form>   

И написал обработчик Ajax запроса
$('.clear-cart').submit(function(e){
    e.preventDefault();
    $.ajax({
      url: "/shop/cart/",
      type: "GET",
      data: {deleteAll:["1"]},
      success: function(response) {
        //обработка успешной отправки
      },
      error: function(response) {
        //обработка ошибок при отправке
     }
    });
});

Товары удаляются, но как сделать пересчет товаров в краткой корзине, так как в ней изменения происходят только после перезагрузки страницы
#
Re: Удаление товара из корзины на любой странице.
в настройках тдс корзины есть код пересчёта товаров:
if (Core_Array::getPost('recount') || Core_Array::getPost('step') == 1)
{
   $oShop_Cart_Controller = Shop_Cart_Controller::instance();
   $aCart = $oShop_Cart_Controller->getAll($oShop);

   // Склад по умолчанию
   $oShop_Warehouse = $oShop->Shop_Warehouses->getDefault();

   foreach ($aCart as $oShop_Cart)
   {
      $quantity = Core_Array::getPost('quantity_' . $oShop_Cart->shop_item_id);

      // Количество было передано
      if (!is_null($quantity))
      {
         $oShop_Cart_Controller
            ->clear()
            ->checkStock($bCheckStock)
            ->shop_item_id($oShop_Cart->shop_item_id)
            ->quantity($quantity)
            ->postpone(is_null(Core_Array::getPost('postpone_' . $oShop_Cart->shop_item_id)) ? 0 : 1)
            ->shop_warehouse_id(
               Core_Array::getPost('warehouse_' . $oShop_Cart->shop_item_id, !is_null($oShop_Warehouse) ? $oShop_Warehouse->id : 0)
            )
            ->update();
      }
   }
}


можете к нему обращаться аяксом  или переделать под себя.
skype: mcross82
Авторизация