Grenzüberschreitende Steuereinstellungen für Geschäftskunden

8

Die Situation ist wie folgt: Wir haben den "grenzüberschreitenden Handel" aktiviert und er funktioniert einwandfrei (wir haben Produkte mit definiertem Bruttopreis und die Mehrwertsteuer wird basierend auf dem Kundenland berechnet. Für jedes Land sieht jeder Kunde den gleichen Endpreis).

Das Problem liegt bei unserem B2B-Kunden, bei dem die Mehrwertsteuer berechnet werden sollte, der jedoch nicht bezahlt werden sollte.

Zum Beispiel:

  • Privatkunde: Bruttopreis 100 EUR, Mehrwertsteuer für sein Land beträgt 25%, also Mehrwertsteuer 20 EUR.
  • Für B2B-Kunden sollte es gleich sein, aber für ihn sollte die Gesamtsumme ohne Steuern (80 EUR) sein.

Gibt es eine Möglichkeit, es einzurichten (zum Beispiel mit Kundengruppen + Steuerklassen). Wir kämpfen eine Weile damit und können keine Lösung googeln. Ich kann auch nicht glauben, dass wir die einzigen sind, die dieses Problem haben. Wie lösen Sie es?

Grzegorz
quelle

Antworten:

6

Ich weiß genau, was @Meta bedeutet. Wir haben das gleiche Problem. Ich werde versuchen zu erklären, um die Situation klarer zu machen.

Wir verkaufen ein Produkt für 79,95 € inklusive Steuern. Egal wie hoch der Steuersatz für ein Land ist.

Schauen wir uns also zwei Beispiele an:

  • Niederlande: 79,95 € einschließlich 21% Steuern (13,88 € Steuern)
  • Deutschland: 79,95 € inkl. 19% Steuern (12,77 € Steuern)

Wenn ein B2B-Kunde bestellt, müssen wir die Steuer ausschließen. Die Einstellung für den grenzüberschreitenden Handel behandelt dies jedoch genauso wie jede andere Rate. Verständlich, aber das wollen wir nicht.

Wenn der grenzüberschreitende Handel aktiviert ist, geschieht Folgendes:

  • Niederlande: 79,95 € ohne Steuern (0,00 € Steuern)
  • Deutschland: 79,95 € ohne Steuern (0,00 € Steuern)

Während was @Meta will ist:

  • Niederlande: 66,07 € ohne 21% Steuern (13,88 € Steuern)
  • Deutschland: 67,18 € ohne 19% Steuern (12,77 € Steuern)

Während was ich will ist:

  • Niederlande: 66,07 € ohne 21% Steuern (13,88 € Steuern)
  • Deutschland: 66,07 € ohne 21% Steuern (13,88 € Steuern)
Jeffrey
quelle
Hast du das gelöst?
snh_nl
Ja, habe ich. Zumindest für mich war dies die Lösung: Ich habe eine kleine Erweiterung erstellt, die die grenzüberschreitende Einstellung für Bestellungen mit 0% Steuer deaktiviert. Auch wenn grenzüberschreitende Einstellungen aktiviert sind.
Jeffrey
2

Ja. Ich denke, Sie haben bereits alle EU-Länder mit den entsprechenden Steuersätzen für das Stück eingerichtet, in dem Sie arbeiten. Sie benötigen mindestens eine weitere Kundensteuerklasse, z. B. "EU B2B". Dann müssen Sie zu gehen configuration/customers/customer configurationund die ändern create new account options, um die automatische Zuweisung der Gruppe für eine gültige Umsatzsteuer-ID zu aktivieren, und die Einstellung Group for Valid VAT ID - Intra-Unionauf festlegen EU B2B. Werfen Sie einen Blick auf die anderen Einstellungen, um zu sehen, was Sie verwenden möchten. Die Kombination dieser beiden Einstellungen bedeutet jedoch, dass Magento die Mehrwertsteuer aus der Transaktion entnimmt, wenn ein Kunde eine gültige (gemäß VIES) Umsatzsteuer-Identifikationsnummer eingibt.

Beachten Sie, dass Magento die Umsatzsteuer-Identifikationsnummer ohne das Ländercode-Präfix erwartet und die Nummer bei der Validierung mit dem Ländercode für die Adresse kombiniert. Wir haben einen Code geschrieben, um den Ländercode zu entfernen, falls vorhanden, da die meisten Leute ihn einschließen. Dies funktioniert derzeit nicht für Griechenland, da derjenige, der den Code geschrieben hat, nicht wusste, dass den griechischen Mehrwertsteuercodes EL und nicht GR vorangestellt sind

Auch wenn ich kein Buchhalter bin und die grenzüberschreitende Handelsoption nicht genutzt habe und unsere Preise auf dem Mehrwertsteuer basieren: Wenn Sie in all diesen anderen Ländern nicht mehrwertsteuerpflichtig sind, sollten Sie sammeln Mehrwertsteuer auf Ihre eigene Umsatzsteuer-Identifikationsnummer zu Ihrem einheimischen Mehrwertsteuersatz. Wenn Ihr Umsatz in einem dieser Länder das Limit überschreitet (je nach Land 33000 € oder 100000 €), müssen Sie sich in diesem Land für die Mehrwertsteuer registrieren und dann die Mehrwertsteuer in diesem Land erheben.

Richard
quelle
Ja - Ihre Lösung würde mit deaktiviertem "Cross Boarded" funktionieren, was bedeutet, dass Ihre Mehrwertsteuerpreise ohne Mehrwertsteuer sind (wie Sie beschrieben haben). Unsere Preise müssen inkl. MwSt. Sein (der Benutzer sieht also den gleichen Gesamtpreis, aber die eingeschlossene Mehrwertsteuer ändert sich je nach Benutzerland). Der schwierige Teil ist: Wie man Magento (für B2B-Kunden) anweist, die Mehrwertsteuer für das Kundenland zu berechnen und sie dann aufzuheben. Wir suchen derzeit nach Hack / Code-Lösungen - aber ich habe gefragt, weil ich nicht glauben konnte, dass wir die einzigen sind, die dieses Problem derzeit haben (Verkauf von Bot an B2B- und Einzelhandelskunden)
Grzegorz,
Wollen Sie damit sagen, dass bei Anwendung der B2B-Steuerklasse nur der Ladenpreis ohne Mehrwertsteuer berechnet wird, anstatt den Preis für das Zielland anzupassen und dann die Mehrwertsteuer abzunehmen?
Richard
Ich bin mir nicht sicher, ob ich folge. Gemäß den neuen EU-Vorschriften, die in andere Länder verkauft werden, gilt die Mehrwertsteuer des Kundenlandes. Es gibt also zwei Möglichkeiten: 1. Ihr Geschäft hat Preise ohne Mehrwertsteuer. Dann ist der Gesamtpreis für verschiedene Kunden unterschiedlich und hängt vom Mehrwertsteuersatz ab. Für b2b ist es einfach - Sie wenden nur 0% Steuerklasse an. 2. Ihre Preise verstehen sich inklusive Mehrwertsteuer. Jeder Kunde sieht den gleichen Preis, nur die Mehrwertsteuer wird "rückwärts" berechnet und ist unterschiedlich. Unser Szenario ist # 2, daher weiß ich nicht, wie ich Magento so konfigurieren soll, dass die Mehrwertsteuer für B2B-Kunden berechnet und dann vom Gesamtpreis ausgeschlossen wird. Ist es jetzt klarer?
Grzegorz
Nein, es ist nicht klarer. Ich habe gefragt, ob Sie versucht haben, was ich gesagt habe, und es hat nicht funktioniert, oder ob Sie es nicht versucht haben, weil Sie nicht gedacht haben, dass es funktionieren würde. Auch Kommentare hier sind nicht der beste Ort, um darüber zu streiten, und ich gehe davon aus, dass Sie physische Produkte verkaufen, aber die aktuellen Regeln für den von Ihnen berechneten Mehrwertsteuersatz finden Sie hier: europa.eu/youreurope/business/vat -customs / grenzüberschreitend /… Es heißt, Sie berechnen die Mehrwertsteuer zu Ihrem eigenen Satz, es sei denn, Sie sind in diesem Land als Mehrwertsteuer registriert.
Richard
0

Wir haben dafür einen speziellen Helfer geschaffen (wir nennen es gemischten Preis).

Sie müssen getPrice und getSpecialPrice für Catalog_Model_Product überschreiben:

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

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

Die Idee hinter diesem Helfer ist recht einfach, aber ich muss mehr Kontext angeben. Wir verkaufen unseren Kunden Software, keine physischen Produkte. Wir brauchten einige Produkte mit festen Preisen für B2B-Kunden und einige Produkte mit festen Preisen für B2C-Kunden (der Endpreis ist konstant, die Mehrwertsteuer ändert sich für jedes Kundenland). Beides kann man natürlich nicht haben.

Wir haben eine Spalte für das Produkt 'is_vat_included' hinzugefügt. Für festes B2B erwarten wir, dass dies falsch ist, für festes B2C erwarten wir, dass dies wahr ist. (Wer also Katalogprodukte pflegt, muss sich darum kümmern).

Wie Sie vielleicht wissen: Es gibt eine globale Konfiguration für Magento, die angibt, ob die Preise mit oder ohne Steuern sind (\ Mage_Tax_Helper_Data :: priceIncludesTax). Wir haben angenommen, dass diese Konfiguration wahr sein sollte (Sie können das Gegenteil annehmen oder keine Annahmen treffen und diese Konfiguration berücksichtigen, wenn Sie die Preise im "Mixedprice" -Helfer manipulieren.

Der Rest ist ganz einfach: * Wenn 'is_vat_included' == true für das Produkt ist, tun Sie nichts Besonderes. * Wenn 'is_vat_included' == false ist, senden Sie es über den TaxHelper von magento, um den Preis mit Mehrwertsteuer zu berechnen

Der Code für Catalog_Model_Product würde also ungefähr so ​​aussehen:

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)
    )

}

Dies ist die allgemeine Logik, die wir unserem "Mixed-Price" -Helfer zugewiesen haben (ich habe sie hier der Klarheit halber eingefügt).

Bitte beachten Sie: 1. Ich kann Ihren genauen Code nicht kopieren und einfügen, daher ist dies eine grobe Idee. Wenn Sie einige Geschäfte mit Produkten einschließlich Mehrwertsteuer verwalten möchten und einige Geschäfte, in denen Produkte standardmäßig die Mehrwertsteuer ausschließen, ist diese Methode komplizierter. 2. Sie benötigen den gleichen Trick für product :: getSpecialPrice. 3. Sie benötigen noch mehr davon, wenn Sie benutzerdefinierte Optionen verwenden. 4. Unit Testing ist dein Freund - wir haben es wie verrückt benutzt (wir mussten es am 1. Januar 2015 bereitstellen, es hat funktioniert).

Vielen Dank für die Klarstellung von @ Jeffrey - bitte stimmen Sie seiner Antwort ab: Grenzüberschreitende Steuereinstellungen für Geschäftskunden

Grzegorz
quelle
0

Vielleicht nicht die schönste Lösung, aber wenn Sie Codierung wirklich vermeiden möchten, können Sie sie lösen, indem Sie für jede Mehrwertsteuerzone, in der Sie registriert sind, einen Gruppenpreis festlegen.

Angenommen, Sie haben Ihren Sitz in Schweden (25% MwSt.), Sind aber auch für die deutsche MwSt. Registriert (19%). Sie haben zwei Produktgruppen eingerichtet: EU-Unternehmen und deutsche Unternehmen.

Für ein Produkt mit 100 € setzen Sie einen Gruppenpreis für die Kundengruppe EU-Unternehmen auf 80 € und für die Kundengruppe Deutsch-Unternehmen auf 84 €.

Zunächst fügen Sie natürlich die Kundengruppen unter Kunden >> Kundengruppen hinzu und ordnen Ihre B2B-Kunden der richtigen Gruppe zu. Anschließend bearbeiten Sie die Preise, indem Sie zur Detailansicht der einzelnen Produkte und dann zu den Preisen wechseln und dann den Gruppenpreis hinzufügen. Bei vielen Produkten möchten Sie die Gruppenpreiseinstellung per Skript erstellen, was ziemlich einfach ist.

Klistrian
quelle