Wie überprüfe ich, ob eine Bestellung eine Lieferung in Magento hat?

8

Ich muss prüfen, ob eine Bestellung bereits versandt wurde. Die einzigen Daten, die ich verwenden kann, ist die Inkrement-ID der Bestellung. Ich erhalte eine Instanz einer Musterbestellung, aber ich sehe keine Möglichkeit, eine Versandinstanz zu erhalten.

Ich benutze diesen Code:

%Vor%

Aber wie kann ich eine Versandinstanz bekommen? Ich weiß, dass ich Mage::getModel('sales/order_shipment')->loadByIncrementId($shipment_increment_id) aufrufen kann, aber wie bekomme ich die Sendungsinkrement-ID?

    
Italo André 21.09.2011, 20:32
quelle

2 Antworten

26

Nehmen Sie an, dass die Person, die dies geschrieben hat, auch das tun muss, was Sie tun müssen. Im Allgemeinen, wenn Magento-Objekte eine Eins-zu-viele-Beziehung haben, können Sie eine Methode finden, um die vielen auf die eine zu laden.

Sie haben einen Klassenalias sales/order .

Dies entspricht Mage_Sales_Model_Order (in einer Bestandsinstallation).

Sie finden diese Klasse unter app/code/core/Mage/Sales/Model/Order.php .

Wenn Sie diese Klasse untersuchen, gibt es 7 Methoden mit dem Wort "ship" in ihnen

%Vor%

Von diesen 7 gibt nur die Semantik von getShipmentsCollection eine Methode an, um die Lieferungen eines Auftrags zu erfassen. Also probiere

aus %Vor%

Oder sehen Sie sich die Quelle für getShipmentsCollection

an %Vor%     
Alan Storm 21.09.2011, 21:34
quelle
8

Nur um es zu vervollständigen Mage_Sales_Model_Order hat eine öffentliche Methode:
hasShipments()
gibt die Anzahl der Transporte zurück und verwendet intern getShipmentsCollection() .

    
muffir 13.05.2013 11:13
quelle

Tags und Links