Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Вывод старой цены в корзине


Recommended Posts

Всем привет нужно вывести в корзине рядом с ценой со скидкой, старую перечеркнутую цену. Пытаюсь $product['special'] вести через system/library cart .php и контроллер, но не выходит. Стоит модуль simple.

Надіслати
Поділитися на інших сайтах


Решение

 

Catalog/controller/cart.php

 

После 

 

// Display prices

 

 

 

if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {

$unit_price = $this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax'));

 

$price = $this->currency->format($unit_price, $this->session->data['currency']);

$total = $this->currency->format($unit_price * $product['quantity'], $this->session->data['currency']);

} else {

$price = false;

$total = false;

}

 

Вставить 

 

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {

$price2 = ($this->tax->calculate($product['price2'], $product['tax_class_id'], $this->config->get('config_tax')));

} else {

$price2 = false;

}

 

 

Добавить в массив

 

'price2'    => $price2,

 

Потом в 

System/library/cart/cart.php

 

в массив добавляем

 

 

'price2'          => $product_query->row['price'],

 

В simplechecout-cart.php

 

После 

 

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {

                $price = $this->simplecheckout->formatCurrency($this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax')));

            } else {

                $price = false;

            }

 

Вставить 

 

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {

                    $price2 = ($this->tax->calculate($product['price2'], $product['tax_class_id'], $this->config->get('config_tax')));

                } else {

                    $price2 = false;

                }

Змінено користувачем danilenkoki
Надіслати
Поділитися на інших сайтах


  • 1 month later...

Версия Опенкарт 2.1

У меня данный способ не сработал. В корзине вторая цена выводит 0 руб.

В 14.01.2019 в 12:09, danilenkoki сказал:

Потом в 

System/library/cart/cart.php

 

в массив добавляем

 

 

'price2'          => $product_query->row['price'],

 

1. У меня нет папки System/library/cart/, файл cart.php лежит в сразу в System/library/

2. 'price2'          => $product_query->row['price'],  - а почему тут ->row['price'], а не ->row['price2']? Так и должно быть. Хотя если даже поставить ->row['price2'], всё равно не работает.

  

Надіслати
Поділитися на інших сайтах


  • 7 months later...
  • 1 year later...

Проверил на Opencart 3, работает но пришлось сделать небольшие доработки

 

После вот этого в controller/common/cart.php
// Display prices
if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
$unit_price = $this->tax->calculate($product['price'], $product['tax_class_id'], $this->config->get('config_tax'));
$price = $this->currency->format($unit_price, $this->session->data['currency']);
$total = $this->currency->format($unit_price * $product['quantity'], $this->session->data['currency']);
} else {
$price = false;
$total = false;
}

Вставил вот это:

if ($this->customer->isLogged() || !$this->config->get('config_customer_price')) {
$unit_priceOld = $this->tax->calculate($product['price_old'], $product['tax_class_id'], $this->config->get('config_tax'));
$priceOld = $this->currency->format($unit_priceOld, $this->session->data['currency']);
} else {
$priceOld = false;
}

if($price == $priceOld) {
$priceOld = false; // если цена старая и новая совпадают, то не нужно выводить обе
}

В system/library/cart/cart.php в массив $product_data[], вставил вот это:

'price_old'       => $product_query->row['price'],

Потом не зубудьте обновить кеш модификатора в админке

 

По крайней мере у меня работает без проблем, надеюсь вам поможет это решение)

Змінено користувачем John_Ryzen
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.