Перейти к содержанию
dim565

[Решено] Только один товар в корзине

Рекомендуемые сообщения

Здравствуйте. Необходимо, чтобы если кто добавлял товар в корзину, но при этом в корзине уже был другой товар (добавленный ранее и не удаленный) - новый товар не добавлялся в список, а заменял старый. Возможно ли такое сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

да, такое сделать можно.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

:) ок, задам вопрос по другому: как это сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема решена. Благодарю Qphoria с официального форума OpenCart

1. EDIT: system/library/cart.php

2. FIND:

if (!$options) {
3. BEFORE, ADD:

$this->clear();

Все работает отлично, прямо так, как я и хотел!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В этом случае получаем "нюанс" - при "покупке из каталога или модуля" больше одной единицы товара не купить.

Лучше сделайте так:

system/library/cart.php
в функции

public function add($product_id, $qty = 1, $options = array()) {
поменяйте блок

if ((int)$qty && ((int)$qty > 0)) {
			if (!isset($this->session->data['cart'][$key])) {
				$this->session->data['cart'][$key] = (int)$qty;
			} else {
				$this->session->data['cart'][$key] += (int)$qty;
			}
		}
на

if ((int)$qty && ((int)$qty > 0)) {
			if (!isset($this->session->data['cart'][$key])) {
				/* clear cart v1 - start */
				unset($this->session->data['cart']);
				/* clear cart v1 - end */
				
				$this->session->data['cart'][$key] = (int)$qty;
			} else {
				/* clear cart v2 - start */
				$w_qty = $this->session->data['cart'][$key];
				unset($this->session->data['cart']);
				/* clear cart v2 - end */
				
				$this->session->data['cart'][$key] = (int)($qty + $w_qty);
			}
		}
тогда при добавлении такого же товара, его кол-во в корзине будет увеличиваться. Изменено пользователем afwollis
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Действительно не заметил, что кол-во товара не изменяется при добавлении такого же.

Спасибо за новый вариант!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.