Basket objekt

Sorry! I’m a fool - Can a moderator please move this to the german subforum

Huhu,

habe mich mal gerade im Forum umgesehen, allerdings nur einen Beitrag von 2011 gefunden. Ich habe für eine Kaufabwicklung eine Schnittstelle zur verfügung. Die erwartet, logischerweise, einen Preis.

Jetzt dachte ich mir: ist ja kein Problem, holst du dir aus der Session den Preis, der letztlich ja auch in der order steht. Aber irgendwie werde ich nicht fündig, wie ich ein Objekt davon instanziiere.

Versucht mit:


$oBasket = oxSession::getInstance()->getOrder

wirft allerdings:
Call to undefined method oxSession::getInstance()

In der Klassenreferenz hier habe ich zwar einiges gefunden, aber oft nur template-getter.

Da ich aber sämtliche Daten der Bestellung, und nicht nur den Preis brauche, bietet sich “oxorder” ja an. Absenderland, Bezahlung, name/vorname…
Ich befinde mich in einem Modul, welches die oxEmail überschreibt, falls das von Relevanz ist.

versuch mit oxRegistry::getSession()->getOrder…

wirft mir “null”. Ich vermute, dass die Order zu dem Zeitpunkt gelöscht wird, wenn die Dankesseite angezeigt wird?

Sonst niemand eine Idee?

Ich rufe folgendes auf:


        var_dump(oxRegistry::getSession()->getOrder());
        die;

Aber im Log steht:


Function 'getOrder' does not exist or is not accessible! (oxSession)

Ich rufe das aus der Klasse mymodule_email auf: (überschreibt oxemail).

Das wird so nicht funktionieren, aber Du könntest es so machen:

$oOrder->load( $oxid );
$oBasket = $oOrder->_getOrderBasket();

[QUOTE=foxido.de;150228]Das wird so nicht funktionieren, aber Du könntest es so machen:

$oOrder->load( $oxid );
$oBasket = $oOrder->_getOrderBasket();

[/QUOTE]

Hey, danke für den hinweis, werde ich gleich direkt mal versuchen.
Ich nehme an, $oxid ermittle ich durch einen sql-query? oder gibt es dafür magic-getters?

$oOrder ist in diesem Kontext auch kein Objekt. Nur wenn ich eine neue Instanz erzeuge, dann würde ich ja die Bestellung überschreiben, oder?

habe hier gesehen, dass mit oxConfig::getParameter() die oxid ermittelt wird. Bei mir erscheint jedoch der Fehler:


Call to undefined method oxConfig::getParameter()

Bei


$oOrder = oxNew( 'oxorder' );
var_dump($oOrder->_getOrderBasket());
die;

bekomme ich auch die meldung, dass _getOrderBasket() not accessible wäre :confused:

Gibt es nichts wie “oxOrder::getBasket()” oder ähnliches? Ich muss doch sicherlich kein neues Objekt erzeugen, um die aktuelle Bestellung in irgendeiner art und weise zu laden.

Ich sehe in der class-ref zwar das es etwas gibt wie oxSession::getBasket(), aber das wirft mir oxid-Fehler (called to undefined function: getParameter())

Mittels


var_dump(oxRegistry::getSession()->_oBasket);

komme ich logischerweise auch nicht drauf, da protected

Ich dachte, Du wolltest den Basket aus der Order wiederherstellen.

Ist die Bestellung denn schon abgeschlossen oder nicht?

[QUOTE=foxido.de;150232]Ich dachte, Du wolltest den Basket aus der Order wiederherstellen.

Ist die Bestellung denn schon abgeschlossen oder nicht?[/QUOTE]

Nunja, quasi schon, aber das Mailtemplate wird ja vermutlich auch mit den Werten des Baskets gefüllt. Ergo denke ich, dass ich die Werte noch haben muss.

Parallel zum Mailversand geschieht das also (quasi die Bestätigungsmail).

Dann schau Dir

_sendOrderByEmail()

an. In den Bestätigungsmails sollte alles verfügbar sein.