/** * Set correct values on subscription address based on given subscription and order address * * @param Adyen_Subscription_Model_Subscription $subscription * @param Mage_Sales_Model_Order_Address|Mage_Sales_Model_Quote_Address $address * @return $this */ public function initAddress(Adyen_Subscription_Model_Subscription $subscription, $address) { $this->setSubscriptionId($subscription->getId()); // Reset (possible) original values $this->setOrderAddressId(null)->setCustomerAddressId(null)->setQuoteAddressId(null); if ($address->getAddressType() == Mage_Sales_Model_Order_Address::TYPE_BILLING) { $this->setType(self::ADDRESS_TYPE_BILLING); } else { $this->setType(self::ADDRESS_TYPE_SHIPPING); } // Note: Only use customer address if 'save_in_address_book' or 'same_as_billing' // is also checked at the address, because it's not enough to rely solely on the // customer address ID, because an address can be changed when creating an order // in the backend, but this ID still remains when a quote is converted to an order if ($address->getCustomerAddressId() && $address->getData('save_in_address_book')) { // Create customer address $this->setSource(self::ADDRESS_SOURCE_CUSTOMER)->setCustomerAddressId($address->getCustomerAddressId()); } elseif ($address instanceof Mage_Sales_Model_Quote_Address) { // Create quote address $this->setSource(self::ADDRESS_SOURCE_QUOTE)->setQuoteAddressId($address->getId()); } else { // Create order address $this->setSource(self::ADDRESS_SOURCE_ORDER)->setOrderAddressId($address->getId()); } return $this; }
/** * Convert quote address to order address * * @param Mage_Sales_Model_Quote_Address $address * @return Mage_Sales_Model_Order_Address */ public function addressToOrderAddress(Mage_Sales_Model_Quote_Address $address) { $orderAddress = Mage::getModel('Mage_Sales_Model_Order_Address')->setStoreId($address->getStoreId())->setAddressType($address->getAddressType())->setCustomerId($address->getCustomerId())->setCustomerAddressId($address->getCustomerAddressId()); Mage::helper('Mage_Core_Helper_Data')->copyFieldset('sales_convert_quote_address', 'to_order_address', $address, $orderAddress); Mage::dispatchEvent('sales_convert_quote_address_to_order_address', array('address' => $address, 'order_address' => $orderAddress)); return $orderAddress; }
/** * Convert quote address to order address * * @param Mage_Sales_Model_Quote_Address $address * @return Mage_Sales_Model_Order_Address */ public function addressToOrderAddress(Mage_Sales_Model_Quote_Address $address) { $orderAddress = Mage::getModel('sales/order_address')->setStoreId($address->getStoreId())->setAddressType($address->getAddressType())->setCustomerId($address->getCustomerId())->setCustomerAddressId($address->getCustomerAddressId())->setFirstname($address->getFirstname())->setLastname($address->getLastname())->setCompany($address->getCompany())->setStreet($address->getStreet(-1))->setCity($address->getCity())->setRegion($address->getRegion())->setRegionId($address->getRegionId())->setPostcode($address->getPostcode())->setCountryId($address->getCountryId())->setTelephone($address->getTelephone())->setFax($address->getFax()); return $orderAddress; }
/** * Convert quote address to order address * * @param Mage_Sales_Model_Quote_Address $address * @return Mage_Sales_Model_Order_Address */ public function addressToOrderAddress(Mage_Sales_Model_Quote_Address $address) { $orderAddress = AO::getModel('sales/order_address')->setStoreId($address->getStoreId())->setAddressType($address->getAddressType())->setCustomerId($address->getCustomerId())->setCustomerAddressId($address->getCustomerAddressId()); AO::helper('core')->copyFieldset('sales_convert_quote_address', 'to_order_address', $address, $orderAddress); // ->setPrefix($address->getPrefix()) // ->setFirstname($address->getFirstname()) // ->setMiddlename($address->getMiddlename()) // ->setLastname($address->getLastname()) // ->setSuffix($address->getSuffix()) // ->setCompany($address->getCompany()) // ->setStreet($address->getStreet(-1)) // ->setCity($address->getCity()) // ->setRegion($address->getRegion()) // ->setRegionId($address->getRegionId()) // ->setPostcode($address->getPostcode()) // ->setCountryId($address->getCountryId()) // ->setTelephone($address->getTelephone()) // ->setFax($address->getFax()); AO::dispatchEvent('sales_convert_quote_address_to_order_address', array('address' => $address, 'order_address' => $orderAddress)); return $orderAddress; }