毕竟我找到了解决方案。这个错误的原因很简单。magento 存储的折扣金额是有符号的,这意味着它有一个负号。文件 app/design/frontend/[yourfrontend]/[yourtheme]/template/checkout/total/default.phtml (这是金额在屏幕上写的地方)包含以下代码:
<tr>
<th colspan="<?php echo $this->getColspan(); ?>" style="<?php echo $this->getTotal()->getStyle() ?>" class="a-right">
<?php if ($this->getRenderingArea() == $this->getTotal()->getArea()): ?><strong><?php endif; ?>
<?php echo $this->escapeHtml($this->getTotal()->getTitle()); ?>
<?php if ($this->getRenderingArea() == $this->getTotal()->getArea()): ?></strong><?php endif; ?>
</th>
<td style="<?php echo $this->getTotal()->getStyle() ?>" class="a-right">
<?php if ($this->getRenderingArea() == $this->getTotal()->getArea()): ?><strong><?php endif; ?>
<?php echo $this->helper('checkout')->formatPrice($this->getTotal()->getValue()) ?>
<?php if ($this->getRenderingArea() == $this->getTotal()->getArea()): ?></strong><?php endif; ?>
</td>
问题在于formatPrice()
函数和负参数。一个简单的解决方案是abs()
php 函数。换行
<?php echo $this->helper('checkout')->formatPrice($this->getTotal()->getValue()) ?>
至
<?php echo $this->helper('checkout')->formatPrice(abs($this->getTotal()->getValue())) ?>
我们走了,问题解决了。
我希望这会有所帮助。