Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

Количество товаров в корзине = 1


 Share

Recommended Posts

Как сделать чтобы количество товаров в корзине было равно 1,2,3 и т д. 

Пример: Человек добавил 50 штук товара в корзину, а в значке корзины чтобы показывало 1 товар, добавил еще какой нибудь товар с количеством 150, в корзине показывает 2 товара)

Link to comment
Share on other sites


4 минуты назад, bobokhon1998 сказал:

Как сделать чтобы количество товаров в корзине было равно 1,2,3 и т д. 

Пример: Человек добавил 50 штук товара в корзину, а в значке корзины чтобы показывало 1 товар, добавил еще какой нибудь товар с количеством 150, в корзине показывает 2 товара)

опции

Link to comment
Share on other sites


1 час назад, bobokhon1998 сказал:

Как сделать чтобы количество товаров в корзине было равно 1,2,3 и т д. 

Пример: Человек добавил 50 штук товара в корзину, а в значке корзины чтобы показывало 1 товар, добавил еще какой нибудь товар с количеством 150, в корзине показывает 2 товара)

system/library/cart/cart.php

countProducts()

Link to comment
Share on other sites


16 часов назад, AUSS сказал:

system/library/cart/cart.php

countProducts()

Нашел строчку, т.к в php не силен, не очень понял что изменить или добавить

 

Забыл написать, версия ocStore 2.3.0.2.3

Edited by bobokhon1998
Link to comment
Share on other sites


21 минуту назад, bobokhon1998 сказал:

Нашел строчку, т.к в php не силен, не очень понял что изменить или добавить

 

Забыл написать, версия ocStore 2.3.0.2.3

тут идет подсчет корзины

дальше я помочь не могу - если есть готовые решения я готов поделиться, если нет - не готов кому то оказывать бесплатные услуги разработки (без обид)

в раздел услуг

Link to comment
Share on other sites


5 часов назад, bobokhon1998 сказал:

Что опции ?

 

опциями решается данная задача без допилов кода. хотя возможно я не до конца понял что именно вы хотите заморочить- на зачем показывать в корзине вместо реального колва товара -1 или 2? какая логика должна быть в том что одного товара 50 штук- и это 1 товар. а другого 150 штук и это 1 товар ? :))

Link to comment
Share on other sites


В 19.02.2020 в 17:44, AUSS сказал:

тут идет подсчет корзины

дальше я помочь не могу - если есть готовые решения я готов поделиться, если нет - не готов кому то оказывать бесплатные услуги разработки (без обид)

в раздел услуг

Интересный вы человек, какая обида ?))) Я уважаю и ценю чужой труд, напишу вам в личку )

Link to comment
Share on other sites


В 19.02.2020 в 22:27, Dimasscus сказал:

опциями решается данная задача без допилов кода. хотя возможно я не до конца понял что именно вы хотите заморочить- на зачем показывать в корзине вместо реального колва товара -1 или 2? какая логика должна быть в том что одного товара 50 штук- и это 1 товар. а другого 150 штук и это 1 товар ? :))

Продажа цифровых товаров :)

Link to comment
Share on other sites


2 минуты назад, bobokhon1998 сказал:

Продажа цифровых товаров :)

и? для этого и есть опции. зачем ломать корзину? есть ощущение что вы не совсем понимаете процесс

 

Link to comment
Share on other sites


8 минут назад, Dimasscus сказал:

и? для этого и есть опции. зачем ломать корзину? есть ощущение что вы не совсем понимаете процесс

 

Нет)) Если использовать опцию для выбора кол-ва товара, то при измении количества цена не будет менятся (

Edited by bobokhon1998
Link to comment
Share on other sites


3 часа назад, bobokhon1998 сказал:

Нет)) Если использовать опцию для выбора кол-ва товара, то при измении количества цена не будет менятся (

с чего такая уверенность. опции позволяют прибавлять к цене а также отнимать или оставлять цену без изменений. также при выборе опций(если опция что то добавляет или уменьшает цену) можно подключить автоматический пересчет цены на лету

Link to comment
Share on other sites


17 часов назад, Dimasscus сказал:

с чего такая уверенность. опции позволяют прибавлять к цене а также отнимать или оставлять цену без изменений. также при выборе опций(если опция что то добавляет или уменьшает цену) можно подключить автоматический пересчет цены на лету

Да, знаю такое дополнение) Но смотрите, у меня человек вводит кол-во сам, и цена не обновится сразу, если делать опциями

Link to comment
Share on other sites


8 минут назад, bobokhon1998 сказал:

Да, знаю такое дополнение) Но смотрите, у меня человек вводит кол-во сам, и цена не обновится сразу, если делать опциями

в модуле указано "(вкл / выкл) Умножение цены на введённое количество товара"

что не так?

Link to comment
Share on other sites


6 минут назад, Dimasscus сказал:

в модуле указано "(вкл / выкл) Умножение цены на введённое количество товара"

что не так?

Значит я смотрел другой модуль, иду искать) 

Link to comment
Share on other sites


В 18.02.2020 в 18:54, bobokhon1998 сказал:

Как сделать чтобы количество товаров в корзине было равно 1,2,3 и т д. 

Пример: Человек добавил 50 штук товара в корзину, а в значке корзины чтобы показывало 1 товар, добавил еще какой нибудь товар с количеством 150, в корзине показывает 2 товара)

В файле catalog/controller/checkout/cart.php

Найти строку:

$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']));

И в ней это:

$this->cart->countProducts()

заменить на это:

count($this->cart->getProducts())

 

 

И в файле catalog/controller/checkout/cart.php тоже все вхождения

$this->cart->countProducts()

Заменить на 

count($this->cart->getProducts())

 

Сразу предупрежу:

1) Будут добавлены лишние переборы товаров из корзины getProducts(). Этого можно избежать, но решение уже не будет таким простым и описать его уже гораздо сложнее.

2) Если где-то есть кастомный функционал корзины, то он так же не заработает.

 

Вариант номер два:

В файле system/library/cart/cart.php

Находим функцию:

	public function countProducts() {
		$query = $this->db->query("SELECT SUM(quantity) as total FROM " . DB_PREFIX . "cart WHERE api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'");
		return $query->row['total'];
	}

И в ней это:

SUM(quantity) as total

Заменяем на это:

COUNT(*) as total

Эта правка проще, но могут возникнуть проблемы с другими модулями. Например платёжными или скидочными.

 

Тут уже выбирайте сами.

  • +1 1
Link to comment
Share on other sites

В 22.02.2020 в 22:29, mpn2005 сказал:

В файле catalog/controller/checkout/cart.php

Найти строку:


$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']));

И в ней это:


$this->cart->countProducts()

заменить на это:


count($this->cart->getProducts())

 

 

И в файле catalog/controller/checkout/cart.php тоже все вхождения


$this->cart->countProducts()

Заменить на 


count($this->cart->getProducts())

 

Сразу предупрежу:

1) Будут добавлены лишние переборы товаров из корзины getProducts(). Этого можно избежать, но решение уже не будет таким простым и описать его уже гораздо сложнее.

2) Если где-то есть кастомный функционал корзины, то он так же не заработает.

 

Вариант номер два:

В файле system/library/cart/cart.php

Находим функцию:


	public function countProducts() {
		$query = $this->db->query("SELECT SUM(quantity) as total FROM " . DB_PREFIX . "cart WHERE api_id = '" . (isset($this->session->data['api_id']) ? (int)$this->session->data['api_id'] : 0) . "' AND customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'");
		return $query->row['total'];
	}

И в ней это:


SUM(quantity) as total

Заменяем на это:


COUNT(*) as total

Эта правка проще, но могут возникнуть проблемы с другими модулями. Например платёжными или скидочными.

 

Тут уже выбирайте сами.

 

Понял, спасибо) лучше тогда с опциями да ?) Так будет безопаснее

Link to comment
Share on other sites


В 22.02.2020 в 21:27, Dimasscus сказал:

в модуле указано "(вкл / выкл) Умножение цены на введённое количество товара"

что не так?

 

Установил модуль, есть вот это "Не умножать на количество"  мою проблему она не решает... Возможно вы меня не правильно поняли? Мне нужно чтобы когда человек добавляет товар в любом количестве, товаров в корзине показывало 1, добавил еще какой-то товар или этот же в корзину, показывает 2 товара в корзине, а не введенное человеком количество

 Или же, если я вас не правильно понял, тогда скажите, какой тип опций выбрать на опцию "количество"? чтобы человек вводил любое кол-во и там чтобы можно было настроить мин и макс кол-во

Edited by bobokhon1998
Link to comment
Share on other sites


Неужели никто не ответит? Посоветуйте хотя бы модуль опций, где пользователь сам вводит кол-во и цена обновляется, и чтобы можно было указывать минимальное и максимальное количество... 

Мне чтобы именно пользователь сам вводил количество

Link to comment
Share on other sites


  • 3 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

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.