/** * Get an order item collection for all items that belong to a given * order address. * * @param Mage_Sales_Model_Order_Address * @return Mage_Sales_Model_Resource_Order_Item_Collection */ public function createItemCollectionForAddress(Mage_Sales_Model_Order_Address $address) { $itemFilters = $address->isPrimaryShippingAddress() || $this->_isAddressBillingAddress($address) ? $this->_getPrimaryAddressFilters($address) : $this->_getSecondaryAddressFilters($address); $items = Mage::getResourceModel('sales/order_item_collection'); foreach ($itemFilters as $field => $conditions) { $items->addFieldToFilter($field, $conditions); } // Add a link to the address object (this) to each item as well as // ensure all items have the correct order address id (mainly for // items that may not have an order address id when this is the // primary shipping address) $items->setDataToAll(['order_address' => $address, 'order_address_id' => $address->getId()]); return $items; }