/** * @see Varien_Object::_construct() * overriding in order to implement order shipment * business logic to replace Magento data with * OMS order detail data. * @return void */ protected function _construct() { parent::_construct(); // @see parent::_order property. $this->setOrder($this->getData('order')); // templates and blocks expect something from the getId method, so set the id to // the increment id to ensure output is generated. $this->setId($this->getIncrementId()); // remove the order key, we no long need it. $this->unsetData('order'); if (trim($this->getIncrementId())) { $items = $this->getOrder()->getItemsCollection(); foreach ($this->getShippedItemIds() as $itemRefId) { $item = $items->getItemByColumnValue('ref_id', $itemRefId); if ($item && $item->getSku()) { $this->_injectShipmentItems(array_merge($item->getData(), ['qty' => $item->getQtyShipped()])); } } $tracks = $this->getTracks(); if (!empty($tracks)) { foreach ($tracks as $track) { $this->_injectShipmentTracks(['number' => $track]); } } $this->setAllItems($this->getItems()); } }