EasyWeb.org.ua
  • Главная
    • shop-script
    • акции
    • php
    • javascript
    • joomla
    • wordpress
    • docs
    • internet
    • объявления
    • other
  • Вопрос ответ
  • Портфолио
  • Модули
  • Обратная связь
  • О блоге
    • Каталог сайтов
    • Карта сайта
Главная » shop-script » Две цены в WA Shop-Script
Мар13 46

Две цены в WA Shop-Script

Опубликовано в shop-script

Плагин показывает еще одну или еще много цен для каждого продукта в Webasyst Shop-Script

Показывает столько цен, сколько id валют вы ему укажете.

Выводит цены согласно шаблону и форматированию вашей валюты из админ-панели и каждая цена имеет свой класс стиля (.cena1, .cena2….. )

Установка плагина:

  1. Файл function.cena.php размещаем в папке /kernel/includes/smarty/plugins


    <?php
    function smarty_function_cena( $params, &amp;$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;
      }
    ?>
  2. в папке /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 валют, разделенный запятыми.
  3. в файле product_list.html (это списки продуктов) {cena pid=`$_product.productID` curr=’9,7′}
  4. в файле product_price.html (вывод цены на странице продукта) {cena pid=`$product_info.productID` curr=’9,7′}

Пример использования ts.co.ua

Метки: shop-script, webasyst, две цены, плагин

« Предыдущая запись

25% скидки на скрипты Webasyst

Следующая запись»

Руководство программиста Webasyst Shop-Script



Просмотров: 2 770

Похожие записи:

  • Автоматическое заполнение рекомендуемых товаров
  • Бренды в Webasyst Shop-Script
  • книга отзывов для webasyst shop-script
  • Webasyst Shop-Script новгодняя распродажа
  • Последние отзывы на главной

46 Коммент.

  1. Dgikar | 7 апреля 2010 at 12:16

    Здравствуйте
    Подскажите плз, а как выяснить id валют?

    Ответить
    • Артем | 7 апреля 2010 at 12:50

      В выпадающем списке валют value для каждой валюты — это ее id

      Ответить
  2. Dgikar | 7 апреля 2010 at 15:34

    Сделал все как написано — результата нет :(

    Ответить
  3. Dgikar | 7 апреля 2010 at 15:36

    пробую на localhoste

    Ответить
  4. Dgikar | 7 апреля 2010 at 15:47

    На сервере — все работает.
    ОГРОМНОЕ СПАСИБО :)

    Ответить
  5. Dgikar | 7 апреля 2010 at 16:43

    Поспешил я… :(
    Выдает 2-е цены на главной, но… Выдает так: 120 грн. $0.00, хотя, курс выставлен (правда, убран выпадающий список выбора валют)

    На странице (расширенного) описания продукта — вообще только одна цена — в грн.

    Ну в списке товаров, когда страница начинает грузится — подгружаются 2-е цены — грн. и $, а когда, страница загрузится, то, выдает это — http://img56.imageshack.us/i/productbrief.gif/

    Артем, помогите «добить» до конца плз

    Ответить
  6. Dgikar | 9 апреля 2010 at 16:31

    В общем, перепробовал и так и так — у меня не работает :(

    Ответить
    • Артем | 9 апреля 2010 at 21:50

      перемнные (такие как $product_info.productID) пишутся не в одинарных кавычках ‘ а внутри знаков « (не знаю как они называются)
      на клавиатуре вместе с буквой Ё :) ))

      Ответить
  7. Артем | 9 апреля 2010 at 21:51

    парсер немного съел комментарий — но смысл понятен

    Ответить
  8. Dgikar | 10 апреля 2010 at 1:57

    Спасибо за отличную помощь…

    В место того, чтобы чем-то помочь/объяснить/подсказать, проще всего взять и удалить мои комментарии и, поставить мои вопросы в игнор…

    Молодец — так держать…

    Ответить
    • Артем | 10 апреля 2010 at 11:36

      у тебя все в пордке? а кому я ответил если не тебе
      ты не правильно переменные прописал. и еще и хамишь у меня в блоге.

      больше ответов тебе от меня не будет — всего доброго

      Ответить
      • Dgikar | 10 апреля 2010 at 15:23

        Я абсолютно не хотел тебе хамить — у меня, кроме моего «спасибо», и твоего ответа про мое «хамство», больше ничего нет. Как тогда мне воспринимать?

        Ответить
  9. Артем | 10 апреля 2010 at 18:45

    надо так

    {cena pid=`$product_info.productID` curr=’9,7′}

    а у тебя так

    {cena pid='$product_info.productID' curr=’9,7′}
    Ответить
    • Dgikar | 11 апреля 2010 at 4:02

      Ага, вот де собака порылась… Вся проблема в кавычках…

      СПАСИБО!!!! и сорри за непонятку — реально всех комментов нет…

      Можно сказать, что заработало, но, есть 2-а вопроса:
      1) когда подгружается страница, то валюты отображаются так, как и должны, но, как только страница загрузилась, все валюты, кроме первой!, исчезают… Из-за чего такое может быть?

      2) не пойму, в какое именно место, в product_price.html нужно прописать {cena pid=`$product_info.productID` curr=’9,6,7′}…?
      Тыкал уже, куда только можно… Безрезультатно… :(

      Ответить
  10. Артем | 11 апреля 2010 at 13:31

    уберите цену из-под класса prdbrief_price и totalPrice
    там цены подгружаются ява скриптом и обновляются при изменении доп. характеритик

    по второму пункту не могу ничего подсказать

    Ответить
    • Dgikar | 12 апреля 2010 at 20:36

      Все же я «дотыкался» :)

      В файле product_price.html, ищем {$product_info.PriceWithUnit} и заменяем на {cena pid=`$product_info.productID` curr=’9,7′}

      Ответить
    • Dgikar | 12 апреля 2010 at 20:37

      Все заработало — ОГРОМНОЕ СПАСИБО.

      P. S.
      Сорри за непонятку

      Ответить
    • Юрий | 21 апреля 2011 at 12:02

      Здравствуйте!

      Делал все по инструкциям и столкнулся с проблемой — сначала появляется цена а потом исчезает.. убрал классы но в результате получил — 0.00 грн. $0.00.

      Помогите, пожалуйста, пока я не сошел с ума..
      Вы не могли бы мне выслать на почту ваши файлы:
      product_brief.html
      product_list.html
      product_price.html

      2broken2 собака жмейл ком

      огромнейшее спасибо!
      с уважением.
      Юрий

      Ответить
      • Артем | 21 апреля 2011 at 13:22

        не могу. таких сейчас нет в наличии с этой доработкой
        чтобы цена не перерисовывалась, нужно убрать классы

        если показывать 0, то где-то ошибка в запросе
        нужно добавить
        echo mysql_error();
        перед return
        это покажет ошибку если она в sql запросе

        Ответить
  11. Артем | 12 апреля 2010 at 20:42

    пожалуйста :)

    Ответить
  12. LucaS | 29 апреля 2010 at 15:22

    Для меня удобно вести учет товара в $, соответственно базовая валюта та же…сейчас у товара 2 цены в у.е и грн.
    При оформлении заказа, клиент видит только долларовую цену — это весьма не удобно….стоимость доставки тоже в у.е.

    Как это подправить?

    - можно ли вслед за ценой в у.е. поставить результат формулы типа: (цена в грн.)= (цена в $) * (курс)

    Ответить
  13. LucaS | 29 апреля 2010 at 15:57

    или базовую поставить в у.е. а в витрине по умолчанию грн. ?

    Ответить
    • Артем | 29 апреля 2010 at 16:00

      http://forum.webasyst.ru/viewtopic.php?id=5168

      Ответить
  14. Dgikar | 24 июля 2010 at 20:10

    Артем, Вы можете подсказать, как правильно реализовать, несколько цен (Ваш вариант полностью работает — спасибо) и, если нет цены у товара, т. е., цена = 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}

    Но, когда на сайте используется Ваш вариант (несколько цен), то, вариант с "Уточняйте цену у менеджера" не работает…

    Ответить
    • Артем | 24 июля 2010 at 22:28

      после строки
      $price=$res['Price'];
      вставьте
      if($price==0)
      return translate(‘fraza’);

      а в админ части добавьте строку локализации с id «fraza»

      Ответить
      • Dgikar | 25 июля 2010 at 10:09

        if($price==0)
        return translate(‘txtNotPrice’);
        вставлять нужно в function.cena.php в папке /kernel/includes/smarty/plugins ?
        Если да, то не сработало :(
        txtNotPrice — это из локализации, вместо Вашей ‘fraza’

        Ответить
        • Артем | 25 июля 2010 at 11:19

          должно работать

          Ответить
  15. Dgikar | 25 июля 2010 at 11:55

    Вот мой код файла 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;
    }
    ?>

    Ответить
    • Артем | 26 июля 2010 at 15:02

      специально проверил. все работает

      там нечему ломаться. изменения минимальные

      Ответить
      • Dgikar | 27 июля 2010 at 1:56

        Блин… вот хоть убей, а не работает… Что хоть могет быть из-за чего может не работать?

        Ответить
        • Артем | 27 июля 2010 at 8:05

          там нечему ломаться. изменения минимальные

          Ответить
  16. Николай | 3 августа 2010 at 14:20

    Подскажите, а как вывести 2 цены в одну строку, через разделитель » / » ?

    Ответить
    • Артем | 5 августа 2010 at 10:52

      строчку

      $disp.='<div class="cena'.$a.'">'.$nprice.'</div>';

      можно заменить ее на

      $disp.='<span class="cena'.$a.'">'.$nprice.'</span>';

      тогда цены будут в одну строчку. а разделители уже добавляйте куда нравится

      Ответить
      • Николай | 5 августа 2010 at 11:22

        Спасибо, все получилось!

        Ответить
  17. farique | 2 февраля 2011 at 12:40

    В код попал «&» вместо «&» =)

    Ответить
  18. farique | 2 февраля 2011 at 12:41

    В код попал «amp;» вместо «&» =)

    Ответить
  19. one | 5 марта 2011 at 10:52

    farique, вот спасибо, а то никак не могу понять в чём дело.

    Артем, а вам большое спасибо за интересные фитчи. давно пользуюсь!

    Ответить
  20. Евгений | 5 апреля 2011 at 7:50

    Артем, добрый день.
    Меня интересует решение похожей задачи.
    Как бы переделать ваш плагин так, чтобы выводились несколько цен одной валюты?
    Пример цен на товар:
    Розница, Опт, Дилер, Супер дилер, Мега дилер
    Очень жду ответа.

    Ответить
    • Артем | 5 апреля 2011 at 8:08

      если их можно рассчитать, тот тут ничего сложно. нужно будет просто сделать вывод новых цен
      если их нужно вводить для каждого товара, тот тут немного сложнее — с добавлением полей в таблицу товара.

      Ответить
  21. Евгений | 5 апреля 2011 at 9:01

    Т.е. это можно решить добавлением дополнительных полей к таблице.
    А как организовать выборку из БД с помощью Smarty?

    Ответить
    • Артем | 5 апреля 2011 at 9:42

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

      Ответить
  22. Евгений | 5 апреля 2011 at 10:48

    А примерчик можно какой-нть?
    PHP я знаю, не знаю как со Smarty работать.

    Ответить
    • Артем | 5 апреля 2011 at 10:51

      Все примеры описаны на этом сайте, в руководстве http://easyweb.org.ua/shop-script/manual4/ или на сайте смарти http://www.smarty.net/
      там есть толковая документация

      Ответить
  23. Alex | 14 декабря 2011 at 15:57

    у меня ошибка
    Parse error: syntax error, unexpected T_STRING, expecting T_VARIABLE in ……
    kernel/includes/smarty/plugins/function.cena.php on line 3

    Ответить
  24. Alex | 14 декабря 2011 at 16:52

    поблема
    вызываю
    {cena pid=`$product_info.productID` curr=’6,9’ }
    выводит

    18,213.10 грн.
    то есть одну цену

    Ответить
  25. Alex | 15 декабря 2011 at 21:20

    спасибо все работает
    при копировании кодировка изменила символы

    Ответить

Оставить комментарий Отменить ответ

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*

*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="" highlight="">

  • Twitter
  • Facebook
  • Google
  • RSS

| |

Последние комментарии

  • Артем к записи Оплата через LiqPay для Shop-Script
  • Владимир к записи Оплата через LiqPay для Shop-Script
  • The Best к записи Убираем auxpage_ у дополнительныйх страниц
  • Андрей к записи Прием платежей по пластиковым картам в Украине
  • Ирина к записи Партнерская программа. Дорабатываем Webasyst Shop-Script

Самые комментируемые

  • Автоматическое заполнение рекомендуемых товаров (129)
  • дерево категорий по-своему (shop-script) (127)
  • Фильтры в Webasyst Shop-Script (61)
  • WP Cumulus для Shop-Script исправленный (58)
  • Оплата через LiqPay для Shop-Script (51)
  • WP Cumulus для Joomla и Shop-Script (46)
  • Две цены в WA Shop-Script (46)

Самые читаемые

  • Фильтры в Webasyst Shop-Script - 10 572 просмотров
  • дерево категорий по-своему (shop-script) - 9 317 просмотров
  • ввод даты, календарь javascript - 8 845 просмотров
  • Бренды в Webasyst Shop-Script - 6 331 просмотров
  • Автоматическое заполнение рекомендуемых товаров - 5 758 просмотров
  • «хочу в подарок» ВКонтакте для Shop-Script - 4 619 просмотров
  • Слайдер в списках продуктов - 4 179 просмотров

Архивы







Поддерживать ежемесячно с помощью Donutor

Свежие записи

  • Новый Год отменяется :(
  • Webasyst Shop-Script новгодняя распродажа
  • новый шаблон
  • BUBA 2011
  • Zend Framework Day 2011

друзья

  • at-home
  • Fisher — сотовые телефоны
  • WebAsyst
  • WebComplIT
  • Zdorovy.in.ua

Счетчики

www.megastock.ru Яндекс.Метрика

Мета

  • Войти
  • RSS записей
  • RSS комментариев
  • WordPress.org

© 2008-2012 EasyWeb.org.ua | Дизайн elegantthemes.com | Разработано на CMS WordPress

apple iphone 4 32gb