ビジネスクライアント向けの国境を越えた税設定


8

状況は次のとおりです。「クロスボーダートレード」を有効にして、問題なく動作しています(グロス価格が定義された製品があり、VATは顧客の国に基づいて計算されています。国ごとに各顧客に同じ最終価格が表示されます)。

問題は、VATが計算されるはずのB2B顧客にありますが、彼らはそれを支払うべきではありません。

例えば:

  • 小売顧客:総額100 EUR、彼の国のVATは25%であるため、VATは20 EURです。
  • B2B顧客の場合は同じですが、彼の合計は税抜き(80EUR)にする必要があります。

設定する方法はありますか(たとえば、顧客グループ+税クラス)。私たちはしばらくこれと戦っていて、解決策を見つけることができません。また、私たちだけがその問題を抱えているとは信じられません。どのように解決しますか?

回答:


6

@Metaの意味がわかります。同じ問題があります。状況をわかりやすくするために説明させていただきます。

税込79,95ユーロで商品を販売しています。国の税率に関係なく。

それでは、2つの例を見てみましょう。

  • オランダ:21%の税金を含む79.95ユーロ(13.88ユーロの税金)
  • ドイツ:19%の税金を含む79.95ユーロ(12.77ユーロ)

B2B顧客が注文する場合、税を除外する必要があります。しかし、国境を越えた貿易の設定は、他のレートと同じように扱います。理解できますが、それは私たちが望んでいることではありません。

したがって、クロスボーダー取引が有効になっていると、次のようになります。

  • オランダ:税抜き79.95ユーロ(税0.00ユーロ)
  • ドイツ:税抜き79.95ユーロ(税0.00ユーロ)

@Metaが欲しいのは:

  • オランダ:21%の税を除く66.07ユーロ(13.88ユーロの税金)
  • ドイツ:19%の税を除く67.18ユーロ(12.77ユーロ)

私が欲しいのは:

  • オランダ:21%の税を除く66.07ユーロ(13.88ユーロの税金)
  • ドイツ:21%の税金を除いて66.07ユーロ(13.88ユーロの税金)

あなたはこれを解決しましたか?
snh_nl 2015

はい、そうしました。少なくとも私にとってこれが解決策でした:税0%の注文のクロスボーダー設定を無効にする小さな拡張機能を作成しました。クロスボーダー設定が有効な場合でも。
ジェフリー

2

はい。すでに、すべてのEU加盟国で適切な税率が設定されていると思います。「EU B2B」など、少なくとももう1つの顧客税クラスが必要です。次に、に移動してconfiguration/customers/customer configurationcreate new account options有効なVAT IDでグループの自動割り当てを有効にするように変更し、をに設定するGroup for Valid VAT ID - Intra-Union必要がありEU B2Bます。他の設定を確認して、何を使用したいかを確認してください。ただし、これら2つの設定の組み合わせにより、顧客が有効な(VIESに基づく)付加価値税番号を入力すると、magentoがトランザクションから付加価値税を取得します。

magentoがVAT番号を期待する方法は国コード接頭辞がないことに注意してください。それは、それを検証するときに、その番号を住所の国コードと組み合わせます。ほとんどの国では含まれているため、国コードが存在する場合はそれを取り除くコードをいくつか作成しました。これは現在ギリシャでは機能しません。コードを書いた人は誰もがギリシャのVATコードの前にELではなくGRが付いていることを認識していなかったためです。

また、私は会計士ではなく、国境を越えた取引オプションを使用していませんが、価格は元付加価値税に基づいています:これらすべての国でVAT登録されていない場合は、固有のVATレートでの独自のVAT番号に対するVAT。これらの国の1つでの売上高が制限(国によっては33000ユーロまたは100000ユーロ)を超える場合、その国でVATに登録し、その国のレートでVATを徴収する必要があります。


はい-あなたのソリューションは「クロスボード」が無効になっている場合に機能します。つまり、VATの価格はVAT前の価格です(説明したとおり)。価格はVAT込みである必要があります(ユーザーには同じ合計金額が表示されますが、含まれるVATはユーザーの国によって異なります)。トリッキーな部分は、Magento(b2bクライアントの場合)にクライアントの国のVATを計算するように指示し、それを適用解除する方法です。現在、いくつかのハック/コードソリューションを調査していますが、この問題が発生しているのは私たちだけではないと信じられなかったため、質問しました(ボットをb2bとリテールクライアントに販売)
Grzegorz

B2B税クラスが適用されると、宛先国の価格を調整してVATを差し引くのではなく、ストア価格にVATを請求するだけですか?
Richard

フォローするかどうかわからない。他の国に販売している新しいEU規制によれば、顧客の国のVATを最もよく適用します。したがって、2つの選択肢があります。1.ストアに元VATの価格があります。次に、クライアントごとに合計金額は異なり、VAT率によって異なります。b2bの場合は簡単です。0%の税クラスを適用するだけです。2.価格はVAT込みです。すべてのクライアントに同じ価格が表示され、VATが「逆算」されて異なるだけです。私たちのシナリオは#2なので、b2b顧客のVATを計算し、それを合計価格から除外するようにMagentoを構成する方法がわかりません。今はもっとはっきりしていますか?
Grzegorz 2014年

いいえ、はっきりしていません。私が言ったことを試してもうまくいかないのか、それともうまくいくと思わなかったので試さなかったのかと尋ねました。また、ここでのコメントは議論するのに最適な場所ではありません。これは、物理的な製品を販売していることを前提としていますが、請求するVAT率に関する現在のルールは、europa.eu / youreurope / business / vatです。 -customs / cross-border /…その国で登録されているVATでない限り、VATは自分の税率で請求されるということです。
リチャードは

0

このための特別なヘルパーを作成しました(これを混合価格と呼びます)。

Catalog_Model_ProductのgetPriceおよびgetSpecialPriceを上書きする必要があります。

public function getPrice()
{
    return Mage::helper('catalog/mixedprice')
        ->getProductPrice($this);
}

public function getSpecialPrice()
{
    return Mage::helper('catalog/mixedprice')
        ->getProductSpecialPrice($this);
}

このヘルパーの背後にある考え方は非常に単純ですが、もっとコンテキストを提供する必要があります。私たちはお客様のソフトウェアを販売しており、物理的な製品は販売していません。B2Bクライアントの固定価格の製品と、B2Cクライアントの固定価格の製品が必要でした(最終価格は一定で、顧客の国ごとに付加価値が変更されます)。両方を同時に持つことはできません。

製品「is_vat_included」の列を追加しました。B2B修正の場合はfalseであると想定し、B2C修正の場合はtrueであると想定します。(したがって、カタログ製品を保守する人は誰でもそれを処理する必要があります)。

ご存知かもしれませんが、magentoのグローバル設定には、価格に税金が含まれているかどうかが示されています(\ Mage_Tax_Helper_Data :: priceIncludesTax)。この構成はtrueであると想定しています( "mixedprice"ヘルパーで価格を操作するときは、反対のことを想定するか、想定を行わずにこの構成を考慮することができます。

残りは非常に簡単です:*「is_vat_included」==製品の場合はtrue、特別な処理は行いません*「is_vat_included」== falseの場合は、magentoのTaxHelperから送信してVATで価格を計算します

つまり、Catalog_Model_Productのコードはおおよそ次のようになります。

public function getPrice()
{
    if($this->getIsVatIncluded()) { 
       return parent::getPrice();
    }

    return Mage::helper('tax')->getPrice(
       $this, // product
       parent::getPrice(), // excl. VAT
       true, // ask for price inclugin Tax
       null, // shipping address - we sell downloadable software, you may care more about this param
       $billingAddress, // you can get it from quote
       null, 
       null, 
       false, // price we're passing (parent::getPrice())doesn't include tax
       false, // do not round this price (it's too soon)
    )

}

これは、「mixedprice」ヘルパーに引き出した一般的なロジックです(ここでは、わかりやすくするためにインライン化しました)。

注:1.正確なコードをコピーして貼り付けることはできないため、おおまかな方法​​です。VATを含む商品を含む一部のストアと、商品がデフォルトでVATを除外する一部のストアを管理する場合、この方法はより複雑になります。2. product :: getSpecialPriceにも同じトリックが必要です。カスタムオプションを使用している場合は、さらに多くのトリックが必要です。4.ユニットテストはあなたの味方です-私たちはクレイジーにそれを使用しました(2015年1月1日にこれを展開する必要がありましたが、うまくいきました)。

@Jeffreyの説明に感謝-彼の回答に投票してください:ビジネスクライアント向けの越境税の設定


0

おそらく最も美しいソリューションではないかもしれませんが、コーディングを本当に避けたい場合は、登録されているVATゾーンごとにグループ価格を設定することで解決できます。

あなたはスウェーデンを拠点としている(25%付加価値税)がドイツの付加価値税(19%)にも登録しているとします。EU企業とドイツ企業の2つの製品グループを設定します。

100ユーロの製品の場合、顧客グループEU企業のグループ価格を80ユーロに設定し、顧客グループドイツ企業のグループ価格を84ユーロに設定します。

もちろん最初に、もちろん、顧客>>顧客グループの下に顧客グループを追加し、B2B顧客を適切なグループに割り当てます。次に、各製品の詳細ビューに移動して価格を編集し、次に価格を編集して、グループ価格を追加します。多くの製品では、かなり簡単なグループ価格設定をスクリプト化する必要があります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.