結局、私は解決策を見つけました。このエラーの原因は単純です。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())) ?>
そして、ここに行きます、問題は解決しました。
それがお役に立てば幸いです。