Zum Inhalt springen

Mehrfach gestaffelte Versankosten

Erstellt am 29. November 2006 · 5 Antworten · letzte Antwort am 5. Januar 2010

Tags: Frage

Unbekannter Benutzer ·

Hallo,

hab ein kleines Problemchen mit tt_products 2.5.0 auf Typo3 4.0.1.

Bei mir ist das mit den Versandkosten etwas komplizierter 😉
Hier die Anforderung:

Es gibt drei Shipping-Optionen mit folgenden Versandkosten:
1. Versand nach Deutschland, dieser soll unter 50 Euro Warenwert 4,95 Euro betragen, ab 50 Euro Versandkostenfrei sein;
2. Versand nach Österreich bis 50 Euro 7,95 Euro, bis 100 Euro 4,95 Euro und darüber keine Versandkosten
3. Versand in die Schweiz/restliche EU unter 100 Euro 10,95 Euro, darüber frei.

Hier mein TS diesbezüglich:

plugin.tt_products.shipping >

##shipping config:
plugin.tt_products.shipping {
  radio = 1
  TAXpercentage = 16
  

  10.title = Versand nach Deutschland
  10.priceTax.type = count
  10.priceTax.1 = 4.95
  10.priceTax.noCostsAmount = 50.00
  10.image.file = fileadmin/shop/ups.gif
  10.calculationScript = fileadmin/shop/shop_berechnungsskript.inc


  20.title = Versand nach Österreich
  20.priceTax.type = count
  20.priceTax.1 = 7.95
  20.priceTax.noCostsAmount = 100.00
  20.image.file = fileadmin/shop/ups.gif
  20.calculationScript = fileadmin/shop/shop_berechnungsskript.inc

  30.title = Versand restliche EU und Schweiz
  30.priceTax.type = count
  30.priceTax.1 = 10.95
  30.priceTax.noCostsAmount = 100.00
  30.image.file = fileadmin/shop/ups.gif
  30.calculationScript = fileadmin/shop/shop_berechnungsskript.inc
}

und mein Berechnungsskript:

<?php

switch($this->basket->calculatedArray['priceTax']['shipping']) {
	case 4.95:
		//Deutschland
		if($this->basket->calculatedArray['priceTax']['goodstotal']>=50) $this->basket->calculatedArray['priceTax']['shipping']=0;
	break;
	case 7.95:
		//Österreich
		if($this->basket->calculatedArray['priceTax']['goodstotal']>=50 && $this->basket->calculatedArray['priceTax']['goodstotal']<100)
			$this->basket->calculatedArray['priceTax']['shipping']=4.95;
		if($this->basket->calculatedArray['priceTax']['goodstotal']>=100)
			$this->basket->calculatedArray['priceTax']['shipping']=0;
	break;
	case 10.95:
		//Rest
		if($this->basket->calculatedArray['priceTax']['goodstotal']>=100) $this->basket->calculatedArray['priceTax']['shipping']=0;
	break;
	
}
?>

Zu meinem Problem:
es werden alle Kosten mit enthaltener MwSt. richtig verrechnet. Auch die Produktpreise ohne MwSt. stimmen. Ebenfalls stimmen die Versandkosten ohne MwSt. für die erste Möglichkeit (Deutschland) und die dritte Möglichkeit (Schweiz/restliche EU).

Mein Problem sind nur die Versandkosten ohne Mehrwertsteuer bei der zweiten Versandmöglichkeit (Versand nach Österreich) mit den abgestuften Versandkosten. Und dann auch nur für den Warenwert zwischen 50 und 100 Euro.
Unterhalb von 50 Euro Warenwert werden die Versandkosten korrekt berechnet. Auch überhalb von 100 Euro fällt der Versand richtigerweise weg. Beides gilt für die Beträge mit und ohne MwSt. Nur bei einem Warenwert zwischen 50 und 100 Euro werden die Versandkosten beim Preis inkl. MwSt. richtig berechnet, beim Preis ohne MwSt. hingegen wird immer der Versandkostenpreis ohne MwSt. von unterhalb 50 Euro hinzugerechnet (sind 6,85 Euro anstatt nur 4,27 Euro).

Sehen kann man das hier: http://www.tee-und-kraeuter.de/shop.html
Aber nicht bestellen, der Shop läuft produktiv #paralyzed#

Ich hoffe, das dies verständlich ist....
Hat dazu wer eine Lösung?

Danke schon mal im voraus,
Huaba

steffenk · · Beste Antwort

kommt mir doch bekannt vor :p

Wo sind denn keine MwSt ? Das seh ich nicht, daher versteh ich Dein Problem auch nicht 😉

Unbekannter Benutzer ·

Kann ich mir vorstellen, das Du das kennst 8-)

Ich habs zum testen mal umgehoben: http://test1.tee-und-kraeuter.de/shop.html
Hier ist bei den Versandkosten (fett geschrieben) darunter der Netto-Betrag der Versandkosten eingeblendet.
Einfach mal Warenkorb füllen, das der Warenwert zwischen 50 und 100 Euro liegt und bei Versandart "Lieferung nach Österreich" angeben. Dann sieht man, das zwar die Versandkosten korrekterweise mit 4,95 Euro berechnet werden, die Nettoversandkosten aber noch den Betrag von 7,95 Euro (also bei Warenwert unter 50 Euro) entsprechen. Somit stimmt natürlich das Endergebnis des Nettobetrags nicht...

Huaba

steffenk ·

ah, jetzt hab ichs gesehen. Manchmal wäre ein Screenshot einfacher als lange Erklärungen 😉

$this->basket->calculatedArray['priceTax']['shipping']=4.95;

Hier wird der Bruttobetrag geändert, der Nettobetrag bezieht sich noch auf die 7,95. Du musst also an der Stelle den Nettobetrag auch überschreiben, ich vermute mal, das er so heisst

$this->basket->calculatedArray['priceNoTax']['shipping']=4.27;

Wie er genau heisst, kannst Du an der Stelle auch rausfinden, indem Du mal ein debug einbaust

t3lib_div::debug($this->basket->calculatedArray);
vladivar-superstar ·

Hallo,
das ist ein alter Thread, aber ich hänge da gerade an einem kleinen Problem im Zusammenhang mit dem obigen Code. Wenn ich mir im Berechnungsskript den Wert ausgeben lasse, auf den die Switch-Anweisung angewendet wird, ist dieser bei mir 0. Das TypoScript für 'shipping' habe ich auch aus diesem Thread übernommen. An welcher Stelle könnte ich denn da anfangen zu recherchieren, wieso $this->basket->calculatedArray['priceTax']['shipping'] bei mir 0 ist?

Gruß,
Stefan