Виджет С Ценой Товара

Доброго времени суток!



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

Что-то типа такого:

XXX руб. (заказать)

Больше никакой дополнительной информации не нужно…

Не, такого нет, обычно это делают партнёрские сети автоматически

Мне надо показать цену товара на своем сайте. Может из php можно куда-нибудь достучаться для получения цена товара по его id?

[quote name='Bat1' timestamp='1439367326' post='226471']

Мне надо показать цену товара на своем сайте. Может из php можно куда-нибудь достучаться для получения цена товара по его id?

[/quote]



У ну тогда можно товарный блок вставить в любое место, у товарного блока много шаблонов, есть вообще маленький, который можно ещё уменьшить.

Я пробовал как-то так сделать, но что-то не задалось…

А вообще информацию про виджеты, их разработку и использование можно где-то почитать?

[quote name='Bat1' timestamp='1439368587' post='226477']

Я пробовал как-то так сделать, но что-то не задалось…

А вообще информацию про виджеты, их разработку и использование можно где-то почитать?

[/quote]



Виджет или блок?



Виджет - это то что на другой сайт вставляется.



Можно посмотреть про виджет, разработки там нет особой:

http://www.youtube.com/watch?v=iU70cOGRefM&list=PL4okpC0OV7TS88GGVvE6svP0_6FxnoEI_&index=25



Про модификацию шаблонов и блоков можно посмотреть здесь:

http://www.youtube.com/playlist?list=PL4okpC0OV7TQmBjqBe6_PXM_S2xRDVrKa

Спасибо, ознакомлюсь…



Тут я ковырял свой модуль и столкнулся с такой проблемой: где-то можно узнать перечень переменных которые доступны в шаблонах smarty для различных блоков?

[quote name=‘Bat1’ timestamp=‘1439369827’ post=‘226480’]

Спасибо, ознакомлюсь…



Тут я ковырял свой модуль и столкнулся с такой проблемой: где-то можно узнать перечень переменных которые доступны в шаблонах smarty для различных блоков?

[/quote]



Во всех блоках доступны общие переменные, ну и в каждом блоке есть особые переменные, если они прописаны для блока, вся информацию есть в плейлисте “Разработка: модификация шаблонов”.



Для быстрого ознакомления, можно это глянуть:

http://www.youtube.com/watch?v=ogZ6BCkA070&index=26&list=PL4okpC0OV7TS88GGVvE6svP0_6FxnoEI_



Также есть, плейлист “Разработка: PHP” где есть видео о том как работают блоки.



Плюс на каждой странице есть Smarty переменные которые приходят из контроллера.



Плюс есть данные из сессии и корзины.



Так что тут лучше задачу расскажите, а я направление задам.

Что приходит в /design/themes/responsive/templates/addons/maash_design/hooks/products/price.tpl?



Задача. Для товаров с определенным кодом показать вместо нулевой цены строковую надпись.

[quote name=‘Bat1’ timestamp=‘1439637912’ post=‘226843’]

Что приходит в /design/themes/responsive/templates/addons/maash_design/hooks/products/price.tpl?



Задача. Для товаров с определенным кодом показать вместо нулевой цены строковую надпись.

[/quote]



Не знаю, что туда приходит :) Всё приходит, что есть на странице, вы наугад хуки выбираете?



Посмотрите вот это видео, тут нужно искать хуки на 98%:

Нет, не наугад. Этот файл как раз выводит цену. А мне нужно вместо нуля показать мою надпись для некоторых товаров (определенных $product.product_code). А вот как получить product_code в этом файле не понятно.

Сейчас я во всех шаблонах фронтэнда (а их не мало), в которых вызывается price.tpl обрамил вызов price.tpl в

<br /> if (мой товар)<br /> покажу сам;<br /> else<br /> вызвать price.tpl;<br />

Но если нужно будет добавить еще код, то менять нужно уйму шаблонов. Хотелось бы это делать в одном месте, а для этого как раз приспособить бы price.tpl, но… Как внутри него узнать код товара, для которого отображается цена.

ps: перед эти неправильно путь к файлу указал. На самом деле вот он

\design\themes\responsive\templates\common\price.tpl

[quote name='Bat1' timestamp='1439797290' post='226900']

Нет, не наугад. Этот файл как раз выводит цену. А мне нужно вместо нуля показать мою надпись для некоторых товаров (определенных $product.product_code). А вот как получить product_code в этом файле не понятно.

Сейчас я во всех шаблонах фронтэнда (а их не мало), в которых вызывается price.tpl обрамил вызов price.tpl в

<br /> if (мой товар)<br /> покажу сам;<br /> else<br /> вызвать price.tpl;<br />

Но если нужно будет добавить еще код, то менять нужно уйму шаблонов. Хотелось бы это делать в одном месте, а для этого как раз приспособить бы price.tpl, но… Как внутри него узнать код товара, для которого отображается цена.

ps: перед эти неправильно путь к файлу указал. На самом деле вот он

\design\themes\responsive\templates\common\price.tpl

[/quote]



Вы смотрели видео, которое я дал выше?



Только в стандартной функциональности уже есть настройка “Действие при нулевой цене” , которая имеет три варианта: не разрешать добавлять товар в корзину (текст “свяжитесь с нами”), разрешать и попросить покупателя ввести цену.



Исходя из этого, мы можем:

  1. Изменить один из вариантов настройки.
  2. Добавить новый вариант
  3. Добавить отдельную настройку.



    В любом случае, модифицировать нам нужно шаблон, который выводит цену в зависимости от настройки “Действие при нулевой цене”



    А это файл: design/themes/responsive/templates/common/product_data.tpl



    Код:

    [spoiler]

<br /> {********************** Price *********************}<br /> {capture name="price_`$obj_id`"}<br /> <span class="cm-reload-{$obj_prefix}{$obj_id} ty-price-update" id="price_update_{$obj_prefix}{$obj_id}"><br /> <input type="hidden" name="appearance[show_price_values]" value="{$show_price_values}" /><br /> <input type="hidden" name="appearance[show_price]" value="{$show_price}" /><br /> {if $show_price_values}<br /> {if $show_price}<br /> {hook name="products:prices_block"}<br /> {if $product.price|floatval || $product.zero_price_action == "P" || ($hide_add_to_cart_button == "Y" && $product.zero_price_action == "A")}<br /> <span class="ty-price{if !$product.price|floatval && !$product.zero_price_action} hidden{/if}" id="line_discounted_price_{$obj_prefix}{$obj_id}">{include file="common/price.tpl" value=$product.price span_id="discounted_price_`$obj_prefix``$obj_id`" class="ty-price-num" live_editor_name="product:price:{$product.product_id}" live_editor_phrase=$product.base_price}</span><br /> {elseif $product.zero_price_action == "A" && $show_add_to_cart}<br /> {assign var="base_currency" value=$currencies[$smarty.const.CART_PRIMARY_CURRENCY]}<br /> <span class="ty-price-curency"><span class="ty-price-curency__title">{__("enter_your_price")}:</span><br /> <div class="ty-price-curency-input"><br /> {if $base_currency.after != "Y"}{$base_currency.symbol nofilter}{/if}<br /> <input class="ty-price-curency__input" type="text" size="3" name="product_data[{$obj_id}][price]" value="" /><br /> {if $base_currency.after == "Y"}{$base_currency.symbol nofilter}{/if}<br /> </div><br /> </span><br /> {elseif $product.zero_price_action == "R"}<br /> <span class="ty-no-price">{__("contact_us_for_price")}</span><br /> {assign var="show_qty" value=false}<br /> {/if}<br /> {/hook}<br /> {/if}<br /> {elseif $settings.General.allow_anonymous_shopping == "hide_price_and_add_to_cart" && !$auth.user_id}<br /> <span class="ty-price">{__("sign_in_to_view_price")}</span><br /> {/if}<br /> <!--price_update_{$obj_prefix}{$obj_id}--></span><br /> {/capture}<br />

[/spoiler]



Тут кстати есть все нужные хуки и данные о товаре.



Как определить каким товарам показывать цену а каким нет? Добавить товару настройку, видео об этом есть.

[quote name=‘Bat1’ timestamp=‘1439297141’ post=‘226383’]

Что-то типа такого:

XXX руб. (заказать)

Больше никакой дополнительной информации не нужно…

[/quote]



Я перенёс тему в “Сделай сам” , давайте обнулим прогресс, какие задачи сейчас есть, а то что то тянется, помогу завершить.

Не подходит. Нужно заменить нуль не только на карточке и в списке, но и в корзине, миникорзине, всплывающем окне при добавлении в корзину, на странице оформления в блоке справа, в просмотре заказа, в invoice.tpl из шаблонов mail.

А вот идею сделать свой capture и распихать по этим всем шаблонам достойна рассмотрения, тогда все нестандартные товары соберутся в одном файле…

[quote]

Что-то типа такого:

XXX руб. (заказать)

Больше никакой дополнительной информации не нужно…

[quote name=‘dbazhenov’ timestamp=‘1439799878’ post=‘226912’]

Я перенёс тему в “Сделай сам” , давайте обнулим прогресс, какие задачи сейчас есть, а то что то тянется, помогу завершить.

[/quote]

[/quote]

По этой начальной задаче, я подумал о том, что мне наверное будет проще свой php-скрипт сделать, который будет дергать из базы данных цену по id товара. Что-то средствами cs-cart не получается пока…

А что касается price.tpl (это вторая задача в этой теме), то все шаблоны рано или поздно вызывают common/price.tpl, вот я и подумал, что может быть удастся как-то его приспособить. Но не получается, т.к. в нем похоже код товара никак не получить…

[quote name='Bat1' timestamp='1439802714' post='226932']

Не подходит. Нужно заменить нуль не только на карточке и в списке, но и в корзине, миникорзине, всплывающем окне при добавлении в корзину, на странице оформления в блоке справа, в просмотре заказа, в invoice.tpl из шаблонов mail.

А вот идею сделать свой capture и распихать по этим всем шаблонам достойна рассмотрения, тогда все нестандартные товары соберутся в одном файле…

[/quote]



Менять как я говорил выше и менять во всех остальных шаблонах.

[quote name='Bat1' timestamp='1439803247' post='226937']

А что касается price.tpl (это вторая задача в этой теме), то все шаблоны рано или поздно вызывают common/price.tpl, вот я и подумал, что может быть удастся как-то его приспособить. Но не получается, т.к. в нем похоже код товара никак не получить…

[/quote]



Это микрошаблон который любое число отображает в виде цены, он не нужен.

[quote name='Bat1' timestamp='1439802980' post='226933']

По этой начальной задаче, я подумал о том, что мне наверное будет проще свой php-скрипт сделать, который будет дергать из базы данных цену по id товара. Что-то средствами cs-cart не получается пока…

[/quote]



Я не совсем понимаю, что имеется ввиду под виджетом и где он будет размещаться.



Вы говорили, что это на своём сайте, можно хотябы пример или набросок.

[quote name='dbazhenov' timestamp='1439803530' post='226940']

Менять как я говорил выше и менять во всех остальных шаблонах.

[/quote]

В принципе так в результате и получилось, несколько в других местах, но примерно так…

[quote name='dbazhenov' timestamp='1439803773' post='226942']

Это микрошаблон который любое число отображает в виде цены, он не нужен.

[/quote]

Это я уже понял шишек набив порядочно…



ps: данный топик можно закрывать