0 Пользователей и 1 Гость просматривают эту тему.
  • 31 Ответов
  • 2243 Просмотров
*

Agassi116

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

Liss

  • Захожу иногда
  • 238
  • 10 / 0
Предположим ты выводишь цены в новом формате (предварительно их переписав) вот такой стандартной конструкцией

Код
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

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Спасибо за отзыв.
Это все надо править в components\com_virtuemart\views\productdetails\tmpl\default_showprices.php
Или еще где-то?
« Последнее редактирование: 28.06.2016, 12:34:06 от Agassi116 »
*

Agassi116

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Попробовал - не получается :(
*

Liss

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

Agassi116

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

flyingspook

  • Moderator
  • 3590
  • 247 / 9
СПАСИБО!
Все вроде получается - а как в этом поле, где вторая цена еще вставить строку "цена до деноминации"
И еще - можно ли сделать так, чтобы эта цена отображалась и в корзине в том числе и на главной странице, где выведены все товары раздела?
так
Код: php
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

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

Liss

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

Agassi116

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

Спойлер
[свернуть]
Покажите пожалуйста мне недалекому человеку где тут что "допиливать" ?
Спасибо!
« Последнее редактирование: 30.06.2016, 19:06:12 от flyingspook »
*

Liss

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

Agassi116

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Строку эту нашел, но ничего не изменилось, я так понимаю делать надо так
Код
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

  • Захожу иногда
  • 238
  • 10 / 0
не, похоже, что не нашел
echo $this->currency->createPriceDiv ( 'salesPrice', 'COM_VIRTUEMART_PRODUCT_SALESPRICE', $this->product->prices );
$myoldprice = $this->cart->pricesUnformatted[$pkey] * 10000;

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

Agassi116

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Я совсем запутался :(
Извините, я не так давно начал осваивать, пытаться осваивать такого рода действия.
Если можно разжевать для нуба?
*

Liss

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

Ashaurock

  • Осваиваюсь на форуме
  • 23
  • 0 / 0
Не знаю подойдет ли вариант для 2 версии, сегодня делал клиенту для 3-й.

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

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

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

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

Agassi116

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
дай ссылку на сайт. надо посмотреть, какие типы цен ты выводишь в корзину (цена до налогов, налог, величина дисконта, окончательная цена, сумма цен товаров в корзине и т.д)
Vitamin-sport.by
*

Liss

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

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

Agassi116

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

Liss

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

Agassi116

  • Осваиваюсь на форуме
  • 16
  • 0 / 0

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

Спойлер
[свернуть]
Что прикажете здесь ровнять?
Спасибо заранее и извините за мою некомпетентность...
*

Liss

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

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

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

Agassi116

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
Супер!  :D
Нашел там такую строку
Код
$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

  • Захожу иногда
  • 238
  • 10 / 0
файл components/com_onepage/helpers/basket.php
строка 671 (+- несколько строк из-за ранее вставленного кода)

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

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

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

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

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

Agassi116

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
По корзине сделал, получилось вот так
Стрелкой обозначил где еще надо добавить.

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

Liss

  • Захожу иногда
  • 238
  • 10 / 0
по цене в категории, строка 291
Код: php
echo $this->currency->createPriceDiv ('salesPrice', '', $product->prices);

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

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

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

Agassi116

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
По категориям отображение строки "до деноминации" есть, а вот сумма там ноль
Спойлер
[свернуть]


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

Liss

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

Agassi116

  • Осваиваюсь на форуме
  • 16
  • 0 / 0
По категориям все стало отлично!
Цена отображается !

Круто!

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

Liss

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

очень рекомендую записывать, где и что добавил/изменил/удалил. потом потребуется вернуть, как было, замучаешься искать и вспоминать
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Скачать - Управление товарами в VirtueMart - в таблиц

Автор gartes

Ответов: 45
Просмотров: 9830
Последний ответ 17.05.2023, 14:53:27
от mansonfaust
Как сделать разделение цены по 3 разряда? Решено

Автор varella

Ответов: 13
Просмотров: 1278
Последний ответ 28.10.2022, 19:32:37
от marksetter
как изменить цену всем товарам в VirtueMart 3 ?

Автор ShamilHan

Ответов: 5
Просмотров: 2672
Последний ответ 11.03.2022, 21:12:37
от Zeobr
"Позвонить для запроса цены" не выводится

Автор Akeksandr

Ответов: 13
Просмотров: 1483
Последний ответ 10.01.2022, 16:54:33
от draff
AJAX поиск для VirtueMart 3.x (Скачать)

Автор gartes

Ответов: 19
Просмотров: 7623
Последний ответ 06.10.2021, 16:49:54
от skrepka22