Плагин показывает еще одну или еще много цен для каждого продукта в Webasyst Shop-Script
Показывает столько цен, сколько id валют вы ему укажете.
Выводит цены согласно шаблону и форматированию вашей валюты из админ-панели и каждая цена имеет свой класс стиля (.cena1, .cena2….. )
Установка плагина:
- Файл function.cena.php размещаем в папке /kernel/includes/smarty/plugins
<?php function smarty_function_cena( $params, &$smarty ) { $disp=''; $sql='SELECT Price FROM SC_products WHERE productID="'.$params['pid'].'"'; if($r=mysql_query($sql)){ $res=mysql_fetch_assoc($r); $price=$res['Price']; } $curr=explode(',',$params['curr']); $a=1; foreach ($curr as $d){ $sql='SELECT * FROM SC_currency_types WHERE CID="'.$d.'"'; if($r=mysql_query($sql)){ $res=mysql_fetch_assoc($r); $curs=$res['currency_value']; $nprice=round($curs*$price,2); if($res['thousands_delimiter']=='_') $res['thousands_delimiter']=' '; $nprice=number_format($nprice,$res['decimal_places'],$res['decimal_symbol'],$res['thousands_delimiter']); $nprice=str_replace('{value}',$nprice,$res['display_template_ru']); $disp.='<div class="cena'.$a.'">'.$nprice.'</div>'; } $a++; } return $disp; } ?>
- в папке /published/SC/html/scripts/templates/frontend в файле
product_brief.html (карточка товара на странице категории) там где хотите выводить цены, например внутри блока
<div class=»prdbrief_price»>
вызываем плагин {cena pid=`$product_info.productID` curr=’9,7′}
где pid – это ID продукта, curr – перечень id валют, разделенный запятыми. - в файле product_list.html (это списки продуктов) {cena pid=`$_product.productID` curr=’9,7′}
- в файле product_price.html (вывод цены на странице продукта) {cena pid=`$product_info.productID` curr=’9,7′}
Пример использования ts.co.ua
Похожие записи:
- Бренды в Webasyst Shop-Script
- книга отзывов для webasyst shop-script
- Горячее предложение от WebComplIT
- Руководство программиста Webasyst Shop-Script
- 25% скидки на скрипты Webasyst
29 комментариев на «“Две цены в WA Shop-Script”»
Добавить комментарий
В данном фрагменте текста страницы моего сайта я хочу продавать контекстные ссылки







Здравствуйте
Подскажите плз, а как выяснить id валют?
В выпадающем списке валют value для каждой валюты – это ее id
Сделал все как написано – результата нет
пробую на localhoste
На сервере – все работает.
ОГРОМНОЕ СПАСИБО
Поспешил я…
Выдает 2-е цены на главной, но… Выдает так: 120 грн. $0.00, хотя, курс выставлен (правда, убран выпадающий список выбора валют)
На странице (расширенного) описания продукта – вообще только одна цена – в грн.
Ну в списке товаров, когда страница начинает грузится – подгружаются 2-е цены – грн. и $, а когда, страница загрузится, то, выдает это – http://img56.imageshack.us/i/productbrief.gif/
Артем, помогите «добить» до конца плз
В общем, перепробовал и так и так – у меня не работает
перемнные (такие как $product_info.productID) пишутся не в одинарных кавычках ‘ а внутри знаков « (не знаю как они называются)
))
на клавиатуре вместе с буквой Ё
парсер немного съел комментарий – но смысл понятен
Спасибо за отличную помощь…
В место того, чтобы чем-то помочь/объяснить/подсказать, проще всего взять и удалить мои комментарии и, поставить мои вопросы в игнор…
Молодец – так держать…
у тебя все в пордке? а кому я ответил если не тебе
ты не правильно переменные прописал. и еще и хамишь у меня в блоге.
больше ответов тебе от меня не будет – всего доброго
Я абсолютно не хотел тебе хамить – у меня, кроме моего «спасибо», и твоего ответа про мое «хамство», больше ничего нет. Как тогда мне воспринимать?
надо так
{cena pid=`$product_info.productID` curr=’9,7′}а у тебя так
{cena pid='$product_info.productID' curr=’9,7′}Ага, вот де собака порылась… Вся проблема в кавычках…
СПАСИБО!!!! и сорри за непонятку – реально всех комментов нет…
Можно сказать, что заработало, но, есть 2-а вопроса:
1) когда подгружается страница, то валюты отображаются так, как и должны, но, как только страница загрузилась, все валюты, кроме первой!, исчезают… Из-за чего такое может быть?
2) не пойму, в какое именно место, в product_price.html нужно прописать {cena pid=`$product_info.productID` curr=’9,6,7′}…?
Тыкал уже, куда только можно… Безрезультатно…
уберите цену из-под класса prdbrief_price и totalPrice
там цены подгружаются ява скриптом и обновляются при изменении доп. характеритик
по второму пункту не могу ничего подсказать
Все же я «дотыкался»
В файле product_price.html, ищем {$product_info.PriceWithUnit} и заменяем на {cena pid=`$product_info.productID` curr=’9,7′}
Все заработало – ОГРОМНОЕ СПАСИБО.
P. S.
Сорри за непонятку
пожалуйста
Для меня удобно вести учет товара в $, соответственно базовая валюта та же…сейчас у товара 2 цены в у.е и грн.
При оформлении заказа, клиент видит только долларовую цену – это весьма не удобно….стоимость доставки тоже в у.е.
Как это подправить?
- можно ли вслед за ценой в у.е. поставить результат формулы типа: (цена в грн.)= (цена в $) * (курс)
или базовую поставить в у.е. а в витрине по умолчанию грн. ?
http://forum.webasyst.ru/viewtopic.php?id=5168
Артем, Вы можете подсказать, как правильно реализовать, несколько цен (Ваш вариант полностью работает – спасибо) и, если нет цены у товара, т. е., цена = 0, то, выводилась надпись: Уточняйте у менеджера.
Есть вариант, который работает на «чистом WA»:
В /published/SC/html/scripts/templates/frontend/product_detailed.tpl.html заменить
{if $product_info.Price <= 0}
n/a
{else}
на
{if $product_info.Price <= 0}
Уточняйте цену у менеджера
{else}
Но, когда на сайте используется Ваш вариант (несколько цен), то, вариант с "Уточняйте цену у менеджера" не работает…
после строки
$price=$res['Price'];
вставьте
if($price==0)
return translate(‘fraza’);
а в админ части добавьте строку локализации с id «fraza»
if($price==0)
return translate(‘txtNotPrice’);
вставлять нужно в function.cena.php в папке /kernel/includes/smarty/plugins ?
Если да, то не сработало
txtNotPrice – это из локализации, вместо Вашей ‘fraza’
должно работать
Вот мой код файла function.cena.php в папке /kernel/includes/smarty/plugins
<?php
function smarty_function_cena( $params, &$smarty )
{
$disp='';
$sql='SELECT Price FROM SC_products WHERE productID="'.$params['pid'].'"';
if($r=mysql_query($sql)){
$res=mysql_fetch_assoc($r);
$price=$res['Price'];
if($price==0)
return translate('txtNotPrice');
}
$curr=explode(',',$params['curr']);
$a=1;
foreach ($curr as $d){
$sql='SELECT * FROM SC_currency_types WHERE CID="'.$d.'"';
if($r=mysql_query($sql)){
$res=mysql_fetch_assoc($r);
$curs=$res['currency_value'];
$nprice=round($curs*$price,2);
if($res['thousands_delimiter']=='_') $res['thousands_delimiter']=' ';
$nprice=number_format($nprice,$res['decimal_places'],$res['decimal_symbol'],$res['thousands_delimiter']);
$nprice=str_replace('{value}',$nprice,$res['display_template_ru']);
$disp.='’.$nprice.»;
}
$a++;
}
return $disp;
}
?>
специально проверил. все работает
там нечему ломаться. изменения минимальные
Блин… вот хоть убей, а не работает… Что хоть могет быть из-за чего может не работать?
там нечему ломаться. изменения минимальные