Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

[Решено] Не работают одноврмено скидка и акции в одном товаре


 Поделиться

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

Добрый вечер коллеги, вопрос такой может кто сталкивался, не работают скидки и акции одновременно в одном товаре  скрин прилагается, на нем мы видим акцию перечеркнутую цену и 2 вида скидок от количества товара, при выборе товара на любую из скидок, он не учитывает их, а учитывает только акционую цену. если убрать акцию с товара то все работает прекрасно. версия 1.5.5.1  проверял на чистой, результат тот же.

post-668379-0-52845700-1393287724_thumb.png

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


У меня также, думал вообще не работает, как прочел пост, тоже отключил акцию и от кол-ва скидка заработала, как теперь с простой акцией сделать кто знает?

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


  • 2 недели спустя...

а кто ее должен решать то???

Да кто угодно, на опенкарте куча магазинов, вот и спрашиваю может кто уже решил эту проблему.

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


  • 4 месяца спустя...

а что необходимо? Что бы при акции и дисконте, учитывал только дисконт??

Или делал еще скидку на цену дисконта??

 

т.е Товар по цене 100, скидка по акции 90.

При покупке от 10 стоимость 80.

 

Какая должна быть сумма при покупке 10?

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

80

а что необходимо? Что бы при акции и дисконте, учитывал только дисконт??

да.

Потому что акция идет как правило на розничную цену товара, а скидка она идет от количества, то есть скидка это оптовая цена и акция на неё не распостраняется!

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


открываем файл

\system\library\cart.php

 

находим там

				// Product Specials
				$product_special_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$product_id . "' AND customer_group_id = '" . (int)$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 priority ASC, price ASC LIMIT 1");
			
				if ($product_special_query->num_rows) {
					$price = $product_special_query->row['price'];
				}

и ставим его перед     // Product Discounts

  • +1 2
Ссылка на комментарий
Поделиться на других сайтах

  • 1 месяц спустя...
  • 4 месяца спустя...

открываем файл

\system\library\cart.php

 

находим там

				// Product Specials
				$product_special_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_special WHERE product_id = '" . (int)$product_id . "' AND customer_group_id = '" . (int)$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 priority ASC, price ASC LIMIT 1");
			
				if ($product_special_query->num_rows) {
					$price = $product_special_query->row['price'];
				}

и ставим его перед     // Product Discounts

 

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

system\library\cart.php

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


  • 3 года спустя...

Приветствую всех!

Сегодня озаботился подобной проблемой, есть товар, старая цена 250р. за единицу, новая цена установленная по акции 210 руб.

плюс к этому добавил в этом же товаре скидку от количества 10шт по 200 руб за единицу,

Скидка и акция указаны для одинаковой группы покупателей Default.

 

Модификацию файла cart.php как описано выше произвел, поставил код //Product specials выше кода //Product discounts

 

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

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


  • 3 недели спустя...
В 10.04.2018 в 15:24, kicx сказал:

Приветствую всех!

Сегодня озаботился подобной проблемой, есть товар, старая цена 250р. за единицу, новая цена установленная по акции 210 руб.

плюс к этому добавил в этом же товаре скидку от количества 10шт по 200 руб за единицу,

Скидка и акция указаны для одинаковой группы покупателей Default.

 

Модификацию файла cart.php как описано выше произвел, поставил код //Product specials выше кода //Product discounts

 

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

Нужно по приоритету идти
т.е. или то или это - что выгоднее
чтоб одно другое не перебивало
если у товара основная цена 1000р
а цены по группам 900 800 и т.д. (это скидка на кол-во 1шт)
то скидка у групп на кол-во 2 и более может быть меньше чем акционная цена т.к. и она подвязывается к группам.
т.е. основная цена при таком подходе остаётся как РРЦ
групповые цены - разные для каждой из групп
соответственно акции к этим группам предполагают быть ниже
но при скидке от кол-во 2 и более она может быть ниже
вот выводить то что выгоднее наиболее правильный подход при условии что логика построения цен именно такая как я описал выше

 

Функция - скидки от кол-ва товара

Спойлер
Позволяет более гибко настраивать каждую скидку модуля со скидкой от кол-ва товара в 4х вариантах. Данный функционал срабатывает только если у товара есть скидка от количества и выполнено одно из условий в выпадающей настройке УСЛОВИЯ при наличии у товара дополнительно и акции.
  1. Активировать: применяется наиболее выгодная скидка! - (т.е. одно из двух, или скидку модуля, или скидка от количества товара от 2х и более).
  2. Игнорировать: скидка модуля не применяется на товары, у которых есть скидка от кол-ва товара! (Пример: если у товара какая либо скидка от кол-ва товаров активна, то скидка модуля не применяется).
  3. Приоритет: скидка модуля применяется только на то кол-во товаров, на которое не распространяться скидка от кол-ва товара! (Пример: если у товара скидка от кол-ва товара активна на 2шт (больше одного), то скидка модуля применяется только к одному товару, а не на два и более товара).
  4. Суммировать: суммируется скидка модуля и скидка товара! (т.е. скидка от кол-ва товара + скидка модуля).

 

 

Условия разграничения скидок от кол-ва товара и акции товара

Спойлер
Если у товара есть скидка от кол-ва или акция то скидка модуля применяется к их цене в соответствии с выбранными функциями в выпадающих настройках скидок и акций, расположенных справа и с лева соответственно.
  • По умолчанию: работа скидок и акций ни как не разграничена (Акция приоритетнее скидки от кол-ва товара).
  • Приоритет: применяется наиболее выгодный вариант для пользователя или скидка от кол-ва товара или акция товара.

 

 

Функция - акций товара

Спойлер
Позволяет более гибко настраивать скидку модуля с акцией товара в 3-х вариантах. Данный функционал срабатывает, только если у товара есть акция! И в зависимости от условия в выпадающей настройке УСЛОВИЯ (при наличии у товара дополнительно скидки  от кол-ва товара).
  1. Активировать: применяется наиболее выгодная скидка! - (т.е. одно из двух, или скидка модуля, или акция карточки товара).
  2. Игнорировать: игнорируется скидка модуля на товары по Акции! - (т.е. к товарам на которые установлена акция, скидка модуля не применяется!)
  3. Суммировать: суммируется скидка модуля и акция товара! (т.е. цена товара по акции + скидка модуля).
     

 


тут реализовано

 

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


  • 2 года спустя...

Добавлю решение для опенкарт 2.3

Находим в файле /system/library/cart/cart.php

// Product Specials
				$product_special_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_special 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 priority ASC, price ASC LIMIT 1");

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

и вставляем его выше перед

// Product Discounts

 

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

  • 3 недели спустя...

Добрый день! для 3.0.2.0 подходит и решает проблему, но только в корзине норм пересчитывает, а на странице товара так не работает, в приоритете акция, а не скидка. кто поможет с решением? 

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


  • 5 месяцев спустя...
В 07.02.2021 в 01:41, mister12 сказал:

Добавлю решение для опенкарт 2.3

Находим в файле /system/library/cart/cart.php



// Product Specials
				$product_special_query = $this->db->query("SELECT price FROM " . DB_PREFIX . "product_special 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 priority ASC, price ASC LIMIT 1");

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

и вставляем его выше перед



// Product Discounts

 

 

Привет, работает

 

А кто  то знает как это модификатором сделать? Что бы файл не менять

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

Предложу решение для всех версий

Можно сделать как приоритет скидок так и наименьшей цены

 

 

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

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

 

Привет, работает

 

А кто  то знает как это модификатором сделать? Что бы файл не менять

ну как то так, если кому надо

Вообще при таком переносе строк, надо учитывать другие моды

uchityvat-odnovrmeno-skidki-i-akcii-ocstore-2.3.ocmod.xml

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

Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

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

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