Shopsystem ShopPilot Shoploesung Diskussionen und Infos zum Shopsystem ShopPilot
Willkommen Gast. Bitte einloggen oder registrieren.
Februar 08, 2012, 14:55:54

Einloggen mit Benutzername, Passwort und Sitzungslänge
Suche:     Erweiterte Suche
5208 Beiträge in 1408 Themen von 330 Mitglieder
Neuestes Mitglied: spraytool
* Übersicht Hilfe Login Registrieren
+  Diskussionen und Infos zum Shopsystem ShopPilot
|-+  ShopPilot
| |-+  SSP - Shop Server Pages
| | |-+  SSP Bibliothek
| | | |-+  EP: Versandzonen und unterschiedliche MWSt
0 Mitglieder und 1 Gast betrachten dieses Thema. « vorheriges nächstes »
Seiten: [1] Drucken
Autor Thema: EP: Versandzonen und unterschiedliche MWSt  (Gelesen 3154 mal)
hop
Global Moderator
Hero Member
*****

Lob: 5
Offline Offline

Beiträge: 705


« am: September 22, 2005, 17:27:27 »

Frage: Wie kann ich erreichen, dass z.b. für die Schweiz im Warenkorb und der Bestellung keine MWSt ausgewiesen wird, damit die Kunden direkt den richtigen Endbetrag sehen.

Antwort:
Man braucht zunächst mal die möglichen Lieferländer als Versandzone. Diese sind dann im WK auswählbar (Identifier __zonen__). Jede Zone hate eine ZonenID, diese Zahl wird benötigt, um die Zonen zu unterscheiden.

Für die Änderung des Verhaltens im WK und Bestellformular, benötigt man eine zusätzliche Datei "stdcart.ipl". Diese Datei ist mit einem Texteditor (notepad.exe) zu erzeugen und im Projektverzeichnis abzulegen. Damit die Datei auch auf den Webserver übertragen wird muss man sie noch unter Projekt | zusätzliche Dateien angeben.

Hier ein Beispiel für den Inhalt dieser Datei:
Code:
<!--spmacro:module(Callback)

sub invoice_addpos_final {
  my $ref_gesamt = $_[0];
  my $ref_gesamt_steuer = $_[2];
  my $ust = $_[3]/100;
  my $netto = $_[4];

  my ($wert,$text) =  ssp::get_cart_zone();

  # Wenn ein Land ohne Mwst. Berechnung ist
  # 4 Schweiz
  # 9 Lichtenstein
  if (
     ($wert == 4) ||
     ($wert == 9)
)
{
  $$ref_gesamt -= $$ref_gesamt_steuer;
  $$ref_gesamt_steuer = 0;
     }
  return 0;
}
-->

<!--spmacro:module(zone)

# mit __zone::land__  kann das gewählte Land im Bestellformular ausgegeben werden
sub land {

  my ($wert,$text) =  ssp::get_cart_zone();
  main::mprint($text);

}
-->

Diesen Inhalt können Sie so in eine leere Datei kopieren und als stdcart.ipl im Projektverzeichnis abspeichern.
Die einzige Anpassung wird evtl. bei den ZonenIDs notwendig (hier 4 und 9), wenn Sie evtl andere ZonenIDs vergeben haben.

Hier ist zusätzlich noch eine andere nützliche Funktion für das Bestellformular enthalten. Und zwar wird mit der Funktion zone::land der ausgewählte Wert der Versandzone in das Bestellformular eingetragen.

Sie können mit <input type=hidden name="LKZ" value="__zone::land__"> den Wert vorbelegen.
Natürlich die normale LKZ Auswahl dann rausnehmen.
Zusätzliche können Sie den Wert auch anzeigen, indem Sie einfach __zone::land__ an die entsprechende Stelle im Formular schreiben.

hop






« Letzte Änderung: März 28, 2006, 23:40:48 von admin » Gespeichert

Schöne Grüße hop
hop
Global Moderator
Hero Member
*****

Lob: 5
Offline Offline

Beiträge: 705


.
« Antwort #1 am: September 23, 2005, 11:36:02 »

Das dargestellte Beispiel ist für B2B Shops gedacht, bei denen die Preisangaben Netto sind. Bei Endkundenshops (Bruttopreise) ist die Berechnung zwar auch richtig. Aber für den Kunden aus z.B. der Schweiz nicht direkt nachvollziehbar.
Um die Berechnung zu erklären, ist ein zusätzlicher Hinweis sinnvoll.

Endbetrag ist wegen steuerfreier Lieferung um 47,34 EUR Mehrwertsteuer reduziert
bzw.

Endbetrag enthält 47,34 EUR Mehrwertsteuer

Dieser Hinweis wird mit dem SSP-Identifier __Callback::steuertext__ eingefügt.

Hier der erweiterte Code:
Code:
<!--spmacro:module(Callback)

sub invoice_addpos_final {
  my $ref_gesamt = $_[0];
  my $ref_gesamt_steuer = $_[2];
  my $ust = $_[3]/100;
  my $netto = $_[4];

  my ($wert,$text) =  ssp::get_cart_zone();

  $Callback::steuerwert = main::fp($$ref_gesamt_steuer);

  # Wenn ein Land ohne Mwst. Berechnung ist
  # 4 Schweiz
  # 9 Lichtenstein
  if (
     ($wert == 4) ||
     ($wert == 9)
     )
     {
  $$ref_gesamt -= $$ref_gesamt_steuer;
  $$ref_gesamt_steuer = 0;
     }
  return 0;
}

$steuerwert = 0;

sub steuertext {
  my ($wert,$text) =  ssp::get_cart_zone();

  # Wenn ein Land ohne Mwst. Berechnung ist
  # 4 Schweiz
  # 9 Lichtenstein
  if (
     ($wert == 4) ||
     ($wert == 9)
     )
  {
     main::mprint("Endbetrag ist wegen steuerfreier Lieferung um <b>$steuerwert</b> Mehrwertsteuer reduziert");
  }
  else
  {
     main::mprint("Endbetrag enthält $steuerwert Mehrwertsteuer");
  }
 
}
-->

<!--spmacro:module(zone)

# mit __zone::land__  kann das gewählte Land im Bestellformular ausgegeben werden
sub land {

  my ($wert,$text) =  ssp::get_cart_zone();
  main::mprint($text);

}
-->


hop
« Letzte Änderung: Dezember 21, 2006, 12:59:25 von ahe » Gespeichert

Schöne Grüße hop
Seiten: [1] Drucken 
« vorheriges nächstes »
Gehe zu:  

mysitelist Impressum Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS