Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Изменение количества товара в корзине со страницы категории


Recommended Posts

Друзья, прошу помочь. Пишу возможность изменять количество товара в корзине кнопками + и - со страницы категории. Делаю
 

Контроллер checkout/cart

public function minus() {
    $this->load->language('checkout/cart');

    $json = array();

    if (isset($this->request->post['key'])) {
    $this->cart->minus_product_quantity($this->request->post['key'],1);

    unset($this->session->data['vouchers'][$this->request->post['key']]);   
 $json['total'] = sprintf($this->language->get('text_items'), $this->cart->countProducts() + (isset($this->session->data['vouchers']) ? count($this->session->data['vouchers']) : 0), $this->currency->format($total, $this->session->data['currency']));
            $json['countProducts'] = sprintf($this->cart->countProducts());
            $this->response->redirect($this->url->link('checkout/cart'));    
   }

        $this->response->addHeader('Content-Type: application/json');
        $this->response->setOutput(json_encode($json));
}

 

В файле library/cart

-------

public function minus_product_quantity($product_id, $qty = 1){
$data = array();
$product['product_id'] = (int)$product_id;
$key = base64_encode(serialize($product));

if ((int)$qty && ((int)$qty > 0)) {
if ($this->session->data['cart'][$key]>1) {
$this->session->data['cart'][$key] -= (int)$qty;
} else {
$this->remove($key);
}
}

 

В tpl категории:

<a onclick="addTocart('<?php echo $product['product_id']; ?>');" class="add-basket product__add-basket"><svg class="icon"><use xlink:href="#cart-plus"></use></svg></a>
<a onclick="minus('<?php echo $product['product_id']; ?>');" class="add-basket product__add-basket"><svg class="icon"><use xlink:href="#cart-minus"></use></svg></a>  

 

Скрипт:

function minus(key) {
$.ajax({
url: 'index.php?route=checkout/cart/minus',
type: 'post',
data: 'key=' + key,
dataType: 'json',
beforeSend: function() {
$('#cart > button').button('loading');
},
complete: function() {
$('#cart > button').button('reset');
},
success: function(json) {
$('#cart-total').html(json['countProducts']);
$('#cart-total').html('<span>' + json['total'] + '</span>');                  
$('.slide-cart').load('index.php?route=extension/module/popupcart .slide-cart > *');

if (getURLVar('route') == 'checkout/cart' || getURLVar('route') == 'checkout/checkout') {
location = 'index.php?route=checkout/cart';
} else {
$('#cart > ul').load('index.php?route=common/cart/info span');
}
}
});
}  

 

 

Добавление товара работает стандартным методом add, а вот уменьшение количества товара в корзине никак не хочет работать. В консоли XHR запрос /index.php?route=checkout/cart/minus возвращает 302 статус - не могу понять по какой причине.

 

Прошу помощи, ибо уже не знаю в какую сторону копать. Подозреваю, что в контроллере корзины наваял кривенько.

 

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку
×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.