0

私のウェブサイトは、ショッピングにMagentoシステムを使用して構築されています。今、私は素敵な外国価格についての関数を追加します。例:価格が$ 35.4の場合、$34.99に変更されます。価格が$35.5の場合、$35.99に変更されます。

コードは:round(35.4)+ 0.99;

ここに質問があります。私の製品には、「タイプ」、「色」にリンクするいくつかのオプションがあります。オプションが異なると、magentoのデフォルトの構成可能な製品と同じように異なる価格が表示されます。製品ページ:価格は$1000で$999.99、カラーレッド+$100で+$99.99、タイプビッグ+50ショー+49.99です。ここでの合計価格は1149.97です。しかし、ショッピングチャットでは、価格はラウンド(1000 + 100 +50)+0.99=1149.99です。だからどう対処したらいいのかわからない。

誰かが私を助けてくれます.....あなたのアドバイスを待っています。

4

1 に答える 1

0

magento 最終価格は onFly で計算されるため、上書きする必要があります

app/code/core/Mage/CatalogRule/Helper/Data.php

メソッドを like as に変更します。(adminhtml にオプションを追加するか、ハードコードする必要があります)

public function calcPriceRule($actionOperator, $ruleAmount, $price)
{
    $priceRule = 0;
    switch ($actionOperator) {
        case 'to_fixed':
            $priceRule = min($ruleAmount, $price);
            break;
        case 'to_percent':
            $priceRule = $price * $ruleAmount / 100;
            break;
        case 'by_fixed':
            $priceRule = max(0, $price - $ruleAmount);
            break;
        case 'by_percent':
            $priceRule = $price * (1 - $ruleAmount / 100);
            break;
        case 'my_custom_prices':
             //your price rules 
            break;
    }
    return $priceRule;
}
于 2014-01-22T01:02:20.133 に答える