Как отобразить две цены в долларах и рублях?

Автор varta125, 21 ноября 2012, 01:55:52

« назад - далее »

varta125

Здравствуйте! Подскажите пожалуйста, как сделать что бы в карточке товара, а также на главной и категории, отображалось сразу две цены (в двух валютах)? Я знаю что можно выбирать в какой валюте отображать цены, но очень нужно что бы изначально показывалось две цены. Буду очень благодарен за помощь!

mAgency

#1
Для этого нужно установить новый модуль, в стандартной сборке можно показывать разные валюты только при смене языка.
Модуль Price depending on the currency.
Интернет-магазин под ключ.
Какой выбрать движок для интернет магазина ?
Какой движок лучше ?
Magento или Prestashop ?
Решение всех Ваших вопросов в создании Интернет-магазина.

Виктор Демидов

Цитата: mAgency
Модуль Price depending on the currency.
Этот модуль для prestashop версии 1.3 Price per currency
Смотрите модули в разделе Prices & Promotion

varta125

Спасибо за ответы! У меня версия 1.5.2.0
Уже после всей работы над магазином, настройки, дизайна и т.д. появилась необходимость что бы везде стояло две цены.
Значит модули мне эти не подойдут для моей версии? Бесплатного решения тоже не найти?
Извините если я сейчас скажу глупость, у меня такая мысль появилась. Движок выводит цену, т.е. берет ее из базы, создает переменную, или каким другим способом. Может возможно просто создавать значение и умножать его по курсу? Допустим цены все в базе в долларах, мы берем это значение умножает его на 31 и получается в рублях. И выводим рядом с той ценой? Может это как то возможно реализовать?

Виталий

#4
Можно использовать функцию convertPrice
/**
* Return price converted
*
* @param float $price Product price
* @param object $currency Current currency object
* @param boolean $to_currency convert to currency or from currency to default currency
*/
public static function convertPrice($price, $currency = null, $to_currency = true, Context $context = null)
{

   
Cоздание интернет сайтов Webstudio UwK

varta125

Виталий, скажите пожалуйста подробнее, как этим кодом воспользоваться?

coder

ЦитироватьМожно использовать функцию convertPrice
Это если писать свой модуль и дать возможность выбора валют.
Можно проще, если нет необходимости делать отдельный модуль.
Если у валюты рубль ид 2, то можно всегда выводить цену в валюте ид2 и в валюте, которую выбрал посетитель.
В product.tpl
<!-- prices -->
{if $product->show_price AND !isset($restricted_country_mode) AND !$PS_CATALOG_MODE}
<p class="price">
{if !$priceDisplay || $priceDisplay == 2}

                 /* добавить */
                {if !$currency->id == 2}
                          {if !$product->reduction_price == 0}
                                      {$product->price-$product->reduction_price}
                          {elseif !$product->reduction_percent == 0}
                                       {$product->price-$product->reduction_percent*$product->price/100}
                          {else}
                                       {$product->price}
                          {/if}
                 {/if}


varta125

Скажите, куда именно вставлять этот код в файле? Перепробовал много вариантов, либо без изменений либо выдает ошибку и страница не грузится вообще. Если кому не трудно подскажите пожалуйста. Здесь мой файл product.tpl

Виктор Демидов

#8
Например, так
{convertPriceWithCurrency price=$product->getPrice(true, $smarty.const.NULL, 2) currency=$currencies.0 convert=true}
Или же установите дополнительный модуль.

varta125

#9
Цитата: Виктор Демидов от 21 ноября 2012, 23:32:29
Например, так
{convertPriceWithCurrency price=$product->getPrice(true, $smarty.const.NULL, 2) currency=$currencies.0 convert=true}
Или же установите дополнительный модуль.



Виктор, не могли бы вы мне точнее сказать, куда именно нужно вставить эту строчку? К сожалению мои познания в этом слабые! Помогите пожалуйста подсказкой  :)

Виктор Демидов

Если вы не знаете как работать с шаблонами, классами в prestashop, то лучше используйте готовые модули. Хотите создать свой модуль, но не знаете как,  изучите руководство разработчика Prestashop. Задавайте вопросы на форуме, вам помогут.
Если вам нужно готовое решение, то создайте тему в разделе работа.

Эту строчку вставляете в шаблон там где нужно показывать цену. 
Для конвертации цены в различные валюты используется функция :
convertPriceWithCurrency
Эта функция определена в классе

class ProductCore extends ObjectModel
{
        public static function convertPriceWithCurrency($params, &$smarty)
        {
        return Tools::displayPrice($params['price'], $params['currency'], false);
        }

Передавая в функцию аргументы Цена, Валюта, вы можете выводить цены в рублях, евро, долларах и т.д.
Для использования в шаблоне нужно добавить правила формирования цен - учет налогов, скидки, группы и т.д.
Смотрите как в шаблоне product.tpl реализован показ цены и добавьте еще один вариант с использованием функции convertPriceWithCurrency.

Vasiy

#11
Все эти варианты установки 2 - 3 цен на версии PS 1.5.4.1 не работают.
Они просто добавляют цену не конвертируя, пририсовывают другой значок валюты.
Есть какие то еще варианты?
Не боги горшки обжигают, не зачем им такой хренью заниматься.

coder

В версии 1.5.4 эта функция не менялась
/**
  * Convert price with currency
  *
  */
public static function convertPriceWithCurrency($params, &$smarty)
{
return Tools::displayPrice($params['price'], $params['currency'], false);
}

все работает.

coder