Jump to content
Sign in to follow this  
zrishat

Удалить товар из корзины и ссылка на сам товар

Recommended Posts

<?php
$products = $this->cart->getProducts();
print_r ($products);
?>
В футере делаю вывод товаров, которые в корзине. Но тут нет $product['href']; и $product['remove'];

Array
(
[65:YToxOntpOjIyNztzOjI6IjE3Ijt9] => Array
(
[key] => 65:YToxOntpOjIyNztzOjI6IjE3Ijt9
[product_id] => 65
[name] => Товар 1
[model] => 0000001
[shipping] => 1
[image] => data/goods_test/blaiz2.png
[option] => Array
(
[0] => Array
(
[product_option_id] => 227
[product_option_value_id] => 17
[option_id] => 13
[option_value_id] => 49
[name] => Размер
[option_value] => 40
[type] => select
[quantity] => 0
[subtract] => 0
[price] => 0.0000
[price_prefix] => +
[points] => 0
[points_prefix] => +
[weight] => 0.00000000
[weight_prefix] => +
)

)

[download] => Array
(
)

[quantity] => 1
[minimum] => 1
[subtract] => 1
[stock] => 1
[price] => 500
[total] => 500
[reward] => 0
[points] => 0
[tax_class_id] => 0
[weight] => 0
[weight_class_id] => 1
[length] => 0.00000000
[width] => 0.00000000
[height] => 0.00000000
[length_class_id] => 1
)

[66:YToxOntpOjIyODtzOjI6IjE4Ijt9] => Array
(
[key] => 66:YToxOntpOjIyODtzOjI6IjE4Ijt9
[product_id] => 66
[name] => Товар 2
[model] => 0000002
[shipping] => 1
[image] => data/goods_test/dress4.png
[option] => Array
(
[0] => Array
(
[product_option_id] => 228
[product_option_value_id] => 18
[option_id] => 13
[option_value_id] => 50
[name] => Размер
[option_value] => 42
[type] => select
[quantity] => 0
[subtract] => 0
[price] => 0.0000
[price_prefix] => +
[points] => 0
[points_prefix] => +
[weight] => 0.00000000
[weight_prefix] => +
)

)

[download] => Array
(
)

[quantity] => 1
[minimum] => 1
[subtract] => 0
[stock] => 1
[price] => 600
[total] => 600
[reward] => 0
[points] => 0
[tax_class_id] => 0
[weight] => 0
[weight_class_id] => 1
[length] => 0.00000000
[width] => 0.00000000
[height] => 0.00000000
[length_class_id] => 1
)

)


Подскажите куда копать?

Share this post


Link to post
Share on other sites

$product['href'] можете прописать под:


'href'     => $this->url->link('product/product', 'product_id=' . $product['product_id'])

а вот функция javascript для удаления по онклику:

function removeCart(key) {
	$.ajax({
		url: 'index.php?route=checkout/cart',
		type: 'get',
		data: 'remove=' + key,
		dataType: 'html',
		success: function(json) {
		
		window.location='index.php?route=checkout/cart';// или Ваша страница для перезагрузки			
		}
	});
}

то есть вешаете какой то рисунок\кнопку\ссылку на событие: 

<a onclick="removeCart('<?php echo $product['key']; ?>');" >

Ну и про всяк случай, гляньте, есть ли по адресу контроллера checkout/cart : код обработки:

if (isset($this->request->get['remove'])) {
	$this->cart->remove($this->request->get['remove']);

Share this post


Link to post
Share on other sites

Спасибо огромное! Отлично, все супер! Код обработки глянул, начинаю понимать что откуда берется.

 

Когда выполняю удаление товара, можно ли в ajax в success вызвать как-то $this->cart->update для обновления корзины, чтобы не перезагружать страницу? Или это идет от контроллера checkout/cart и нифига не сработает, т.к. там вконце самом ридирект.

// Update
if (!empty($this->request->post['quantity'])) {
	foreach ($this->request->post['quantity'] as $key => $value) {
		$this->cart->update($key, $value);
	}
	
	unset($this->session->data['shipping_method']);
	unset($this->session->data['shipping_methods']);
	unset($this->session->data['payment_method']);
	unset($this->session->data['payment_methods']); 
	unset($this->session->data['reward']);
	
	$this->redirect($this->url->link('checkout/cart'));  			
}

Share this post


Link to post
Share on other sites

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

Если вы например хотите, что бы просто в "шапке" миникорзины тотал_айтемс менялось, то вместо редиректа поставьте такой код:

$('#cart-total').html(json['total']);

ну и дальше уже зависит от фантазии...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Similar Content

    • By matroskin92
      Простое решение для реального упрощения оформления заказа, с настройкой которого разберется любой чайник. Модуль разделен на блоки, содержание (поля, методы) которых можно настроить индивидуально (например, для каждой группы доставки указать свои поля, а для самовывоза и вовсе их отключить). 
      При разработке модуля был использован опыт и требования к оформлению заказа интернет-магазинов с высокой конверсией продаж.
       
      ДЕМО
      Opencart / ocStore 2.3
      Opencart / ocStore 3.0
       
      Логин: demo
      Пароль: demo
       
      УСТАНОВКА
      Установите модуль через стандартный установщик Перейдите к настройкам модуля "Оформление заказа Custom" Осуществите первичную настройку модуля Обновите кэш модификаторов (Встроенный модификатор осуществляет переадресацию со стандартных страниц корзины и оформления заказа на настраиваемую.)  
      ЧТО ВНУТРИ
      Модуль имеет 8 основных блоков на одной странице
      Оформить как - (с регистрацией, без регистрации и авторизация) Корзина (с набором колонок, необходимых для отображения на странице) Личные данные (настройка полей для каждой группы пользователей) Доставка (поля, с отметкой для каких методов осуществлять отображение) Оплата (методы и группы пользователей для отображения) Поле комментария Модуле (таких как подарочные сертификаты, купоны) Итоговая таблица   
      Данное решение удовлетворит большинство магазинов, которым необходимо простое и быстрое оформление заказа, но нет желания устанавливать сложные модули. 
       
      ИЗМЕНЕНИЕ ОФОРМЛЕНИЯ
      Вы можете самостоятельно изменить оформление и изменить расположение блоков на свое усмотрение. Для сохранения работоспособности модуля сохраняйте уникальные идентификаторы (id) и названия полей и методов (name). В планах добавить в модуль различные темы оформления для быстрого старта.
       
      ПОДДЕРЖКА
      Поддержка осуществляется преимущественно в личных сообщениях, а так же по электронной почте support@matro.site
       
      Простая корзина, упрощенная корзина, custom checkout
       
      Внимание, описание выше соответствует модулю версии 2.0. Если Вы покупали модуль ранее - Вы можете бесплатно обновиться до актуальной версии.
    • By matroskin92
      300.00 руб
      Скачать/Купить дополнение


      Простое оформление заказа
      Простое решение для реального упрощения оформления заказа, с настройкой которого разберется любой чайник. Модуль разделен на блоки, содержание (поля, методы) которых можно настроить индивидуально (например, для каждой группы доставки указать свои поля, а для самовывоза и вовсе их отключить). 
      При разработке модуля был использован опыт и требования к оформлению заказа интернет-магазинов с высокой конверсией продаж.
       
      ДЕМО
      Opencart / ocStore 2.3
      Opencart / ocStore 3.0
       
      Логин: demo
      Пароль: demo
       
      УСТАНОВКА
      Установите модуль через стандартный установщик Перейдите к настройкам модуля "Оформление заказа Custom" Осуществите первичную настройку модуля Обновите кэш модификаторов (Встроенный модификатор осуществляет переадресацию со стандартных страниц корзины и оформления заказа на настраиваемую.)  
      ЧТО ВНУТРИ
      Модуль имеет 8 основных блоков на одной странице
      Оформить как - (с регистрацией, без регистрации и авторизация) Корзина (с набором колонок, необходимых для отображения на странице) Личные данные (настройка полей для каждой группы пользователей) Доставка (поля, с отметкой для каких методов осуществлять отображение) Оплата (методы и группы пользователей для отображения) Поле комментария Модуле (таких как подарочные сертификаты, купоны) Итоговая таблица   
      Данное решение удовлетворит большинство магазинов, которым необходимо простое и быстрое оформление заказа, но нет желания устанавливать сложные модули. 
       
      ИЗМЕНЕНИЕ ОФОРМЛЕНИЯ
      Вы можете самостоятельно изменить оформление и изменить расположение блоков на свое усмотрение. Для сохранения работоспособности модуля сохраняйте уникальные идентификаторы (id) и названия полей и методов (name). В планах добавить в модуль различные темы оформления для быстрого старта.
       
      ПОДДЕРЖКА
      Поддержка осуществляется преимущественно в личных сообщениях, а так же по электронной почте support@matro.site
       
      Простая корзина, упрощенная корзина, custom checkout
       
      Внимание, описание выше соответствует модулю версии 2.0. Если Вы покупали модуль ранее - Вы можете бесплатно обновиться до актуальной версии.
      Добавил matroskin92 Добавлено 22.01.2019 Категория Покупки, оформление заказа, корзина Системные требования Сайт разработчика https://matrosite.ru/ Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3 ocStore 3.0
      2.3 OpenCart.Pro, ocShop Обращение к серверу разработчика Нет  
    • By l1key
      Всем привет, кто что подскажет нужно - добавить поле для добавления отдельного комментария непосредственно в корзине 
      как пример - кольца - клиент должен указать для кольца необходимые размеры .
      для осstore-2.3  
       
    • By kJlukOo
      в опенкарте есть метод getProducts библиотеки cart.php
      этот метод вовзращает содержимое корзины для текущего пользователя
      на боевом магазине обычно этот метод вызывается 50+ раз
      соответственно происходит избыточная нагрузка на бд и на сайт в целом
      этот модуль кэширует возвращаемые данные до изменения корзины. те вместо 50+ раз метод отработает 1 раз,
      закэширует данные и одаст следующим 49+ 
      кэш хранится в сессии на стороне сервера(очевидно)
      данное кеширование используется в моем модуле
       
    • By kJlukOo
      300.00 руб
      Скачать/Купить дополнение


      CART CACHE - кэшируем корзину (cart.php => getProducts)
      в опенкарте есть метод getProducts библиотеки cart.php
      этот метод вовзращает содержимое корзины для текущего пользователя
      на боевом магазине обычно этот метод вызывается 50+ раз
      соответственно происходит избыточная нагрузка на бд и на сайт в целом
      этот модуль кэширует возвращаемые данные до изменения корзины. те вместо 50+ раз метод отработает 1 раз,
      закэширует данные и одаст следующим 49+ 
      кэш хранится в сессии на стороне сервера(очевидно)
      данное кеширование используется в моем модуле
       
      Добавил kJlukOo Добавлено 25.08.2018 Категория Модули Системные требования Сайт разработчика https://awaro.ru Старая цена Метод активации Без активации Ioncube Loader Нет OpenCart 3.0
      2.3
      2.2
      2.1
      2.0 ocStore 3.0
      2.3
      2.2
      2.1 OpenCart.Pro, ocShop Opencart.pro 2.3
      Opencart.pro 2.1
      OcShop 2.0.3.х Обращение к серверу разработчика  
  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.