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 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 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.] |
|
Verfasst am: 30. 11. 2006 [00:27]
|
|
|
steffenk
Moderator
Dabei seit: 22.09.2005
Beiträge: 4839
|
kommt mir doch bekannt vor Wo sind denn keine MwSt ? Das seh ich nicht, daher versteh ich Dein Problem auch nicht |
|
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 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 |
|
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 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); |
|
Verfasst am: 11. 12. 2006 [21:18]
|
|
|
Huaba
Themenersteller
Dabei seit: 12.10.2005
Beiträge: 69
|
Supi, so hats funktioniert. Danke. |
|
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 |



