protected function _importCustomerAddressTo(Mage_Sales_Model_Quote_Address $address) { $customerAddress = $this->getCustomer()->getPrimaryShippingAddress(); if ($customerAddress) { $address->importCustomerAddress($customerAddress)->setSaveInAddressBook(0); } }
/** * Update the resource model * * @param Mage_Sales_Model_Quote_Address $resource * @param array $data * * @return Mage_Sales_Model_Quote_Address */ public function updateResource(Mage_Sales_Model_Quote_Address $resource, array $data) { // Store current state $actionType = $this->getActionType(); $operation = $this->getOperation(); // Change state $this->setActionType(self::ACTION_TYPE_ENTITY); $this->setOperation(self::OPERATION_UPDATE); // Get a filter instance $filter = $this->getFilter(); // Filter raw incoming data $data = $filter->in($data); // Check if the update is setting a customer address ID to use if (array_key_exists('customer_address_id', $data) && $data['customer_address_id']) { /** @var Mage_Customer_Model_Address $customerAddress */ $customerAddress = Mage::getModel('customer/address')->load($data['customer_address_id']); if ($customerAddress->getId()) { if ($customerAddress->getCustomerId() != $resource->getQuote()->getCustomerId()) { $this->_critical(Mage::helper('checkout')->__('Customer Address is not valid.'), Mage_Api2_Model_Server::HTTP_BAD_REQUEST); } $resource->importCustomerAddress($customerAddress); $resource->setSaveInAddressBook(0); } } else { // Fix region/country data $data = $this->getHelper()->fixAddressData($data, $resource->getCountryId(), $resource->getRegionId()); // Get allowed attributes $allowedAttributes = $filter->getAllowedAttributes(Mage_Api2_Model_Resource::OPERATION_ATTRIBUTE_WRITE); // Update model $this->saveResourceAttributes($resource, array_merge($allowedAttributes, ['region_id']), $data); } // Update the shipping address if it is meant to match the billing address if ($resource->getQuote()->getShippingAddress()->getSameAsBilling()) { $shippingAddress = $resource->getQuote()->getShippingAddress(); $shippingAddress->importCustomerAddress($resource->exportCustomerAddress()); $shippingAddress->setSameAsBilling(1); } // Validate address $addressErrors = $this->getHelper()->validateQuoteAddress($resource); if (!empty($addressErrors)) { $resource->setData('validation_errors', $addressErrors); } // Fire event - after $data = new Varien_Object($data); Mage::dispatchEvent('aoe_cartapi_billingaddress_update_after', ['data' => $data, 'filter' => $filter, 'resource' => $resource]); // Restore old state $this->setActionType($actionType); $this->setOperation($operation); // Return updated resource return $resource; }
protected function setQuoteAddresses() { $defaultAddress = $this->getDefaultAddress(); $billingAddress = new Mage_Sales_Model_Quote_Address(); $billingAddress->importCustomerAddress($defaultAddress); $this->quote->setBillingAddress($billingAddress); $shippingAddress = new Mage_Sales_Model_Quote_Address(); $shippingAddress->importCustomerAddress($defaultAddress); $this->quote->setShippingAddress($shippingAddress); return $this; }
protected function setupShippingAddress() { $address = new \Mage_Sales_Model_Quote_Address(); $address->importCustomerAddress($this->getCustomerShippingAddress()); $this->getQuote()->setShippingAddress($address); return $this; }