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

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


nakamuro

Recommended Posts

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

На фронте Евро пересчитывается по курсу ЦБ РФ.
В таблице 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 користувачів

    • Ні користувачів, які переглядиють цю сторінку

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

Important Information

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