/** * Validate customer address * * @param Mage_Sales_Model_Quote_Address $address * @return bool */ public function validateAddress(Mage_Sales_Model_Quote_Address $address) { $errors = array(); $helper = Mage::helper('customer'); $address->implodeStreetAddress(); if (!Zend_Validate::is($address->getFirstname(), 'NotEmpty')) { $errors[] = $helper->__('Please enter the first name.'); } /* if (!Zend_Validate::is($address->getLastname(), 'NotEmpty')) { $errors[] = $helper->__('Please enter the last name.'); } */ if (!Zend_Validate::is($address->getStreet(1), 'NotEmpty')) { $errors[] = $helper->__('Please enter the street.'); } if (!Zend_Validate::is($address->getCity(), 'NotEmpty')) { $errors[] = $helper->__('Please enter the city.'); } if (!Zend_Validate::is($address->getTelephone(), 'NotEmpty')) { $errors[] = $helper->__('Please enter the telephone number.'); } /* $_havingOptionalZip = Mage::helper('directory')->getCountriesWithOptionalZip(); if (!in_array($address->getCountryId(), $_havingOptionalZip) && !Zend_Validate::is($address->getPostcode(), 'NotEmpty')) { $errors[] = $helper->__('Please enter the zip/postal code.'); } */ if (!Zend_Validate::is($address->getCountryId(), 'NotEmpty')) { $errors[] = $helper->__('Please enter the country.'); } if ($address->getCountryModel()->getRegionCollection()->getSize() && !Zend_Validate::is($address->getRegionId(), 'NotEmpty')) { $errors[] = $helper->__('Please enter the state/province.'); } if (empty($errors) || $address->getShouldIgnoreValidation()) { return true; } return $errors; }
/** * Add an address to a payload * * @param Mage_Sales_Model_Address_Abstract * @param IShippingAddress * @return self */ protected function addShippingAddress(Mage_Sales_Model_Quote_Address $shippingAddress, IShippingAddress $payload) { $payload->setShipToLines(implode('\\n', $shippingAddress->getStreet())); $payload->setShipToCity($shippingAddress->getCity()); $payload->setShipToMainDivision($shippingAddress->getRegionCode()); $payload->setShipToCountryCode($shippingAddress->getCountryId()); $payload->setShipToPostalCode($shippingAddress->getPostcode()); 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('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; }