als B2B Shop beliefern wir viele Länder. EU-Länder als auch Drittländer. Natürlich haben wir verschiedene Versandoptionen, die je nach Lieferadresse zum tragen kommen – soweit alles tip top. Wenn es dann um die MwSt. geht, gibt es Probleme:
Wir haben den Shop für EU und Drittländer so eingestellt, dass die MwSt. nur berechnet und ausgewiesen wird, wenn keine USt-ID hinterlegt ist. Diese Funktion haben wir natürlich nicht für DE aktiv, da bekommt jeder seine MwSt. ausgewiesen.
Folgendes Problem tritt auf: Wir haben Kunden, die bestellen bei uns für verschiedene Filialen. Diese Filialen sind in aller Welt verteilt, die Rechnung geht jedoch immer z.B. nach Österreich. Das Rechnungstragende Unternehmen (aus Österreich) hat bei uns logischerweise eine gültige USt-ID hinterlegt. Die einzelnen Filialen die beliefert werden, sind als abweichende Lieferadressen gepflegt. Die Lieferadressen haben jedoch keine USt-ID hinterlegt (wozu auch, sie werden nur beliefert).
Da Shopware die Mwst. Berechnung bei einer abweichenden Lieferanschrift jedoch von der Liefernaschrift abhängig macht, bekommt der Rechnungsträger wieder die MwSt. auf die Rechnung gepackt – und das ist ein Problem.
Gibt es in Shopware die Möglichkeit, die USt-ID immer anhand der Rechnungsadresse zu prüfen und nicht anhand der Lieferadresse?
Es scheint ein shopware-Bug zu sein, dass es ein Ust-ID Feld in der Lieferadresse gibt. Ich finde es auch ziemlich sinnfrei. Es heißt im letzten Ticket zumindest “Die Umsetzung erfolgt in einem der nächsten Releases.” ^^
Nicht die Rechnungsadresse sonder der Erfüllungsort (=Lieferland) ist ausschlaggebend für die Berechnung der MwSt. Wenn dann auch noch Reversed Charge ins Spiel kommt wird’s lustig
Beispiele: Rechnung AT, Lieferung AT, UstId. vorhanden => Keine MwSt.
Rechnung AT, Lieferung AT, UstId nicht vorhanden => MwSt.
Rechnung DE, Lieferung AT, UstId vorhanden => Keine MwSt.
korrekt. Trotzdem muss der Kunde (z.B. AT) beim Anlegen seines Kundenkontos bei einer abweichenende Lieferadresse (auch in AT) dort auch die Ust-ID angeben, sonst erfolgt eine (auch im Backend) unumkehrbare MwSt-Berechnung. Das Ust-Id Feld ist aber beim Anlegen der Lieferadresse witzigerweise nicht zu sehen, sondern erst, wenn er die Lieferadressen nachträglich bearbeitet!
Das könnte man über ein kleines Plugin lösen. Ob das für alle Fälle eure Probleme behebt, kann ich da nicht beurteilen, sollte aber das angesprochene Problem lösen:
subscribeEvent(
'Shopware_Modules_Admin_GetUserData_FilterResult',
'onFilterUserData'
);
return true;
}
/**
* @param Enlight_Event_EventArgs $args
* @return array
*/
public function onFilterUserData($args)
{
$userData = $args->getReturn();
/**
* Wenn In der Lieferadresse keine Umsatzsteuer-ID hinterlegt ist
* und das Lieferland auf "Steuerfrei für Unternehmen steht"
* und in der Rechnungsadresse eine Umsatzsteuer-ID hinterlegt ist
* und das Rechnungsland auf "Steuerfrei für Unternehmen steht"
* dann ersetze die UmsatzsteuerID aus der Lieferadresse mit der aus der Rechnungsadresse
*/
if (empty($userData['shippingaddress']['ustid']) && $userData['additional']['countryShipping']['taxfree_ustid'] == 1
&& !empty($userData['billingaddress']['ustid']) && $userData['additional']['country']['taxfree_ustid'] == 1) {
$userData['shippingaddress']['ustid'] = $userData['billingaddress']['ustid'];
}
return $userData;
}
}
Einfach einen Ordner /engine/Shopware/Plugins/Community/Frontend/SwagUseBillingUstId anlegen und eine Bootstrap.php mit dem Inhalt von oben.
Hatte das selbst natürlich auch mal getestet, da funktionierte es. Bin Mittwoch wieder im Office und teste da gerne nochmal. Hast du dich über das Frontend registriert?
Das könnte man über ein kleines Plugin lösen. Ob das für alle Fälle eure Probleme behebt, kann ich da nicht beurteilen, sollte aber das angesprochene Problem lösen:
http://www.shopware.de) /
class Shopware_Plugins_Frontend_SwagUseBillingUstId_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
/*
@return bool /
public function install()
{
$this->subscribeEvent(
‚Shopware_Modules_Admin_GetUserData_FilterResult‘,
‚onFilterUserData‘
);
return true;
}
/*
@param Enlight_Event_EventArgs $args
@return array
*/
public function onFilterUserData($args)
{
$userData = $args->getReturn();
/**
Wenn In der Lieferadresse keine Umsatzsteuer-ID hinterlegt ist
und das Lieferland auf „Steuerfrei für Unternehmen steht“
und in der Rechnungsadresse eine Umsatzsteuer-ID hinterlegt ist
und das Rechnungsland auf „Steuerfrei für Unternehmen steht“
dann ersetze die UmsatzsteuerID aus der Lieferadresse mit der aus der Rechnungsadresse
*/
Einfach einen Ordner /engine/Shopware/Plugins/Community/Frontend/SwagUseBillingUstId anlegen und eine Bootstrap.php mit dem Inhalt von oben.
Wird das noch im Core behoben? Das ist ja kein triviales Problem. Im Issue Tracker steht dieses Thema auf „not scheduled“. Wir haben ständig solche Fälle, dass wir Bestellungen in einem Land haben, wo in der Rechnungsadresse eine UID Nummer hinterlegt ist, die Sendung aber an eine private Adresse verschickt wird und der Rechnungsempfänger auf einmal MwSt. zahlen muss. Wir haben dadurch schon 3 Kunden verloren.
Schon gelöst? Ich hatte das jetzt auch gehabt, dass bei Registrierung eines Geschäftskunden die VAT nicht eingegeben werden kann bzw. wurde (wird ja bei Registrierung nicht mehr nachgefragt) bei einer Lieferadresse bzw. eben nicht abgefragt wird (was ja richtig wäre) . Daher wird bei Zahlung dann die Ust. berechnet bei abweichender Lieferadresse. Trage ich die Lieferadresse später manuell nach mit UID klappt es, nur das kann ja der Kunde nicht wissen.
Das Plugin für die Lösung lässt sich leider nicht (mehr) installieren, wenn man den Ordner anlegt, eine bootstrap befüllt und später das Plugin installieren möchte.