Форум русской поддержки Joomla!® CMS
09.12.2016, 00:04:10 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Деноминация в Беларуси - нужно настроить в VirtueMart 2 цены!

 (Прочитано 689 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« : 27.06.2016, 19:19:14 »

Добрый день!
Прошу помочь!
С 1 июля в Беларуси отрезают 4 ноля в рубле, и требуют до конца года указывать 2 цены на сайтах - новую и  старую!
Как сделать так, чтобы в карточке товара отображалось 2 цены?
Joomla! 2.5.27
VirtueMart 2.0.20b
Спасибо заранее за ответ!
« Последнее редактирование: 28.06.2016, 13:36:51 от Agassi116 » Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #1 : 27.06.2016, 22:42:53 »

Предположим ты выводишь цены в новом формате (предварительно их переписав) вот такой стандартной конструкцией

Код:
if (!empty($this->product->prices['salesPrice'])) {
  echo $this->currency->createPriceDiv ( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices );
}

ниже выведи ее же, умноженную на 10000

Код:
if (!empty($this->product->prices['salesPrice'])) {
echo $this->currency->createPriceDiv ( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices );
$myoldprice = $this->product->prices['salesPrice'] * 10000;
echo '<span class="oldrub">'.$myoldprice.' руб</span>';
}

Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #2 : 28.06.2016, 11:53:51 »

Спасибо за отзыв.
Это все надо править в components\com_virtuemart\views\productdetails\tmpl\default_showprices.php
Или еще где-то?
« Последнее редактирование: 28.06.2016, 13:34:06 от Agassi116 » Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #3 : 29.06.2016, 01:24:17 »

Попробовал - не получается Sad
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #4 : 29.06.2016, 22:23:28 »

шаблоны VM могут быть переопределены в папке с глобальным шаблоном
/templates/ххх/html/com_virtuemart
Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #5 : 29.06.2016, 22:38:07 »

СПАСИБО!
Все вроде получается - а как в этом поле, где вторая цена еще вставить строку "цена до деноминации"
И еще - можно ли сделать так, чтобы эта цена отображалась и в корзине в том числе и на главной странице, где выведены все товары раздела?
« Последнее редактирование: 29.06.2016, 22:43:03 от Agassi116 » Записан
flyingspook
Moderator
*****

Репутация: +226/-9
Offline Offline

Сообщений: 3537


« Ответ #6 : 30.06.2016, 00:26:31 »

СПАСИБО!
Все вроде получается - а как в этом поле, где вторая цена еще вставить строку "цена до деноминации"
И еще - можно ли сделать так, чтобы эта цена отображалась и в корзине в том числе и на главной странице, где выведены все товары раздела?
так
Код
if (!empty($this->product->prices['salesPrice'])) {
echo $this->currency->createPriceDiv ( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices );
$myoldprice = $this->product->prices['salesPrice'] * 10000;
echo 'цена до деноминации: <span class="oldrub">'.$myoldprice.' руб</span>';
}
Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #7 : 30.06.2016, 00:48:26 »

Отлично! Всё получилось, но есть одно но, как отобразить вторую цену не только в карточке товара, а в общем списке продуктов? Там где категории слева , а все продукты справа с ценами.
И есть ли возможность дублировать цены в том числе и в корзине при заказе с возможностью подсчета цена и в новых и в старых.
Спасибо заранее! Очень помогли!
« Последнее редактирование: 30.06.2016, 10:54:26 от Agassi116 » Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #8 : 30.06.2016, 12:46:29 »

аналогичным образом править шаблоны соответствующих модулей, корзины
Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #9 : 30.06.2016, 17:59:06 »

Я правильно понимаю - этот этот файл ? /templates/хххl/html/com_virtuemart/cart
Если так, то где тут что править?  !

Показать текстовый блок
Покажите пожалуйста мне недалекому человеку где тут что "допиливать" ?
Спасибо!
« Последнее редактирование: 30.06.2016, 20:06:12 от flyingspook » Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #10 : 01.07.2016, 22:59:06 »

не скажу конкретный номер строки, т.к. он в цитировании не обозначается, но ищи вот это
Код
 echo $this->currencyDisplay->createPriceDiv ('salesPrice', '', $this->cart->pricesUnformatted[$pkey], FALSE, FALSE, $prow->quantity)
 
это создание слоя с ценой
конкретно цена (цифра) – это $this->cart->pricesUnformatted[$pkey] - т.е. это умножай на 10000 и выводи, где надо
Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #11 : 03.07.2016, 13:06:16 »

Строку эту нашел, но ничего не изменилось, я так понимаю делать надо так
Код:
echo $this->currencyDisplay->createPriceDiv ('salesPrice', '', $this->cart->pricesUnformatted[$pkey], FALSE, FALSE, $prow->quantity)
if (!empty($this->cart->pricesUnformatted[$pkey])) {
echo $this->currency->createPriceDiv ( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices );
$myoldprice = $this->cart->pricesUnformatted[$pkey] * 10000;
echo 'цена до деноминации: <span class="oldrub">'.$myoldprice.' руб</span>';
}
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #12 : 03.07.2016, 15:41:17 »

не, похоже, что не нашел
echo $this->currency->createPriceDiv ( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices );
$myoldprice = $this->cart->pricesUnformatted[$pkey] * 10000;

разве переменная одинаковая?
это же корзина, там много слоев с ценой, и ты ковыряешь не тот
Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #13 : 05.07.2016, 00:36:55 »

Я совсем запутался Sad
Извините, я не так давно начал осваивать, пытаться осваивать такого рода действия.
Если можно разжевать для нуба?
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #14 : 05.07.2016, 14:12:50 »

дай ссылку на сайт. надо посмотреть, какие типы цен ты выводишь в корзину (цена до налогов, налог, величина дисконта, окончательная цена, сумма цен товаров в корзине и т.д)
Записан
Ashaurock
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 22



« Ответ #15 : 05.07.2016, 17:37:40 »

Не знаю подойдет ли вариант для 2 версии, сегодня делал клиенту для 3-й.

Создаете новую валюту, после чего ставите ее основной, в старом выставляете соответсвующий курс 1/10000, прописываете верно знаки после десятичных. Способ работает как часики. Новые товары добавляем уже в новой валюте.

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

P.S. Есть еще более замороченный вариант, можно все цены выгрузить с помощью CVSI Pro в формать cvsi там с помощью экселя быстро передвинуть запятую на 4 символа, после чего загрузить новые цены.

Править файлы компонента, модулей или шаблона последнее дело...
Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #16 : 05.07.2016, 17:50:52 »

дай ссылку на сайт. надо посмотреть, какие типы цен ты выводишь в корзину (цена до налогов, налог, величина дисконта, окончательная цена, сумма цен товаров в корзине и т.д)
Vitamin-sport.by
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #17 : 05.07.2016, 19:34:44 »

судя по верстке, у тебя компонент One Page Checkout
т.е. ты не тот шаблон пытаешься править
/components/com_onepage/themes - вот тут.
какая именно тема включена, надо посмотреть в админке в настройках компонента

нужно содержимое файла components/com_onepage/themes/ТЕМА/overrides/basket.html.php
Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #18 : 06.07.2016, 21:30:09 »

components/com_onepage/themes/ТЕМА/overrides/basket.html.php
Там не нашел своей темы Sad((
Вот закинул содержимое templates/имя шаблона по ссылке:
https://yadi.sk/d/pNWOH-Jsswv7v
Если это поможет конечно...
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #19 : 06.07.2016, 21:52:12 »

вместо "ТЕМА" должно быть конкретное название папки с темой, какая это папка нужно смотреть в настройках компонента One Page Checkout
Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #20 : 07.07.2016, 16:34:22 »


Если я все правильно сделал, то содержимое basket.html.php  вот такое:

Показать текстовый блок
Что прикажете здесь ровнять?
Спасибо заранее и извините за мою некомпетентность...
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #21 : 08.07.2016, 14:09:18 »

пардон, обманул тебя. в этом файле формируется только верстка табличной части, цена формируется в другом месте
файл components/com_onepage/helpers/basket.php

строка номер 533
Код
$product['product_price'] = $currencyDisplay->createPriceDiv($product_price_display,'', $price,false,true, 1);

после нее вставь
Код
$myoldprice = $price[$product_price_display] * 10000;
$product['product_price'] .= 'цена до деноминации: <span class="oldrub">'.$myoldprice.' руб</span>';
Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #22 : 08.07.2016, 16:31:58 »

Супер!  Cheesy
Нашел там такую строку
Код:
$product['product_price'] = $currencyDisplay->createPriceDiv($product_price_display,'', $price,false,false, 1);
и вставил после нее
Код:
$myoldprice = $price[$product_price_display] * 10000;
$product['product_price'] .= 'цена до деноминации: <span class="oldrub">'.$myoldprice.' руб</span>';

Получилось вот так
Как сделать еще, чтобы сумма тоже сбивалась со старой ценой? Я указал место стрелкой

И еще, как сделать отображение 2х цен в общем каталоге?
Показать текстовый блок

СПАСИБО ОГРОМНОЕ ЗА ТАКУЮ ПОМОЩЬ!
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #23 : 08.07.2016, 17:29:45 »

файл components/com_onepage/helpers/basket.php
строка 671 (+- несколько строк из-за ранее вставленного кода)

Код
$product['subtotal'] = $currencyDisplay->createPriceDiv($product_price_display,'', $copy,false,true, 1);
 

после нее
Код
$myoldtotal = $copy[$product_price_display] * 10000;
$product['subtotal'] .= 'цена до деноминации: <span class="oldrub">'.$myoldtotal.' руб</span>';

файл templates/ххх/html/com_virtuemart/category/default.php
номер строки не скажу, т.к. зависит от шаблона

строка примерно такая
Код
echo $this->currency->createPriceDiv ( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices );
 

после нее
Код
$myoldprice = $this->product->prices['salesPrice'] * 10000;
echo 'цена до деноминации: <span class="oldrub">'.$myoldprice.' руб</span>';
« Последнее редактирование: 08.07.2016, 19:20:28 от Liss » Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #24 : 08.07.2016, 19:23:38 »

По корзине сделал, получилось вот так
Стрелкой обозначил где еще надо добавить.

Цитировать
echo $this->currency->createPriceDiv ( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices );
не нашел там Sad
файл templates/ххх/html/com_virtuemart/category/default.php :
Показать текстовый блок
Может ткнете носом?  !
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #25 : 08.07.2016, 19:47:04 »

по цене в категории, строка 291
Код
echo $this->currency->createPriceDiv ('salesPrice', '', $product->prices);

после нее, как и ранее писал
Код
$myoldprice = $this->product->prices['salesPrice'] * 10000;
echo 'цена до деноминации: <span class="oldrub">'.$myoldprice.' руб</span>';

выходит, не ту промежуточную стоимость я ковырял
строка примерно 924
Код
$order_total_display = $currencyDisplay->createPriceDiv('billTotal','', $ref->cart->prices,false,false, 1);

после нее
Код
$myoldtotal = $ref->cart->prices['billTotal'] * 10000;
$order_total_display .= 'цена до деноминации: <span class="oldrub">'.$myoldtotal.' руб</span>';
Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #26 : 08.07.2016, 20:01:31 »

По категориям отображение строки "до деноминации" есть, а вот сумма там ноль
Показать текстовый блок


По корзине весьма интересно - строка "до деноминации"  и сумма в старых рублях моргает на 1 секунду и исчезает  Shocked
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #27 : 08.07.2016, 20:15:59 »

категория
this-> сотри
Код
$myoldprice = $product->prices['salesPrice'] * 10000;
echo 'цена до деноминации: <span class="oldrub">'.$myoldprice.' руб</span>';
Записан
Agassi116
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Сообщений: 18


« Ответ #28 : 08.07.2016, 20:21:14 »

По категориям все стало отлично!
Цена отображается !

Круто!

А что с корзиной ?...
Вы можете сами на сайт зайти, положить вещь в корзину и как только вы туда попадете - внимательно смотрите как отображается строка и дальше исчезает - через F5 увидите...
Записан
Liss
Давно я тут
****

Репутация: +9/-0
Offline Offline

Сообщений: 207


« Ответ #29 : 08.07.2016, 20:29:44 »

что касается корзины, там слоем динамически управляет ява скрипт. это, похоже, связано с автоматическим пересчетом итоговой стоимости при выборе доставки
у тебя только самовывоз, попробуй в basket.html.php
удалить id="tt_total_basket" (в строке 201)

очень рекомендую записывать, где и что добавил/изменил/удалил. потом потребуется вернуть, как было, замучаешься искать и вспоминать
Записан
Страниц: [1] 2  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet