mail: admin@shopos.ru
Обратная связь


Войти



Автор Тема: Как сделать вывод цены товара сразу в двух валютах?

Оффлайн support

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

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

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

         $tax_rate = $osPrice->TAX[$array['products_tax_class_id']];

Добавляем после:
         $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'] . ') ');


Оффлайн YanXP79

  • Пользователь
  • **
  • Сообщений: 76
    • Просмотр профиля
а если основная валюта ГРН, вторая валюта USD, то как сделать?? Просто если выставлю ГРН как основная валюта, то тогда после обновления курсов валют фигня получается. Бредовые цифры

Оффлайн CraCk

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
а если основная валюта ГРН, вторая валюта USD, то как сделать?? Просто если выставлю ГРН как основная валюта, то тогда после обновления курсов валют фигня получается. Бредовые цифры

Проверь, в админке -> валюты -> основнаю валюта должна иметь значение(Величина:1.00000000).

Оффлайн YanXP79

  • Пользователь
  • **
  • Сообщений: 76
    • Просмотр профиля
у меня основная валюта USD = 1.00000000. Курс гривны обновляется корректно, все красиво.

Но если меняю код

$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'] . ') ');

то показывает 80$ (80$)
А хотелось бы 80$ (608,12 грн)

Просто не шарю, как там корректировать. 

Оффлайн CraCk

  • Новичок
  • *
  • Сообщений: 20
    • Просмотр профиля
у меня основная валюта USD = 1.00000000. Курс гривны обновляется корректно, все красиво.

Но если меняю код

$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'] . ') ');

то показывает 80$ (80$)
А хотелось бы 80$ (608,12 грн)

Просто не шарю, как там корректировать. 

Там где USD пишеш UAH. И незабудь в админке поставить код гривни UAH

Оффлайн YanXP79

  • Пользователь
  • **
  • Сообщений: 76
    • Просмотр профиля
Спасибо, понял!  ;D

Оффлайн graf

  • Постоялец
  • ***
  • Сообщений: 190
    • Просмотр профиля
сделал выше описаное, только выводил одну валюту UAH, при чем дефолтной валютой в магазине прописан $, т.к. цены в прайсе в $

Все работает хорошо, цены все отображаются в гривнах, но в корзине цены не учитываются. не в shopping_cart.php не в box_cart.html

Оффлайн МунГ

  • Новичок
  • *
  • Сообщений: 1
    • Просмотр профиля
А вот как бы в корзине еще изменить вывод цены и сделать в двух валютах?

Оффлайн ZAP

  • Ветеран
  • *****
  • Сообщений: 540
    • Просмотр профиля
    • Леостиль
Вроде метод хороший, но вот когда есть скидка на товар то выводится полный бред
Верстка шаблонов ShopOS
http://leostyle.com.ua/

Шаблон allinone

Оффлайн kuhto

  • Постоялец
  • ***
  • Сообщений: 168
    • Просмотр профиля
    • kuhto.ru
может я что-то не так делаю, но у меня не получилось (((

я несовсем в этом методе понимаю что на что менять.

подскажите плиззз...


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

         $tax_rate = $osPrice->TAX[$array['products_tax_class_id']];

Добавляем после:
         $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, если у Вас другая валюта, указывайте свой код.



Оффлайн kuhto

  • Постоялец
  • ***
  • Сообщений: 168
    • Просмотр профиля
    • kuhto.ru
Все заработало.

Только появился еще вопрос. Можно ли по такомуже методу добавить вывод третей валюты, например евро?

Оффлайн kuhto

  • Постоялец
  • ***
  • Сообщений: 168
    • Просмотр профиля
    • kuhto.ru
А вот на другом хостинге почему-то на главной странице при выводе второй валюты показывает лишь скобки, а самого курса нет.
Можете подсказать в чем дело?????

Оффлайн ALEXX

  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
"..Всё, теперь цены в боксах новинки, рекомендыемые, на страницах списка товаров, на страницах новинки, рекомендуемые и т.д. будут в виде 32 руб. (1$)..."

А где прописаны сами скобки ()? как от них избавиться? И как значок $ установить перед цифрой, типа: $1 ?

Оффлайн kuhto

  • Постоялец
  • ***
  • Сообщений: 168
    • Просмотр профиля
    • kuhto.ru
"..Всё, теперь цены в боксах новинки, рекомендыемые, на страницах списка товаров, на страницах новинки, рекомендуемые и т.д. будут в виде 32 руб. (1$)..."

А где прописаны сами скобки ()? как от них избавиться? И как значок $ установить перед цифрой, типа: $1 ?


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

в строчке кода я отметил скобки жирным, которые нужно удалить

Оффлайн ALEXX

  • Новичок
  • *
  • Сообщений: 27
    • Просмотр профиля
"..Всё, теперь цены в боксах новинки, рекомендыемые, на страницах списка товаров, на страницах новинки, рекомендуемые и т.д. будут в виде 32 руб. (1$)..."

А где прописаны сами скобки ()? как от них избавиться? И как значок $ установить перед цифрой, типа: $1 ?


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

в строчке кода я отметил скобки жирным, которые нужно удалить

Спасибо!

 

Copyright 2016 ShopOS