/** * Save order related objects * * @return $this */ protected function _afterSave() { if (null !== $this->_addresses) { $this->_addresses->save(); $billingAddress = $this->getBillingAddress(); $attributesForSave = array(); if ($billingAddress && $this->getBillingAddressId() != $billingAddress->getId()) { $this->setBillingAddressId($billingAddress->getId()); $attributesForSave[] = 'billing_address_id'; } $shippingAddress = $this->getShippingAddress(); if ($shippingAddress && $this->getShippigAddressId() != $shippingAddress->getId()) { $this->setShippingAddressId($shippingAddress->getId()); $attributesForSave[] = 'shipping_address_id'; } if (!empty($attributesForSave)) { $this->_getResource()->saveAttribute($this, $attributesForSave); } } if (null !== $this->_items) { $this->_items->save(); } if (null !== $this->_payments) { $this->_payments->save(); } if (null !== $this->_statusHistory) { $this->_statusHistory->save(); } foreach ($this->getRelatedObjects() as $object) { $object->save(); } return parent::_afterSave(); }