Модуль позволяет задавать цены товаров в разных валютах. В форме редактирования товара на Opencart 3.0 возле поля "Цена" добавляется выбор валюты. На сайте цена будет отображаться в валюте магазина, то есть она будет автоматически пересчитываться по курсу.

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

Установка модуля:
1. Загрузить модуль через "Установку расширений" в админке Opencart 3.0
2. Обновить кэш в Модификаторах
3. Обновить кэш шаблонов
4. Нужно добавить валюты и указать правильно курс по отношению к основной валюте, это можно сделать в разделе Система > Локализация > Валюты. В поле "Значение" задается курс валюты по отношению к основной валюте сайта, разделитель десятичных знаков - точка. Указывайте курс правильно, иначе цены будут пересчитываться не правильно.
Если основная валюта на сайте - рубль, тогда ее курс 1, а в остальных валютах курс будет по отношению к этой валюте, то есть долл/руб, евро/руб, грн/руб, а не наоборот, в том виде, как вы привыкли это видеть в банках.
Если основная гривна, тогда у нее курс 1, а в остальных руб/грн, долл/грн, евро/грн.
Если доллар основная, тогда ее курс 1, а в остальных руб/долл, грн/долл, евро/долл.
Если основная евро, тогда у нее курс 1, а в остальных руб/евро, грн/евро, долл/евро.
5. Перейти к добавлению или редактированию товара, на вкладке "Данные" возле поля "Цена" появилась возможность выбрать валюту.

Другие возможные названия: мультивалютный товар, разные валюты товаров, multi currency products, мульти валютные цены, multicurrency Opencart 3.0

Лог обновлений:
24.09.2019 - решена ошибка в админке при добавлении Акций для товара.
02.12.2019 - добавлена совместимость с "Умным фильтром" и "Экспорт YML".
15.12.2019 - правильная работа сортировки товаров по цене.
18.03.2020 - улучшена совместимость модуля с другими модулями и шаблонами.
11.06.2020 - улучшена совместимость с шаблонами
22.06.2020 - совместимость с экспортом от модуля Y.CMS
30.11.2020 - совместимость с шаблонами OCT и модулем UniXML

  • Opencart 3.0.0.0
  • Opencart 3.0.1.1
  • Opencart 3.0.1.2
  • Opencart 3.0.2.0 или ocStore 3.0.2.0
  • Opencart 3.1.0.0
  • Opencart 3.0.3.1
  • Opencart 3.0.3.2
  • Opencart 3.0.3.3
  • Opencart 3.0.3.6
  • Opencart 3.0.3.7 и OcStore 3.0.3.7
  • Opencart 3.0.3.8
  • Opencart 4.0.0.0
  • Opencart 4.0.1.0
  • Opencart 4.0.1.1
  • Opencart 4.0.2.0
  • Opencart 4.0.2.1
  • Opencart 4.0.2.2
  • Opencart 4.0.2.3

В стандартном разделе Система > Локализация > Валюты.

В стандартном разделе Система > Локализация > Валюты > для каждой валюты в поле "Значение".

Первым делом вам стоит скачать последнюю версию модуля в вашем личном кабинете и обновиться. И только если проблема не решится - выполнять следующие инструкции.
Если сортировка не работает попробуйте вручную выполнить sql-запрос в базе данных:
UPDATE `oc_product` p INNER JOIN `oc_product_special` s ON s.product_id=p.product_id SET p.temp_price = (CASE WHEN s.price IS NOT NULL THEN s.price ELSE p.price END) * (CASE WHEN p.currency_id>0 THEN (1/(SELECT c.value FROM `oc_currency` c WHERE c.currency_id=p.currency_id)) ELSE 1 END);
Имейте ввиду, что в этом запросе использованы стандартные префиксы таблиц "oc_".
Этот запрос пересоздает цены для сортировки.
Так как модуль обновляет поле temp_price только при редактировании товара или создании товара через админку. При импорте товаров или добавлении/редактировании через сторонние модуля это поле не обновляется, поэтому сортировка может работать не правильно.

Есть еще один вариант как решить эту проблему раз и навсегда, но это может сказаться на скорости загрузки ваших страниц, если у вас слабый хостинг.
Для этого нужно в модификаторе модуля нужно найти строку:
$sql .= " ORDER BY (CASE WHEN p.temp_price > 0 THEN p.temp_price WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END)";
и заменить ее на
$sql .= " ORDER BY ((CASE WHEN special IS NOT NULL THEN special WHEN discount IS NOT NULL THEN discount ELSE p.price END) * (CASE WHEN p.currency_id>0 THEN (1/(SELECT c.value FROM `" . DB_PREFIX . "currency` c WHERE c.currency_id=p.currency_id)) ELSE 1 END))";

  • Цена: 557 руб.

- с помощьюВарианты оплаты заказа

  • Гарантирована совместимость
  • Только OCMOD
  • Без привязки к домену
  • Открытый код
  • Без вирусов
  • Техподдержка

Информация:

×
Напишите нам, мы онлайн!