我创建了一个挂在

sales_order_shipment_save_after

事件。我已经测试了与Mage :: Log一起使用的钩子,我的问题是,如何获得刚刚创建的发货的订单ID?编辑:我尝试了以下内容,但是$ orderid在日志中返回空白...

public function invoice_and_complete($observer)
{
   $event = $observer->getEvent();
   $orderId = $event->getOrderIds();

   Mage::log($orderId);
}
有帮助吗?

解决方案

为了 sales_order_shipment_save_after 看起来好像只会将货物传递给您 getEvent 方法。从那里您应该能够到达订单对象 - 一个示例:

class Company_Shipmentsave_Model_Observer
{
    public function salesOrderShipmentSaveAfter(Varien_Event_Observer $observer)
    {
            $shipment = $observer->getEvent()->getShipment();
            $order = $shipment->getOrder();

            //do something with order - get the increment id:
            $order->getIncrementId();

            //get all of the order items:
            $items = $order->getAllItems();
            return $this;
    }

}

资源:

https://stackoverflow.com/questions/3164800/my-magento-observer-is-getting-in-endless-loop

许可以下: CC-BY-SA归因
scroll top