3

Magento ベースの e コマース サイトを運営しています。Magento Enterprise 1.10 を実行しています。

私たちは英国にいるので、すべての価格を税込 (VAT) で表示したいと考えています。当社のストアは、VAT を含めて入力された価格で設定されており、Magento はチェックアウト時に VAT を逆算します。

このサイトは、組み込みのエンタープライズ リワード ポイント機能を使用しており、1 ポンドの支出ごとに 10 ポイントを顧客に提供します。

報酬ポイントを表示すると (現在、カタログとバスケットで "echo $this->getRewardPoints()" 関数を使用)、税込みの報酬ポイントが表示されます (したがって、£15 = 150 ポイント) が、チェックアウトでは、同じ関数を使用して表示されますアイテムの潜在的なポイントは、アイテムの報酬ポイントから税金を差し引いて計算します (つまり、£15 = 120 ポイント)。

注文が行われると、報酬ポイントが顧客のアカウントに追加され、税金が差し引かれます。これは明らかにユーザーを混乱させます。

一時的な措置として、間違ったポイント数の表示を停止しました

次のいずれかを目指しています。

a) Magento に VAT を含むポイントを常に表示させ、注文時に正しい量のポイントを追加します (ポイント - ポンド比はそのままにしておきます) b) Magento に常に VAT を除くポイントを表示および追加するようにします。ポイントとポンドの比率を上げて補償します。

これに関するヘルプやポインタは大歓迎です。

4

2 に答える 2

2

これも必要なクライアントがいたので、税抜きでのみ報酬を計​​算する関数をオーバーライドするカスタム モジュールを作成し、価格 + 税でも計算できるようにしました。報酬構成エリアに新しいオプションを追加して、税金を含む計算を許可または禁止できるようにしました。

カスタム モジュールの作成方法を説明するプロセスは省略しますが (そのためのリソースはたくさんあります)、計算を行う実際の関数は次のファイルにあります: code/core/enterprise/reward/model/action /OrderExtra.php

手早く簡単に実行したい場合は、getPoints 関数を見つけて、$monetaryAmount の計算を次のように変更します ($quote がある場合)。

$monetaryAmount = $quote->getBaseGrandTotal() - $address->getBaseShippingAmount();

および ($quote がない場合)

$monetaryAmount = $this->getEntity()->getBaseTotalPaid() - $this->getEntity()->getBaseShippingAmount();

それが役立つことを願っています!

編集: getPoints 関数の実際のコードは次のようになります。

if ($this->_quote) {
        $quote = $this->_quote;
        // known issue: no support for multishipping quote
        $address = $quote->getIsVirtual() ? $quote->getBillingAddress() : $quote->getShippingAddress();
        // use only money customer spend - shipping & tax
        $monetaryAmount = $quote->getBaseGrandTotal() - $address->getBaseShippingAmount();

        // *****CALCULATE POINTS INCLUDING TAX
        $monetaryAmount -= $address->getBaseTaxAmount();

        // set points to 0 if calcualtion is negative
        $monetaryAmount = $monetaryAmount < 0 ? 0 : $monetaryAmount;
    } else {
      // use only money customer spend - shipping
        $monetaryAmount = $this->getEntity()->getBaseTotalPaid() - $this->getEntity()->getBaseShippingAmount();

        // *****CALCULATE POINTS INCLUDING TAX
        $monetaryAmount -= $this->getEntity()->getBaseTaxAmount();
    }
于 2013-02-07T16:03:21.007 に答える