Order-Objekt - Nicht alle spalten werden geladen

#1

Hallo OXID-Freunde,

ich habe ein Modul, welches nach Abschluss einer Bestellung, die Daten an eine Warenwirtschaft überträgt. Die Bestellungen können von Ebay, Amazon (beides drittanbieter-module) oder nativ aus dem Shop kommen.

Hierzu überlade ich _setOrderStatus() im Order-Objekt.

Hier muss ich dann prüfen, von wo diese Bestellung kommt.
Beim Ebay-Modul mache ich das so:

$oCurrentOrder = $this;

    $test_ebay_oxorderreferrer = (trim($oCurrentOrder->oxorder__oxorderreferrer->getRawValue()) == "referrer_ebay") ? "true" : "false";

    $test_ebay_ebayorder_id = (trim($oCurrentOrder->oxorder__ebayorder_id->getRawValue()) != "") ? "true" : "false";

    $test_ebay_complete = (trim($oCurrentOrder->oxorder__ebay_complete->getRawValue()) == "1") ? "true" : "false";

    $test_ebay_user = (trim($oCurrentOrder->oxorder__ebay_user->getRawValue()) != "") ? "true" : "false";`

Hier kann ich prima auf diese Spalten des ebay-Moduls zugreifen.

Wenn ich nun aber eine Bestellung nativ aus dem Shop abschließe, kommt ein Fehler, dass
$oCurrentOrder->oxorder__oxorderreferrer ein Boolscher wert ist und daher keine Methoden hat.

mit einem Var-Dump des $oCurrentOrder - Objektes zeigt sich, dass viele Spalten das Field-Objekt beinhalten, viele andere Spalten aber false sind.

Woran liegt das und wie kann ich erzwingen dass alle Datenbankfelder in das objekt geladen werden?

Danke vorab.

#2

Beim Bestellabschluss wird die Bestellung erst nach dem ersten _setOrderStatus() in die DB geschrieben, folglich gibts da nichts zu laden.
Du musst die Felder vorher befüllen, um auf sie zuzugreifen.

#3

Danke für die schnelle Antwort - ich gehe aber in die meine Erweiterungfunktion erst rein, wenn
_setOrderStatus() den Wert OK übermittelt bekommt.

Und da sollte eigentlich schon alles drinnen stehen.
Eben das (ebay)Modul welches dieses Feld nutzt war vorher nicht aktiv.

Gibt es irgendeinen Mechanismus, der bestimmt, ob alle und wenn nein welche Felder in das Objekt geladen werden sollen?