Умная операция в Престашопе 1.7 - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь выполнить в Prestashop 1.7 математическую операцию между двумя переменными smarty внутри product-discount.tpl, но результат неверный ...

{$product.regular_price}

[вывод: 12,85 €]

{$quantity_discount.discount}

[вывод: 9,8%]

{$product.regular_price*$quantity_discount.discount}

[вывод: 117,6] Должно быть: 12,85 * 9,8 = 125,93

Есть идеи?

Я пробовал:

{$product.regular_price|floatval}

[вывод: 12] Должно быть: 12,85

Заранее спасибо

Prestashop 1.7

Ответы [ 2 ]

0 голосов
/ 23 марта 2019

Вы можете использовать следующее {$ Product.regular_price_amount * $ quantity_discount.discount}

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

0 голосов
/ 21 марта 2019

На самом деле это происходит из-за запятой в цене 12,85 € , поэтому, если вы замените запятую точкой, вы получите правильное значение 125,93

Я думаю, что самым простым решением было бы назначение новой переменной в файле tpl и замена запятой из regular_price 12,85 на точку.

ByКстати, вы также можете заменить запятую точками из контроллера , но если вы хотите выполнять математические операции в файле шаблона, вы можете сделать это следующим образом:

Во-первых, присвойте {$product.regular_price} regularPrice переменная вместе с заменой запятой на точку, что-то вроде этого:

{assign var=regularPrice value=$product.regular_price|replace:',':'.'}

Я надеюсь, что $quantity_discount.discount всегда содержит точку, но если вместо точки есть запятая,

{assign var=quantityDiscount value=$quantity_discount.discount|replace:',':'.'}

и, последнее, что вам нужно сделать, это несколько переменных regularPrice и quantityDiscount друг с другом

{assign var=total_price value=$regularPrice * $quantityDiscount}

, а затем отобразить total_price в файле tpl следующим образом:

{$total_price}
...