Категории

[FAQ] Часто задаваемые вопросы и ответы

Проблемы и решения

Ошибки и исправления

Общие вопросы

Расширения

Установка и обновление

Модули

Шаблоны

Локализация интерфейса

Коммерческие предложения

Учимся бизнесу

Бизнес книги

Поисковая оптимизация (SEO)

Магазины на ShopOS

Хостинг для ShopOS

Предложения и пожелания

Курилка

Отображение стоимости товара в двух валютах

Господа.
Нужен вывод стоимости товара в двух валютах.
Было проделанно:

Цитировать

    Если у нас в магазине основная валюты рубль (код валюты RUR) и есть вторая валюта, доллар США (код валюты USD), мы хотим цены на товары выводить сразу в двух валютах, например так 32 руб. (1$).

    Как это сделать.

    1. Открываем файл includes/classes/product.php
    Ищем:
      function buildDataArray(&$array,$image='thumbnail') {
          global $osPrice,$main;

            $tax_rate = $osPrice->TAX];

    Добавляем после:
            $osPriceUSD = new osPrice('USD', $_SESSION['customers_status']['customers_status_id']);
            $products_price_USD = $osPriceUSD->GetPrice($array['products_id'], $format = true, 1, $tax_rate, $array['products_price'], 1);   

    Учтите, что в данном примере я указываю код валюты USD, если у Вас другая валюта, указывайте свой код.
    Заменяем:
    Цитировать

        'PRODUCTS_PRICE' => $products_price['formated'],


   
    на:
    Цитировать

        'PRODUCTS_PRICE' => $products_price['formated'] . ' (' . $products_price_USD['formated'] . ') ',


   

    Всё, теперь цены в боксах новинки, рекомендыемые, на страницах списка товаров, на страницах новинки, рекомендуемые и т.д. будут в виде 32 руб. (1$).

    Чтобы сделать на странице карточки товара вывод сразу в двух валютах, открывайте файл includes/modules/product_info.php
    заменяем:
    Цитировать

        $info->assign('PRODUCTS_PRICE', $products_price['formated']);


    на:
    Цитировать

        $osPriceUSD = new osPrice('USD', $_SESSION['customers_status']['customers_status_id']);
        $products_price_USD = $osPriceUSD->GetPrice($product->data['products_id'], $format = true, 1, $product->data['products_tax_class_id'], $product->data['products_price'], 1);   
        $info->assign('PRODUCTS_PRICE', $products_price['formated'] . ' (' . $products_price_USD['formated'] . ') ');



Все вроде класно но...
вот немогу понять как при стоимости товара 25990 грн. при курсе доллара 7,85 система рассчитала долларовую стоимость порядка 779000 баксов?

В настройках валюты гривна прописанна 1,00000000 и доллар соответственно 0,12700000 в примере система отображает все верно 30 грн это 3,72 доллара
так что она мне выводит во фронте?

Кто сталкивался и каковы методы решения?


Только что столкнулся. Надо выключить в админке (настройки - основные - кэш) функцию "Cache Pro" и все будет отображать правильно ;)


Кстати у меня на сайте можно посмотреть как работает, сайт в подписи :)


кстати еще кое что дотестил  :D надо вообще кеш выключить... и если так подумать то человек который захочет купить товар он подождет пол секунды больше без включенного кеша:-)



Только что столкнулся. Надо выключить в админке (настройки - основные - кэш) функцию "Cache Pro" и все будет отображать правильно ;)


тогда кол. запросов к бд увеличивается


оно то да, но приходится чем то жертвовать что бы отображалось в 2-х валютах...


Вот похожая тема для моего вопроса. Товарищи. подскажите что где дописать/заменить.
Проблема в следующем. Нужно чтобы отображалось не две валюты, а только вторая.
тоесть по умолчанию в админке стоит USD. все цены в USD. А на страницых магазина хочу чтобы цены выводились в Рублях.
Подскажите как это можно сделать. Очень нужно.


Похоже, стандартными средствами этот довольно типовой вопрос  не решается.


Источник



Copyright ShopOS