# basket auf allen Seiten

**URL:** <https://forum.shopware.com/t/basket-auf-allen-seiten/141>\
**Category:** Shopware 3.5\
**Tags:** programming\
**Created:** [10. Juni 2010 um 12:00 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141 "2010-06-10T12:00:58Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![mthrum](https://avatars.discourse-cdn.com/v4/letter/m/e95f7d/32.png) [@mthrum](https://forum.shopware.com/u/mthrum)\
**Post date:** [10. Juni 2010 um 12:00 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/1 "2010-06-10T12:00:58Z")

</div>

Moin, moin, ich brauche den Inhalt des Warenkorbs auf allen Seiten, hat jemand einen Ansatz? - wo wird die $sBasket.Quantity befüllt -\> das hilft mir schon weiter Vielen Dank

---

<div class="post-metadata">

**Author:** ![TEiling](https://avatars.discourse-cdn.com/v4/letter/t/59ef9b/32.png) [@TEiling](https://forum.shopware.com/u/TEiling)\
**Post date:** [10. Juni 2010 um 13:08 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/2 "2010-06-10T13:08:58Z")

</div>

[quote=“mthrum”]Moin, moin, ich brauche den Inhalt des Warenkorbs auf allen Seiten, hat jemand einen Ansatz? - wo wird die $sBasket.Quantity befüllt -\> das hilft mir schon weiter Vielen Dank[/quote] In der s\_basket.php: $variables[“sBasket”] = $this-\>sSYSTEM-\>sMODULES[‘sBasket’]-\>sGetBasket(); Gruß

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [10. Juni 2010 um 15:27 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/3 "2010-06-10T15:27:03Z")

</div>

Hallo, da würde ich in der Funktion sCustomRenderer in der myCore.php (engine/core/class/inherit) folgende Zeile einfügen: ` $sRender['variables']["sBasket"] = $this-\>sSYSTEM-\>sMODULES['sBasket']-\>sGetBasket(); ` Damit steht die Variable in allen Viewports bereit. Wenn du allerdings nur die Menge der Artikel haben möchtest, kannst du besser statt sGetBasket, die Funktion sCountBasket nehmen. Diese gibt die Anzahl der Warenkorb-Positionen zurück.

---

<div class="post-metadata">

**Author:** ![taaucher](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@taaucher](https://forum.shopware.com/u/taaucher)\
**Post date:** [6. Januar 2011 um 15:57 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/4 "2011-01-06T15:57:28Z")

</div>

Wie sieht das für die 3.5er Version aus? Wie kann ich hier auf die Versandkosten, MwSt. usw. auf allen Shopseiten zugreifen? z.B. {$sShippingcosts|currency}

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [6. Januar 2011 um 16:25 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/5 "2011-01-06T16:25:26Z")

</div>

Grundsätzlich noch genauso - einfach mal den Frontend-Checkout Controller anschauen, da z.B. cartAction - dort wird das alles abgefragt. Auf dieser Basis ließe sihc mit Sicherheit auch ein Plugin realisieren…

---

<div class="post-metadata">

**Author:** ![taaucher](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@taaucher](https://forum.shopware.com/u/taaucher)\
**Post date:** [6. Januar 2011 um 16:31 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/6 "2011-01-06T16:31:00Z")

</div>

Kann ich ohne Änderung z.B. auf der Startseite die Versandkosten mit {$sShippingcosts|currency} abfragen? Oder steht mir das default nur in der ceckout/cart zur Verfügung? Was dieses Smarty Snippets betrifft muß ich noch einiges lernen!

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [6. Januar 2011 um 16:33 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/7 "2011-01-06T16:33:20Z")

</div>

Nein - dazu müsstest du im Controller Index in der IndexAction die folgende Zeile einfügen: ` $this-\>View()-\>sShippingcosts = $this-\>View()-\>sBasket['sShippingcosts']; ` Dann ließe sich das so im Template bewerkstelligen - am besten natürlich als Hook und Plugin, aber wie das geht, wurde ja schon sehr oft beschrieben.

---

<div class="post-metadata">

**Author:** ![taaucher](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@taaucher](https://forum.shopware.com/u/taaucher)\
**Post date:** [6. Januar 2011 um 22:17 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/8 "2011-01-06T22:17:13Z")

</div>

Komme leider mit `$this-\>View()-\>sBasket = $this-\>getBasket(); $this-\>View()-\>sShippingcosts = $this-\>View()-\>sBasket['sShippingcosts'];` im Index-Controller IndexAction nicht weiter, das ergibt folgende Fehlermeldung: Method “Shopware\_Proxies\_ShopwareControllersFrontendIndexProxy::getBasket” not found failure in Shopware/Controllers/Frontend/Index.php on line 26 Stack trace: #0 Enlight/Controller/Action.php(167): Enlight\_Class-\>\_\_call(‘getBasket’, Array) #1 [internal function]: Enlight\_Controller\_Action-\>\_\_call(‘getBasket’, Array) #2 Shopware/Controllers/Frontend/Index.php(26): Shopware\_Proxies\_ShopwareControllersFrontendIndexProxy-\>getBasket() #3 Enlight/Controller/Action.php(55): Shopware\_Controllers\_Frontend\_Index-\>indexAction() #4 Enlight/Controller/Dispatcher/DispatcherDefault.php(329): Enlight\_Controller\_Action-\>dispatch(‘indexAction’) #5 Enlight/Controller/Front.php(88): Enlight\_Controller\_Dispatcher\_DispatcherDefault-\>dispatch(Object(Enlight\_Controller\_Request\_RequestHttp), Object(Enlight\_Controller\_Response\_ResponseHttp)) #6 Shopware/Bootstrap.php(21): Enlight\_Controller\_Front-\>dispatch() #7 Enlight/Application.php(69): Shopware\_Bootstrap-\>run() #8 shopware.php(6): Enlight\_Application-\>run() #9 {main}

---

<div class="post-metadata">

**Author:** ![taaucher](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@taaucher](https://forum.shopware.com/u/taaucher)\
**Post date:** [25. Januar 2011 um 15:28 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/9 "2011-01-25T15:28:57Z")

</div>

Möchte dies noch einmal hoch holen, da ich hier einfach nicht weiter komme. `$this-\>View()-\>sBasket = $this-\>getBasket(); ` Erfordert denke ich noch die `public function getBasket()` Muß ich hier die Methoden des Checkout Controllers komplett in den Index Controller packen? Und gegebenenfalls in alle anderen Controller?

---

<div class="post-metadata">

**Author:** ![taaucher](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@taaucher](https://forum.shopware.com/u/taaucher)\
**Post date:** [26. Januar 2011 um 06:46 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/10 "2011-01-26T06:46:41Z")

</div>

Ist das alles zu umfangreich? Wenn ich in den Controller index.php folgendes packe geht es auf der Startseite: [code]\<?php class Shopware\_Controllers\_Frontend\_Index extends Enlight\_Controller\_Action  
{   
protected $admin;  
protected $basket;  
protected $session;

```
public function init()
{
	$this->admin = Shopware()-\>Modules()-\>Admin(); $this-\>basket = Shopware()-\>Modules()-\>Basket(); $this-\>session = Shopware()-\>Session(); } public function preDispatch() { if($this-\>Request()-\>getActionName()!='index') { $this-\>forward('index'); } } public function indexAction() { $this-\>View()-\>loadTemplate('frontend/home/index.tpl'); $category = Shopware()-\>Shop()-\>get('parentID'); $this-\>View()-\>sCharts = Shopware()-\>Modules()-\>Articles()-\>sGetArticleCharts(); $this-\>View()-\>sCategoryContent = Shopware()-\>Modules()-\>Categories()-\>sGetCategoryContent($category); $this-\>View()-\>sOffers = Shopware()-\>Modules()-\>Articles()-\>sGetPromotions($category); $this-\>View()-\>sLiveShopping = $this-\>getLiveShopping(); $this-\>View()-\>sBanner = Shopware()-\>Modules()-\>Marketing()-\>sBanner($category); $this-\>View()-\>sBasket = $this-\>getBasket(); $this-\>View()-\>sShippingcosts = $this-\>View()-\>sBasket['sShippingcosts']; $this-\>View()-\>sBlog = $this-\>getBlog(); if($this-\>Request()-\>getPathInfo()!='/') { $this-\>Response()-\>setHttpResponseCode(404); } } public function getShippingCosts() { $country = $this-\>getSelectedCountry(); $payment = $this-\>getSelectedPayment(); if(empty($country)||empty($payment)) return array('brutto'=\>0, 'netto'=\>0); $shippingcosts = $this-\>admin-\>sGetShippingcosts($country, $payment['surcharge'], $payment['surchargestring']); return empty($shippingcosts) ? array('brutto'=\>0, 'netto'=\>0) : $shippingcosts; } public function getBasket() { $basket = $this-\>basket-\>sGetBasket(); $shippingcosts = $this-\>getShippingCosts(); $basket = $this-\>basket-\>sGetBasket(); $basket['sShippingcostsWithTax'] = $shippingcosts['brutto']; $basket['sShippingcostsNet'] = $shippingcosts['netto']; $basket['sShippingcostsTax'] = $shippingcosts['tax']; if (!empty($shippingcosts['brutto'])) { $basket['AmountNetNumeric'] += $shippingcosts['netto']; $basket['AmountNumeric'] += $shippingcosts['brutto']; $basket['sShippingcostsDifference'] = $shippingcosts['difference']['float']; } if (!empty($basket['AmountWithTaxNumeric'])) { $basket['AmountWithTaxNumeric'] += $shippingcosts['brutto']; } if ((!Shopware()-\>System()-\>sUSERGROUPDATA['tax'] && Shopware()-\>System()-\>sUSERGROUPDATA['id'])) { $basket['sTaxRates'] = $this-\>getTaxRates($basket); $basket['sShippingcosts'] = $shippingcosts['netto']; $basket['sAmount'] = round($basket['AmountNetNumeric'], 2); $basket['sAmountTax'] = round($basket['AmountWithTaxNumeric']-$basket['AmountNetNumeric'], 2); $basket['sAmountWithTax'] = round($basket['AmountWithTaxNumeric'], 2); } else { $basket['sShippingcosts'] = $shippingcosts['brutto']; $basket['sAmount'] = $basket['AmountNumeric']; $basket['sAmountTax'] = round($basket['AmountNumeric']-$basket['AmountNetNumeric'], 2); } return $basket; } public function getSelectedCountry() { if(!empty($this-\>View()-\>sUserData['additional']['countryShipping'])) { $this-\>session['sCountry'] = (int) $this-\>View()-\>sUserData['additional']['countryShipping']['id']; return $this-\>View()-\>sUserData['additional']['countryShipping']; } $countries = $this-\>getCountryList(); if(empty($countries)) { unset($this-\>session['sCountry']); return false; } $country = reset($countries); $this-\>session['sCountry'] = (int) $country['id']; $this-\>View()-\>sUserData['additional']['countryShipping'] = $country; return $country; } public function getCountryList() { return $this-\>admin-\>sGetCountryList(); } public function getPayments() { return $this-\>admin-\>sGetPaymentMeans(); } public function getSelectedPayment() { if(!empty($this-\>View()-\>sUserData['additional']['payment'])) { $payment = $this-\>View()-\>sUserData['additional']['payment']; } elseif(!empty($this-\>session['sPaymentID'])) { $payment = $this-\>admin-\>sGetPaymentMeanById($this-\>session['sPaymentID'], $this-\>View()-\>sUserData); } if (!empty($payment['table'])) { $paymentClass = $this-\>admin-\>sInitiatePaymentClass($payment); if (!empty($paymentClass)) { $payment['data'] = $paymentClass-\>getData(); } } if(!empty($payment)) { return $payment; } $payments = $this-\>getPayments(); if(empty($payments)) { unset($this-\>session['sPaymentID']); return false; } $payment = reset($payments); $this-\>session['sPaymentID'] = (int) $payment['id']; return $payment; } public function getLiveShopping() { $liveShopping = Shopware()-\>Modules()-\>Articles()-\>sGetLiveShopping('random', 0, null, true, 'AND lv.frontpage\_display=1', '', 0); if(!empty($liveShopping["liveshoppingData"][0]['articleID'])) { return $liveShopping; } return null; } public function getBlog() { $blog = null; if (!empty(Shopware()-\>Config()-\>BlogCategory)) { $category = isset(Shopware()-\>System()-\>\_GET['sCategory']) ? Shopware()-\>System()-\>\_GET['sCategory'] : null; $blog = Shopware()-\>Modules()-\>Articles()-\>sGetArticlesByCategory(Shopware()-\>Config()-\>BlogCategory, true, Shopware()-\>Config()-\>BlogLimit); Shopware()-\>System()-\>\_GET['sCategory'] = $category; } return $blog; } }[/code] Aber das ist viel Code, ist das denn wirklich in dem Ausmaß nötig?
```

---

<div class="post-metadata">

**Author:** ![taaucher](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@taaucher](https://forum.shopware.com/u/taaucher)\
**Post date:** [26. Januar 2011 um 15:26 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/11 "2011-01-26T15:26:52Z")

</div>

Gibt es wirklich niemanden der dazu etwas sagen kann?

---

<div class="post-metadata">

**Author:** ![taaucher](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@taaucher](https://forum.shopware.com/u/taaucher)\
**Post date:** [26. Januar 2011 um 18:13 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/12 "2011-01-26T18:13:39Z")

</div>

Ich habe in der myCore.php (engine/core/class/inherit) folgendes eingefügt, aber das klappte wohl nur in der alten Version, oder? `$sRender['variables']["sShippingcosts"] = $this-\>sSYSTEM-\>sMODULES['sShippingcosts']-\>sGetShippingcosts();`

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [27. Januar 2011 um 07:56 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/13 "2011-01-27T07:56:59Z")

</div>

Hey, du legst ein Plugin an mit einem Post-Dispatch - dann folgender Code für die Methode: [code] public function onPostDispatch(Enlight\_Event\_EventArgs $args) { $view = $args-\>getSubject()-\>View(); $request = $args-\>getSubject()-\>Request(); if(!$request-\>isDispatched()||$request-\>getModuleName()!=‘frontend’) return; // Versandkosten ermitteln $user = array(); $user = Shopware()-\>Modules()-\>Admin()-\>sGetUserData(); Shopware()-\>Modules()-\>Basket()-\>sCheckBasketBundles(); $basket = Shopware()-\>Modules()-\>Basket()-\>sGetBasket(); $county = Shopware()-\>Session()-\>sCountry ? Shopware()-\>Session()-\>sCountry : 2; $paymentID = Shopware()-\>Session()-\>sPaymentID ? Shopware()-\>Session()-\>sPaymentID : 5; $paymentData = Shopware()-\>Modules()-\>Admin()-\>sGetPaymentMeanById($paymentID, $user); if (empty($country) || empty($paymentData)){ $view-\>myShipping = array(‘brutto’=\>0, ‘netto’=\>0); }else { $view-\>myShipping = Shopware()-\>Modules()-\>Admin()-\>sGetShippingcosts($country, $paymentData[‘surcharge’], $paymentData[‘surchargestring’]) } [/code} Habe das nicht getestet, aber so müsste das vom Prinzip her auf jeden Fall funktionieren - über {$myShipping.brutto} müsstest du dann im Template auf die Versandkosten zugreifen können…

---

<div class="post-metadata">

**Author:** ![taaucher](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@taaucher](https://forum.shopware.com/u/taaucher)\
**Post date:** [27. Januar 2011 um 10:24 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/14 "2011-01-27T10:24:46Z")

</div>

Danke für deine Hilfestellung, leider haut das bei mir nicht hin. Folgende Bootstrap.php habe ich jetzt: `<?php class Shopware_Plugins_Frontend_myBasket_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
	public function install()
	{		
		$event = $this->createEvent( 'Enlight\_Controller\_Action\_PostDispatch', 'onPostDispatch' ); $this-\>subscribeEvent($event); return true; } public function onPostDispatch(Enlight\_Event\_EventArgs $args) { $view = $args-\>getSubject()-\>View(); $request = $args-\>getSubject()-\>Request(); if(!$request-\>isDispatched()||$request-\>getModuleName()!='frontend') return; // Versandkosten ermitteln $user = array(); $user = Shopware()-\>Modules()-\>Admin()-\>sGetUserData(); Shopware()-\>Modules()-\>Basket()-\>sCheckBasketBundles(); $basket = Shopware()-\>Modules()-\>Basket()-\>sGetBasket(); $county = Shopware()-\>Session()-\>sCountry ? Shopware()-\>Session()-\>sCountry : 2; $paymentID = Shopware()-\>Session()-\>sPaymentID ? Shopware()-\>Session()-\>sPaymentID : 5; $paymentData = Shopware()-\>Modules()-\>Admin()-\>sGetPaymentMeanById($paymentID, $user); if (empty($country) || empty($paymentData)){ $view-\>myShipping = array('brutto'=\>0, 'netto'=\>0); }else { $view-\>myShipping = Shopware()-\>Modules()-\>Admin()-\>sGetShippingcosts($country, $paymentData['surcharge'], $paymentData['surchargestring']) } }` Bekomme da aber sofort Fehlermeldungen. Parse error: syntax error, unexpected $end, expecting T\_FUNCTION in /www/htdocs/w005dea0/engine/Shopware/Plugins/Community/Frontend/myBasket/Bootstrap.php on line 36 Habe auch schon versucht noch eine } zu setzen, da ich dachte das bei der if else Abfrage eine fehlt, aber gleicher Fehler.

---

<div class="post-metadata">

**Author:** ![radox1](https://avatars.discourse-cdn.com/v4/letter/r/e19b73/32.png) [@radox1](https://forum.shopware.com/u/radox1)\
**Post date:** [27. Januar 2011 um 11:47 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/15 "2011-01-27T11:47:50Z")

</div>

Nur mal kurz drübergeschaut - nicht getestet. Da fehlt eine Klammer ‚}‘ am Ende und ein ‚;‘ hinter einer Anweisung.

---

<div class="post-metadata">

**Author:** ![taaucher](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@taaucher](https://forum.shopware.com/u/taaucher)\
**Post date:** [27. Januar 2011 um 12:41 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/16 "2011-01-27T12:41:43Z")

</div>

Hatte das jetzt mal so integriert: ` public function onPostDispatch(Enlight\_Event\_EventArgs $args) { $request = $args-\>getSubject()-\>Request(); $response = $args-\>getSubject()-\>Response(); $view = $args-\>getSubject()-\>View(); if(!$request-\>isDispatched()||$request-\>getModuleName()!='frontend') return; // Versandkosten ermitteln $user = array(); $user = Shopware()-\>Modules()-\>Admin()-\>sGetUserData(); Shopware()-\>Modules()-\>Basket()-\>sCheckBasketBundles(); $basket = Shopware()-\>Modules()-\>Basket()-\>sGetBasket(); $county = Shopware()-\>Session()-\>sCountry ? Shopware()-\>Session()-\>sCountry : 2; $paymentID = Shopware()-\>Session()-\>sPaymentID ? Shopware()-\>Session()-\>sPaymentID : 5; $paymentData = Shopware()-\>Modules()-\>Admin()-\>sGetPaymentMeanById($paymentID, $user); if (empty($country) || empty($paymentData)){ $view-\>myShipping = array('brutto'=\>0, 'netto'=\>0); }else{ $view-\>myShipping = Shopware()-\>Modules()-\>Admin()-\>sGetShippingcosts($country, $paymentData['surcharge'], $paymentData['surchargestring']);} }` Wird nur leider nichts ausgegeben. Ich glaube ich gebe das auf. Ist mir doch zu komplex.

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [27. Januar 2011 um 13:44 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/17 "2011-01-27T13:44:21Z")

</div>

Probiere doch mal das Script zu debuggen - also dazu gibt es ja auch einen Artikel in den Labs - im Notfall halt mit var\_dump und print\_r und exit 😉 Also herausfinden, wo es im Listing hängt und welche Werte die verschiedenen Variablen haben. Insbesondere interessant ist paymentData und die Rückgabe von Shopware()-\>Modules()-\>Admin()-\>sGetShippingcosts - eventuell gibt die Funktion einfach nichts zurück, da für die aktuelle Konstellation (Land / Zahlungsart + eigene Regeln) keine Versandkosten ermittelt werden können?

---

<div class="post-metadata">

**Author:** ![taaucher](https://avatars.discourse-cdn.com/v4/letter/t/ac8455/32.png) [@taaucher](https://forum.shopware.com/u/taaucher)\
**Post date:** [28. Januar 2011 um 08:51 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/18 "2011-01-28T08:51:10Z")

</div>

Hallo Stefan, evtl. brauche ich das Ganze etwas einfacher. Wenn ich in den Shop gehe, ohne angemeldet zu sein, und dann etwas in den Warenkorb lege, diesen dann auch aufrufe, werden pauschal Versandkosten angegeben, bei mir bis 150€ Warenwert 5€. Diese Versandkosten möchte ich einfach auf jeder Seite auswerten, falls dann jemand eingelogged ist, ändern die sich ja automatisch.

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [28. Januar 2011 um 10:10 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/19 "2011-01-28T10:10:02Z")

</div>

Okay, SO geht es auf jeden Fall - gerade getestet: Neues Plugin Frontend/TestShippingDispatch. Bootstrap.php `<?php class Shopware_Plugins_Frontend_TestShippingDispatch_Bootstrap extends Shopware_Components_Plugin_Bootstrap
{
	public function install()
	{
		$event = $this->createEvent( 'Enlight\_Controller\_Action\_PostDispatch', 'onPostDispatch' ); $this-\>subscribeEvent($event); return true; } static function onPostDispatch(Enlight\_Event\_EventArgs $args) { $request = $args-\>getSubject()-\>Request(); $response = $args-\>getSubject()-\>Response(); $view = $args-\>getSubject()-\>View(); if(!$request-\>isDispatched()||$request-\>getModuleName()!='frontend') return; // Versandkosten ermitteln $user = array(); $user = Shopware()-\>Modules()-\>Admin()-\>sGetUserData(); Shopware()-\>Modules()-\>Basket()-\>sCheckBasketBundles(); $basket = Shopware()-\>Modules()-\>Basket()-\>sGetBasket(); $country = Shopware()-\>Modules()-\>Admin()-\>sGetCountry(Shopware()-\>Session()-\>sCountry ? Shopware()-\>Session()-\>sCountry : 2); $paymentID = Shopware()-\>Session()-\>sPaymentID ? Shopware()-\>Session()-\>sPaymentID : 5; $paymentData = Shopware()-\>Modules()-\>Admin()-\>sGetPaymentMeanById($paymentID, $user); if (empty($country) || empty($paymentData)){ $view-\>myShipping = array('brutto'=\>0, 'netto'=\>0); }else{ $view-\>myShipping = Shopware()-\>Modules()-\>Admin()-\>sGetShippingcosts($country, $paymentData['surcharge'], $paymentData['surchargestring']); } } } ` Im Template via {$myShipping.brutto} bzw. {$myShipping.netto} abfragen. Dass das so „kompliziert“ ist, hängt mit der allgemeinen Komplexität des Themas Versandkosten zusammen - damit dort die korrekten Kosten ermittelt werden können, sind zum Teil sehr umfangreiche Berechnungen / Bedingungen zu prüfen - das nur zur Info!

---

<div class="post-metadata">

**Author:** ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)\
**Post date:** [28. Januar 2011 um 10:10 UTC](https://forum.shopware.com/t/basket-auf-allen-seiten/141/20 "2011-01-28T10:10:50Z")

</div>

Wenn der Kunde noch kein Land und keine Zahlungsart gewählt hat, werden die Versandkosten auf Basis von Deutschland (Land = 2) und Vorkasse (Zahlungsart = 5) berechnet - beides würde man bei einem „richtigen“ Plugin noch konfigurierbar gestalten!

[Nächste Seite](https://forum.shopware.com/t/basket-auf-allen-seiten/141.md?page=2)
