TYPO3-Testaccount
Testen Sie die aktuellste TYPO3-Version kostenlos und unverbindlich für einen Monat!

Jetzt testen!

Schulungen

Mehrfach gestaffelte Versankosten


Autor Nachricht
Verfasst am: 29. 11. 2006 [22:31]
Huaba
Themenersteller
Dabei seit: 12.10.2005
Beiträge: 69
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 icon_wink.gif
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:
TYPOSCRIPT
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
<?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 icon_rolleyes.gif

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

Danke schon mal im voraus,
Huaba

[Dieser Beitrag wurde 3mal bearbeitet, zuletzt am 29.11.2006 um 22:35.]
Profil
Verfasst am: 30. 11. 2006 [00:27]
steffenk
Moderator
Dabei seit: 22.09.2005
Beiträge: 4839
kommt mir doch bekannt vor icon_razz.gif

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

ProfilWWW
Verfasst am: 30. 11. 2006 [07:40]
Huaba
Themenersteller
Dabei seit: 12.10.2005
Beiträge: 69
Kann ich mir vorstellen, das Du das kennst icon_cool.gif

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
Profil
Verfasst am: 30. 11. 2006 [09:34]
steffenk
Moderator
Dabei seit: 22.09.2005
Beiträge: 4839
ah, jetzt hab ichs gesehen. Manchmal wäre ein Screenshot einfacher als lange Erklärungen icon_wink.gif

PHP
$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
PHP
$this->basket->calculatedArray['priceNoTax']['shipping']=4.27;


Wie er genau heisst, kannst Du an der Stelle auch rausfinden, indem Du mal ein debug einbaust
PHP
t3lib_div::debug($this->basket->calculatedArray);


ProfilWWW
Verfasst am: 11. 12. 2006 [21:18]
Huaba
Themenersteller
Dabei seit: 12.10.2005
Beiträge: 69
Supi, so hats funktioniert. Danke.
Profil
Verfasst am: 05. 01. 2010 [14:08]
vladivar-superstar
Dabei seit: 23.06.2009
Beiträge: 72
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
Profil