Jump to content
bmite

[Решено] Включение скидки от суммы заказа

Recommended Posts

Нужно, чтобы цена по скидке включалась НЕ от количества товаров в корзине, а от СУММЫ ЗАКАЗА в корзине.

 

Подскажите, как сделать? Я так понимаю тут собака зарыта

			foreach ($discounts as $discount) {
				$data['discounts'][] = array(
					'quantity' => $discount['quantity'],
					'price'    => $this->currency->format($this->tax->calculate($discount['price'], $product_info['tax_class_id'], $this->config->get('config_tax')))
				);
			}

 

Share this post


Link to post
Share on other sites

установить модуль нельзя что ли?
потом заказчик установит че нить и у него там фиг пойми что произойдет
или это типа  на цепи удержать клиента?

Share this post


Link to post
Share on other sites
3 minutes ago, AWARO said:

установить модуль нельзя что ли?
потом заказчик установит че нить и у него там фиг пойми что произойдет
или это типа  на цепи удержать клиента?

например какой модуль, я много перерыл и ничего подходящего не нашел.

 

 

Share this post


Link to post
Share on other sites
6 минут назад, bmite сказал:

например какой модуль, я много перерыл и ничего подходящего не нашел.

 

 

 

  • +1 1

Share this post


Link to post
Share on other sites
1 minute ago, Einshtein said:

 

я видел этот модуль, нужный функционал в нем отсутствует, если я не прав ткните носом.

к тому же, для этой небольшой функции он дороговато стоит.

Ну и я ищу не модуль, а решение в виде небольшой правки в исходнике, либо небольшую подсказку.

Share this post


Link to post
Share on other sites

в модуле вроде есть этот  функционал (уточните у Awaro) и еще много всего, модуль позволяет настраивать закономерности и исключения, что важно при скидках и вручную одной строчкой кода вряд ли обойдетесь, хотя я когда-то нечто подобное для 1.5 делал, но в итоге пришлось дописывать код и он разросся так что его можно было в модуль оформлять. Так что проще купить готовое и сэкономить драгоценное время 


Если нужна подсказка, то отталкивайтесь от  cart total
 

  • +1 1

Share this post


Link to post
Share on other sites
12 минут назад, bmite сказал:

я видел этот модуль, нужный функционал в нем отсутствует, если я не прав ткните носом.
к тому же, для этой небольшой функции он дороговато стоит.

Ну и я ищу не модуль, а решение в виде небольшой правки в исходнике, либо небольшую подсказку.

я так и знал что люди не читают а смотрят на картинки

вот картинка, подчеркнул нужное
QiJ6C8ykTRGGI-AqUyepOQ.png

 

 

если этот дорого
то вот попроще

 

Share this post


Link to post
Share on other sites

Предложенный модуль мне не подходит. Это как покупать трактор, чтобы окопать одно дерево. Просьба не флудить и не впараивать мне модули.
 

Share this post


Link to post
Share on other sites
6 minutes ago, Djeff78 said:

Вот вам бесплатное решение

https://www.opencart.com/index.php?route=marketplace/extension/info&extension_id=25007&filter_search=discount order&filter_license=0

Берите его за основу и пилите под свою версию и нужды

спасибо, посмотрю как сделано.

Share this post


Link to post
Share on other sites
1 час назад, bmite сказал:

Предложенный модуль мне не подходит. Это как покупать трактор, чтобы окопать одно дерево. Просьба не флудить и не впараивать мне модули.
 

Кто вам здесь флудит гражданин?
вы спросили вам ответили
 почетче задавайте вопросы тогда и ответы будут точными

Цитата

скидка от суммы заказа в корзине


как мы должны по вашему это понимать то?

Share this post


Link to post
Share on other sites
6 minutes ago, AWARO said:

Кто вам здесь флудит гражданин?
вы спросили вам ответили
 почетче задавайте вопросы тогда и ответы будут точными


как мы должны по вашему это понимать то?

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

 

Проверил модуль по совету  Djeff78 , к сожалению это не то, что нужно. Этот модуль выдает фиксированную скидку, либо % от суммы заказа, мне же нужно другое.

 

Вопрос остается не решенным ....

 

Касательно флуда, конкретно у вас он начался с самого первого сообщения. Я не просил совета "какой модуль установить?" или "как отреагирует заказчик?", потому ваши сообщения никак не относятся к теме и решению проблемы, это и есть флуд.

Share this post


Link to post
Share on other sites

А я брал и от Аваро - отличный модуль. Если завтра стрельнет сайт то и второй возьму попробую его в деле на боевом сайте. 

за 390 рублей) 170 грн) я даже в код лесть не буду) - купил всунул и забыл

Share this post


Link to post
Share on other sites
37 минут назад, bmite сказал:

мне нужно, чтобы цена по скидке "включалась" при определенной сумме в корзине.

писать свой модуль итога для расчета общей суммы скидки

 

2 часа назад, bmite сказал:

Подскажите, как сделать? Я так понимаю тут собака зарыта 

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

Share this post


Link to post
Share on other sites

 

Share this post


Link to post
Share on other sites
1 час назад, bmite сказал:

Касательно флуда, конкретно у вас он начался с самого первого сообщения. Я не просил совета "какой модуль установить?" или "как отреагирует заказчик?", потому ваши сообщения никак не относятся к теме и решению проблемы, это и есть флуд.

помоему вы здесь флудите не понимая чего просите,
вам тут 100500 раз расписали что к чему и не только я один
именно предвидя это я вам и написал первый пост
Но вы внятно даже объяснить не можете что в итоге хотите
т.к. на ваш вопрос вам куча человек отписалось а вы все продолжаете твердить - не то!
чего не то то? ещё раз позвольте спросить, чего вы хотите получить?
Скидку от суммы заказа в скидках на количество?
ну так соответственно вашим желания отвечу вам
Сделайте это в разделе услуг  там это будет дешевле на много только с другой стороны

Share this post


Link to post
Share on other sites

@shoputils ша он и тебя обвинит во флуде и впаривании модулей

Share this post


Link to post
Share on other sites
37 minutes ago, AWARO said:

помоему вы здесь флудите не понимая чего просите,
вам тут 100500 раз расписали что к чему и не только я один
именно предвидя это я вам и написал первый пост
Но вы внятно даже объяснить не можете что в итоге хотите
т.к. на ваш вопрос вам куча человек отписалось а вы все продолжаете твердить - не то!
чего не то то? ещё раз позвольте спросить, чего вы хотите получить?
Скидку от суммы заказа в скидках на количество?
ну так соответственно вашим желания отвечу вам
Сделайте это в разделе услуг

Извините, вы читать умеете не додумывая сообщения? Перечитайте мое первое сообщение внимательно.

 

Quote

ша он и тебя обвинит во флуде и впаривании модулей

Так ясное дело, бото-продавцы спамят своими модулями поверхностно прочитав заголовок темы или отправляют в раздел услуг.

Один товарищ предлагает ваш модуль за ~3к (в котором кстати нет нужной мне функции), вы предлагаете модуль по дешевле, но это все равно не то.

 

Как работает стандартная система скидок опенкарта? Заходишь в редактирование товара, ставишь цену БЕЗ скидки *50р*, затем переходишь во вкладку Скидки, указываешь количество *например 5шт* (после которого "включится" пересчет цены), указываешь цену *30р* (по которой пересчитывать). Затем открываешь карточку товара и добавляешь 4 товара, цена будет 4х50=200. добавляем еще 1 товар, цена будет 5х30=150.

 

Мне нужно, чтобы пересчет цены ВКЛЮЧАЛСЯ  не от количества товара, а от СУММЫ ЗАКАЗА в корзине (а не скидка рассчитывалась от суммы заказа).

То бишь я указываю в модуле (или где-то в контроллере - значение переменной) сумму заказа (= 3000 руб), после которой будет пересчет по скидке . Клиент набирает товаров в корзину на 2999р (для этой суммы цена розничная - 50р/шт), затем набирает товаров в корзину на сумму => 3000р (для этой суммы цена уже оптовая - 30р/шт).

 

Ваш модуль и другие аналогичные работают совсем по другому, а именно, от суммы заказа отнимают % либо фиксированную сумму указанную в модуле.

Edited by bmite

Share this post


Link to post
Share on other sites

ах вы тоже оптовик, ну ну
500 товаров
все купили не оптовик т.к. цена не измениться
нужно купить всех по 500 чтоб цена поменялась..
вот ша понятно
извините что мозг вам вынесли

Share this post


Link to post
Share on other sites

расставляйте кратное нужной сумме количество товаров

Share this post


Link to post
Share on other sites
1 minute ago, AWARO said:

расставляйте кратное нужной сумме количество товаров

так не подойдет, в моем случае оптовик может купить разные товары на сумму >= 3000.

Не подскажите, в каком контроллере или модели срабатывает "переключатель"  скидочных цен (зависящий от количества)?

Share this post


Link to post
Share on other sites

@bmite самое быстрое если не хотите особо заморачиваться пропишите 2 строки в system/library/cart/cart.php ну и поменяйте в языковом файле для карточки товара Количество на Сумму. Соответственно нигде в корзине написано не будет что сумма со скидкой указана.

Share this post


Link to post
Share on other sites

Решено было так:

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

 

заменить

				// Product Discounts
				$discount_quantity = 0;

				$cart_2_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "cart WHERE customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'");

				foreach ($cart_2_query->rows as $cart_2) {
					if ($cart_2['product_id'] == $cart['product_id']) {
						$discount_quantity += $cart_2['quantity'];
					}
				}

				$product_discount_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_discount WHERE product_id = '" . (int)$cart['product_id'] . "' AND customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND quantity <= '" . (int)$discount_quantity . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY quantity DESC, priority ASC, price ASC LIMIT 1");

				if ($product_discount_query->num_rows) {
					$price = $product_discount_query->row['price'];
				}

на

				// Product Discounts
				$discount_quantity = 0;

				$cart_2_query = $this->db->query("SELECT * FROM " . DB_PREFIX . "cart WHERE customer_id = '" . (int)$this->customer->getId() . "' AND session_id = '" . $this->db->escape($this->session->getId()) . "'");
				
				// Блок по кастомным скидкам
				$tmp_price = 0;
				foreach ($cart_2_query->rows as $prod) {
					$objProduct = $this->db->query("SELECT * FROM " . DB_PREFIX . "product WHERE product_id = " . (int)$prod['product_id']);
					$tmp_price += $objProduct->row['price'] * $prod['quantity'];
				}
				// Конец блока по кастомным скидкам

				// Блок по кастомным скидкам
				if ($tmp_price >= 3000) { // условие по кастомным скидкам
					$product_discount_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_discount WHERE product_id = '" . (int)$cart['product_id'] . "' AND customer_group_id = '" . (int)$this->config->get('config_customer_group_id') . "' AND ((date_start = '0000-00-00' OR date_start < NOW()) AND (date_end = '0000-00-00' OR date_end > NOW())) ORDER BY quantity DESC, priority ASC, price ASC LIMIT 1");

					if ($product_discount_query->num_rows) {
						$price = $product_discount_query->row['price'];
					}
				} // Конец блока по кастомным скидкам

p.s.

форум этот оказался бесполезный, администрация поощряет флуд и спам модулей, которые не относятся к решению задачи.

Share this post


Link to post
Share on other sites
2 часа назад, bmite сказал:

форум этот оказался бесполезный, администрация поощряет флуд и спам модулей, которые не относятся к решению задачи.

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

п.с вы наоборот должны быть благодарны, благодаря форуму вы включили МОЗГ ) 

Share this post


Link to post
Share on other sites
2 hours ago, dedvjbed said:

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

п.с вы наоборот должны быть благодарны, благодаря форуму вы включили МОЗГ ) 

из всей ветки всего одно толковое сообщение (перед ответом), и то альтернатива. Меня бы устроил ответ, если бы указали изначально на файл, с которым нужно работать...

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

  • 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.