Magento: "status" und "state"

Ein bemerkenswertes Verhalten von Magento hat bei uns für etwas Verwirrung gesorgt. Man konnte per Code in Bestellungen perfekt nach dem Bestellstatus "pending" filtern. In in dem darauf hin gelieferten Objekt befand sich die korrekte Anzahl an Bestellungs-Objekten - Aber angeblich war keins vom Status "pending". Des Rätsels Lösung ist banaler als gedacht.

Ein bemerkenswertes Verhalten von Magento hat bei uns für etwas Verwirrung gesorgt. Man konnte per Code in Bestellungen perfekt nach dem Bestellstatus "pending" filtern. In in dem darauf hin gelieferten Objekt befand sich die korrekte Anzahl an Bestellungs-Objekten - Aber angeblich war keins vom Status "pending". Des Rätsels Lösung ist banaler als gedacht.

Filtert man Bestellungen unter Anderem mit dem Status "pending", so erhält man sie auch.

$orders = Mage::getResourceModel('sales/order_collection')
	->addFieldToFilter('status', array("in" => array(
		'processing','pending')
	))
	->load();

Im darauf hin gelieferten Order-Objekt erhält man den Status dann mittels der Methode "getState()".

foreach ($orders as $order) {
	echo $order->getState() . ", ";
}

Wer nun aber erwartet, dass getState() ebenfalls den Status "pending" liefert, der wird sich schwer wundern. In diesem Fall liefert diese Methode nämlich nicht das erwartete "pending", sondern ein "new".

new, processing, new

Wenn dieser Fall also einmal eintreten sollte: Keine Sorge, alles ist gut - Und das Magento-Kuriositätenkabinett um einen Eintrag reicher.

Scroll
Wir verwenden technische und analytische Cookies, um Ihnen alle Funktionen unserer Internetseite darstellen zu können. Weitere Informationen