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

Не работает скидка, если активна акция

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

Здравствуйте! Подскажите пожалуйста, почему если на товар установлена акция, цена со скидкой не учитывается. Хотелось бы сделать следующим образом: если цена на товар со скидкой ниже, чем цена по акции, учитывалась именно цена со скидкой. Спасибо.

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


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

Нашел одно решение в интернете:

Для того чтобы скидка и акция работали совместно, в system/library/cart.php необходимо заменить

 

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

 

на

 

// 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) {
if($product_discount_query->num_rows&&$product_discount_query->row['price']<=$product_special_query->row['price']){
$price = $product_discount_query->row['price'];
}else{
$price = $product_special_query->row['price'];
}
}

 

Правильно ли это? Может просто где-то в настройках нужно что-то поменять?

  • +1 1

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


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

Подошло вам решение данной проблемы? обратил внимание на это, так же не считает если включена акция.

стоит OpenCart  2.3.0.2

UPD:

хмм, кажется работает,  сделал изменения по аналогии в этом файле(у меня начиная со 186 строки).

...

                if ($product_special_query->num_rows) {
                    //$price = $product_special_query->row['price']; -была эта строка, ее закомментировал, можно удалить
                    if($product_discount_query->num_rows&&$product_discount_query->row['price']<=$product_special_query->row['price']){
                        $price = $product_discount_query->row['price'];
                    }
                    else{
                        $price = $product_special_query->row['price'];
                    }                
                }

...

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

Изменено пользователем VpsK
  • +1 1

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


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

@VpsK можно и по шикарнее сделать
Скоро вот эт будет глобальной настройкой

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

 

 

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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