1

magento1.7.0.2をインストールしています。クーポン付きのショッピング価格カートルールを作成しました。magentoに表示される割引額(カート、チェックアウトなど)が極端な値であることを除いて、すべて問題ありません。極値は2^64(18 446 744 073 709 550 520)であることがわかりました。ルールの構成は重要ではなく、表示される割引は常に2^64です。

カートの合計例

小計は問題ありません。送料は問題ありません。これらの合計は11669です。小計(10961)に割引(10%)を適用すると、結果は9864になります。9864+ 708=10573は許容できる結果です。したがって、表示された割引を除いて、すべてが完璧です。

どこが悪いのかわかりません。関連ファイルが見つかりません。助けてください。

どうもありがとう、István

4

1 に答える 1

2

結局、私は解決策を見つけました。このエラーの原因は単純です。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())) ?>

そして、ここに行きます、問題は解決しました。

それがお役に立てば幸いです。

于 2012-11-14T13:16:35.397 に答える