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

Вывод двух белоруских валют


melnykserhiy

Recommended Posts

Здраствуйте всем, прошу помочь в следующим задании, не могу понять как работают Белорусские валюты на магазине OpenCart в админке ввожу 118000.0000 цену а на сайте отображается 11руб. 80коп., сейчас же в Белоруссии будет смена валют, и нужно чтобы на сайте отображалась цена в старой валюте и в новой валюте .

Надіслати
Поділитися на інших сайтах


Вроде же достаточно модулей вывода цен в нескольких валют. Настройте соотношение курса 1 к 10 000 и все.

А как быть с тем что в админке цена 100000 а на сайте 100, как OpenCart работает с Белорусскими валютами?

Надіслати
Поділитися на інших сайтах


А как быть с тем что в админке цена 100000 а на сайте 100, как OpenCart работает с Белорусскими валютами?

создайте в админке новую валюту. И в качестве её укажите параметры бел. руб и все будет нормально отображаться

Надіслати
Поділитися на інших сайтах


Если быть точнее, то создайте две валюты:  BYR (её ставите главной в настройках) и BYN (новое обозначение).

 

При версии OC 2.X (не знаю как с этим у 1.5) для BYR значение "1", для BYN значение "0.001".

 

Вот только спустя некоторое время придется окончательно перебраться на BYN, и как срезать нули по всей базе совершенно другой вопрос)

Надіслати
Поділитися на інших сайтах


Как срезать? Массово экспортировать все в excel, перебить все цены и назад импортировать в OpenCart

Ага, ага.Особенно способ хорош, если товаров тыщ двадцать. :-D

Надіслати
Поділитися на інших сайтах


А что такого? Я проверила: максимальный размер таблицы 65000 строк. Все Ваши товары поместятся. А цену перебивать-то надо не вручную, а автоматически, разделив на 10000.

Надіслати
Поділитися на інших сайтах


Проблема не в экселе, а в импорте-экспорте километровых файлов.

Того же можно добиться намного проще, SQL-запросом:

update oc_product set price=price/10000;
Надіслати
Поділитися на інших сайтах


 

Проблема не в экселе, а в импорте-экспорте километровых файлов.

Того же можно добиться намного проще, SQL-запросом:

update oc_product set price=price/10000;

 

Импорт километровых файлов это замечательное развлечение)) 

 

А насчет запроса спасибо, не знал. Но всё же тем, у кого не совсем "ровные" цены, придется помудрить с округлением копеек. 

Надіслати
Поділитися на інших сайтах


  • 4 weeks later...

Так все-таки как сделать?

Создать вторую валюту, указать ее курс 0,0001.

Но ни в карточках, ни на главной странице не видно двух валют. Все равно одна старая.

Что надо еще сделать для отображения 2-х валют?

Надіслати
Поділитися на інших сайтах


Что надо еще сделать для отображения 2-х валют?

$price = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));

 

выведет валюту установленную  (или переключателем или другим способом)

$price2 = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), 'BYN');

где, 'BYN' - код нужной валюты

 

  • +1 1
Надіслати
Поділитися на інших сайтах

Так не получается.

Создаем новую валюту, включаем ее и называем "BYN".

В контроллер карточки товара (например, catalog-controller-product-product.php) вносим вашу запись:

 

$price2 = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), 'BYN');

 

В файл отображения карточки (например, catalog-view-theme-default-template-product/product.tpl) рядом с отображением $price добавим строчку с $price2. Получится так

 

     <div class="price"><?php echo $text_price; ?>

        <?php if (!$special) { ?>
        <?php echo $price; ?>
  <?php echo $price2; ?>
        <?php } else { ?>

        <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>

 

Больше ничего не делаем. Но в результате в карточке товара, рядом со старой ценой получаем:

 

Цена: 120 000 р.

Notice: Undefined variable: price2 in/home/my_site/public_html/vqmod/vqcache/vq2-catalog_view_theme_default_template_product_product.tplon line 122 

 

Т.е. как-бы значение $price2 не доходит от файла php до файла tpl.  :(

Где-то надо их еще связать?

Змінено користувачем Lilya
Надіслати
Поділитися на інших сайтах


Ну да, конечно

 

Для product

 

            if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
                $this->data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));

 $this->['price2'] = $this->currency->format($this->tax->calculate($option_value['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), 'BYN');
            } else {
                $this->data['price'] = false;

$this->['price2'] = false;
            }

 

и т.д по всем контроллерам

 

там где есть

 

$price или 'price'

 

 

 

 

  • +1 3
Надіслати
Поділитися на інших сайтах

Получилось!  :-)
Но только после "танцов с бубном"...
Итак...
 
В контроллер (только в карточку товара. Думаю покупателям будет достаточно для понимания):
("танцы" показаны красным цветом)

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
                $this->data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));
$this->data['price2'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), 'BYN');
            } else {
                $this->data['price'] = false;
$this->data['price2'] = false;
            }

 
В файл tpl:
 

<div class="price"><?php echo $text_price; ?>
        <?php if (!$special) { ?>
        <?php echo $price; ?> (или <?php echo $price2; ?>)
        <?php } else { ?>
        <span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>

 
Как-то так:
 
post-694191-0-39237700-1464729231_thumb.png
 
 
Так что, дорогие белорусы, правим код и ставим плюсы Chu за его терпение и помощь.....
Змінено користувачем Lilya
  • +1 4
Надіслати
Поділитися на інших сайтах


Ну.. Я показал метод как делать, а Вы умничка, Обожаю таких, - хоть на фото и блондинка :) :) :)

Надіслати
Поділитися на інших сайтах

Так все-таки как сделать?

Создать вторую валюту, указать ее курс 0,0001.

Но ни в карточках, ни на главной странице не видно двух валют. Все равно одна старая.

Что надо еще сделать для отображения 2-х валют?

 

В РБ почти все используют в админке цены в $, поэтому для тех у кого в $ стоит цена - нужно ставить текущий курс деленный на 10.000. У меня вышло 2,05

 

А так большое спасибо за инфу, очень пригодилась.

Змінено користувачем monk
Надіслати
Поділитися на інших сайтах


Получилось! :-)

Но только после "танцов с бубном"...

Итак...

В контроллер (только в карточку товара. Думаю покупателям будет достаточно для понимания):

("танцы" показаны красным цветом)

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {

$this->data['price'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')));

$this->data['price2'] = $this->currency->format($this->tax->calculate($product_info['price'], $product_info['tax_class_id'], $this->config->get('config_tax')), 'BYN');

} else {

$this->data['price'] = false;

$this->data['price2'] = false;

}

В файл tpl:

<div class="price"><?php echo $text_price; ?>

<?php if (!$special) { ?>

<?php echo $price; ?> (или <?php echo $price2; ?>)

<?php } else { ?>

<span class="price-old"><?php echo $price; ?></span> <span class="price-new"><?php echo $special; ?></span>

Как-то так:

attachicon.gifБезымянный.png

Так что, дорогие белорусы, правим код и ставим плюсы Chu за его терпение и помощь.....

Cделал все так и такая вот ошибка

(или Notice: Undefined variable: price2 in /home/сайт/public_html/сайт.by/vqmod/vqcache/vq2-catalog_view_theme_bigdesdigital_template_product_product.tpl on line 122)

версия 1.5.5.

Змінено користувачем belaflora
Надіслати
Поділитися на інших сайтах


Cделал все так и такая вот ошибка

(или Notice: Undefined variable: price2 in /home/сайт/public_html/сайт.by/vqmod/vqcache/vq2-catalog_view_theme_bigdesdigital_template_product_product.tpl on line 122)

версия 1.5.5.

Вы наверное в product.php начиная с 424 вставлять начали, а нужно с 325-ой строки

Змінено користувачем teslaS
Надіслати
Поділитися на інших сайтах


Если кому интересно, вторая цена в список товаров.

 

В catalog-controller-category-category.php 

начиная примерно с 235-ой строки

if (($this->config->get('config_customer_price') && $this->customer->isLogged()) || !$this->config->get('config_customer_price')) {
$price = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')));
$price2 = $this->currency->format($this->tax->calculate($result['price'], $result['tax_class_id'], $this->config->get('config_tax')), 'BYN');
} else {
$price = false;
$price2 = false;
}

 

начиная примерно с 261-ой строки

$this->data['products'][] = array(
'product_id' => $result['product_id'],
'thumb' => $image,
'name' => $result['name'],
'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, 300) . '..',
'price' => $price,
'price2' => $price2,
'special' => $special,
'tax' => $tax,
'rating' => $result['rating'],
'reviews' => sprintf($this->language->get('text_reviews'), (int)$result['reviews']),
'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
);

 

в  catalog-view-theme-default-template-product-product.php

<div class="price">
        <?php if (!$product['special']) { ?>
        <?php echo $product['price']; ?><br>(<?php echo $product['price2']; ?>)
        <?php } else { ?>
Змінено користувачем teslaS
Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз

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

Important Information

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