Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

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


melnykserhiy
 Поделиться

Рекомендованные сообщения

Здраствуйте всем, прошу помочь в следующим задании, не могу понять как работают Белорусские валюты на магазине 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 недели спустя...

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

Создать вторую валюту, указать ее курс 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
Ссылка на комментарий
Поделиться на других сайтах


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

вечером посмотрю, не помню  с какой строки вставил, попробую - отпишусь

Ссылка на комментарий
Поделиться на других сайтах


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

 

В 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
Ссылка на комментарий
Поделиться на других сайтах


точнее 

 

в  catalog-view-theme-default-template-product-category.tpl

<div class="price">
        <?php if (!$product['special']) { ?>
        <?php echo $product['price']; ?><br>(<?php echo $product['price2']; ?>)
        <?php } else { ?>
Ссылка на комментарий
Поделиться на других сайтах


Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.