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

Сортировка ПО ЦЕНЕ с учетом курса валюты

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

На сайте цены товаров хранятся в Рублях и Евро.

На фронте Евро пересчитывается по курсу ЦБ РФ.
В таблице oc_product создан еще один столбец currency_id. В котором у товаров 1 - это Руб, или 4 - это Евро.

Сам же курс берется из таблицы oc_currency в нем столбцы currency_id и value (значение курса).
Далее в контролере условие

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
    if ($result['value'] == 1) { //если валюта РУБ
        $cena = $result['price']; // Выводим Рубли                            
    } else {
        $cena = $result['price'] / $result['value']; //Иначе делем на курс Евро                
    }
    $price = $this->currency->format($this->tax->calculate($cena, $result['tax_class_id'], $this->config->get('config_tax')));                    
} else {
    $price = false;
}

Проблема возникла с сортировкой "По цене"... она как понятно, берет значение price из таблицы oc_product. В итоге сортирует все вместе и Евро и Рубли. Естественно товары с Евро ценой стоят первыми, т.к. у них меньшее значение.

 

Как я понял проблему можно исправить в
catalog/model/catalog/product.php

там в массиве есть строка

'price'            => ($query->row['discount'] ? $query->row['discount'] : $query->row['price']),

Прошу помощи с составлением условия, плохо понимаю в данном синтаксе написания кода.

Нужно чтото, вроде:
'price'  =>  (if $currency_id == 1 { $query->row['price']} else { $query->row['price'] /  row['value']})

 

 

В этом же массиве уже присутствует:
'currency_id '             => $query->row['currency_id'], //Код валюты
'title'            => $query->row['title'], // Название валюты
'value'            => $query->row['value'], //Значение курса

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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