Hey, ich habe im Warenkorb einen Button, mit welchem ich einen Controller aufrufe und eine neue Seite angezeigt wird. Nun möchte ich auf der neuen Seite mit den Werten/Waren im Warenkorb arbeite. Ich dachte ich komme über die Session dran. Leider ist diese leer. public function cartAction() { die(Shopware()-\>Session()); exit; }
Warum ist die leer? Danke
Bei einem anderen Fall befinde ich mich beim Controller Checkout / Finish und hier habe ich dieses Array zur Verfügung: $this->View()->assign($this->session[‘sOrderVariables’]->getArrayCopy()); Jetzt befinde ich mich aber erst einen Schritt davor, also bei Checkout / Cart . Hier gibt es die sOrderVariables noch nicht. Wie kann ich hier auf die Variablen zugreifen?
Schau doch dort einafch in die Action - dort siehst du doch unter welchem Namen die verfügbar sind. Die Session-ID kannst du übrigens einfach via session_id(); abfragen
eben, Nichts public function cartAction() { $this-\>View()-\>sUserData = $this-\>getUserData(); $this-\>View()-\>sCountry = $this-\>getSelectedCountry(); $this-\>View()-\>sPayment = $this-\>getSelectedPayment(); $this-\>View()-\>sDispatch = $this-\>getSelectedDispatch(); $this-\>View()-\>sCountryList = $this-\>getCountryList(); $this-\>View()-\>sPayments = $this-\>getPayments(); $this-\>View()-\>sDispatches = $this-\>getDispatches(); $this-\>View()-\>sBasket = $this-\>getBasket(); $this-\>View()-\>sShippingcosts = $this-\>View()-\>sBasket['sShippingcosts']; $this-\>View()-\>sShippingcostsDifference = $this-\>View()-\>sBasket['sShippingcostsDifference']; $this-\>View()-\>sAmount = $this-\>View()-\>sBasket['sAmount']; $this-\>View()-\>sAmountWithTax = $this-\>View()-\>sBasket['sAmountWithTax']; $this-\>View()-\>sAmountTax = $this-\>View()-\>sBasket['sAmountTax']; $this-\>View()-\>sAmountNet = $this-\>View()-\>sBasket['AmountNetNumeric']; $this-\>View()-\>sMinimumSurcharge = $this-\>getMinimumCharge(); $this-\>View()-\>sPremiums = $this-\>getPremiums(); $this-\>View()-\>sInquiry = $this-\>getInquiry(); $this-\>View()-\>sInquiryLink = $this-\>getInquiryLink(); $this-\>View()-\>sTargetAction = 'cart'; }
Ich habe jetzt zwei Möglichkeiten oder? Ich frage über die SessionID einfach direkt die tabelle s_order_basket ab. Oder ich mache ein Event auf den Controller und schreibe die benötigten Daten selbst in die Session. Welches wäre die bevorzugte Variante?
Hä? $this-\>View()-\>sBasket = $this-\>getBasket();
Darüber holt der sich doch den kompletten Warenkorb - welche Daten vermisst du denn genau?
Sorry, habe mich etwas falsch ausgedrückt. Ich befinde mich im Warenkorb (checkout/cart) und blende hier einen eigenen Button ein, welcher mit meinem eigenen Controller verlinkt ist: href="{url module=frontend controller=MeinContr action=cart}"
Jetzt verfüge ich hier aber über keinerlei Variablen. Ich benötige den Warenkorb,Summen, Zahlungsanbieter und Versand. (Kunde muss nicht eingeloggt sein - Besucher)