Отключить купоны для продажи товаров в Opencart

Эй, я хочу отключить купоны на продажу товаров в Opencart.

Я нашел код купона, и вот список «если-s», когда купон не работает … Я должен добавить здесь условие, что, когда товар со скидкой $status = false;

Но я не знаю, как проверить, есть ли у продукта специальная цена …

if ($coupon_query->row['total'] > $this->cart->getSubTotal()) {
$status = false;
}
$coupon_history_query = $this->db->query("SELECT COUNT(*) AS total FROM `" . DB_PREFIX . "coupon_history` ch WHERE ch.coupon_id = '" . (int)$coupon_query->row['coupon_id'] . "'");

if ($coupon_query->row['uses_total'] > 0 && ($coupon_history_query->row['total'] >= $coupon_query->row['uses_total'])) {
$status = false;
}

if ($coupon_query->row['logged'] && !$this->customer->getId()) {
$status = false;
}

1

Решение

Это для версии 2.3.0.2

В вашем файле catalog/model/extension/total/coupon.php искать функцию public function getTotal($total) :

рядом с линией

$this->load->language('extension/total/coupon');

добавлять

$this->load->model('catalog/product');

Следующий поиск $discount = 0; в той же функции. До $discount = 0; добавлять

$product_details = $this->model_catalog_product->getProduct($product['product_id']);
if($product_details['special']) {
continue;
}

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

2

Другие решения

Спасибо за код, он работает довольно хорошо, но когда я добавил это, я заметил еще одну ошибку, которая появилась. Когда я добавляю товары, которые не продаются, и товары, которые продаются, значение скидки не является правильным. Тип купонного вознаграждения установлен на фиксированную цену.
Пример :
Купон на скидку — 20USD
Товар 1 — 10USD — в продаже
Товар 2 — 20USD — в продаже
Товар 3 — 100USD — нет в продаже

Размер купона на скидку отображается при оформлении заказа как -17,65 или что-то.
Это проверка, которую я сделал в coupon.php

if ($status) {
if ($coupon_info['type'] == 'F') {
$discount = $coupon_info['discount'] * ($product['total'] / $sub_total);
} elseif ($coupon_info['type'] == 'P') {
$discount = $product['total'] / 100 * $coupon_info['discount'];
}
0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector