Ejemplo n.º 1
0
 /**
  * extraxcts the according Barclaycard owner* parameter
  *
  * @param Mage_Sales_Model_Quote               $quote
  * @param Mage_Customer_Model_Address_Abstract $billingAddress
  *
  * @return array
  */
 public function getOwnerParams(Mage_Sales_Model_Quote $quote, Mage_Customer_Model_Address_Abstract $billingAddress)
 {
     $ownerParams = array();
     if ($this->getConfig()->canSubmitExtraParameter($quote->getStoreId())) {
         $ownerParams = array('OWNERADDRESS' => str_replace("\n", ' ', $billingAddress->getStreet(1)), 'OWNERTOWN' => $billingAddress->getCity(), 'OWNERZIP' => $billingAddress->getPostcode(), 'OWNERTELNO' => $billingAddress->getTelephone(), 'OWNERCTY' => $billingAddress->getCountry(), 'ECOM_BILLTO_POSTAL_POSTALCODE' => $billingAddress->getPostcode());
     }
     return $ownerParams;
 }
 /**
  * @param Mage_Customer_Model_Address_Abstract $address
  *
  * @return Payone_Api_Request_AddressCheck
  */
 public function mapFromAddress(Mage_Customer_Model_Address_Abstract $address)
 {
     $request = $this->getFactory()->getRequestVerificationAddressCheck();
     $helper = $this->helper();
     $configGlobal = $this->getConfigGlobal();
     $config = $this->getConfig();
     // @todo move addressCheckType detection to method
     // @todo add option to configure used Adresschecktype externaly
     if ($address->getAddressType() === 'billing') {
         $request->setAddresschecktype($config->getCheckBilling());
         // check if billing is used for shipping and shipping-address has to be checked
         if ($address->getUseForShipping() === true and $config->mustCheckShipping()) {
             $request->setAddresschecktype($config->getCheckShipping());
         }
     } elseif ($address->getAddressType() === 'shipping') {
         $request->setAddresschecktype($config->getCheckShipping());
     } else {
         throw new Exception('Invalid Address Check Type');
     }
     $request->setAid($configGlobal->getAid());
     $request->setMid($configGlobal->getMid());
     $request->setMode($config->getMode());
     $request->setPortalid($configGlobal->getPortalid());
     $request->setKey($configGlobal->getKey());
     $request->setCity($address->getCity());
     $request->setCompany($address->getCompany());
     $request->setCountry($address->getCountry());
     $request->setFirstname($address->getFirstname());
     $request->setLastname($address->getLastname());
     $request->setIntegratorName('Magento');
     $request->setIntegratorVersion($helper->getMagentoVersion());
     $request->setSolutionName('votum');
     $request->setSolutionVersion($helper->getPayoneVersion());
     $request->setEncoding('UTF-8');
     $request->setLanguage($helper->getDefaultLanguage());
     $request->setStreet($address->getStreetFull());
     $request->setTelephonenumber($address->getTelephone());
     $countryId = $address->getCountryId();
     if ($countryId == "US" || $countryId == "CA") {
         $request->setState($address->getRegionCode());
     }
     $request->setZip($address->getPostcode());
     return $request;
 }
 /**
  * @param Mage_Customer_Model_Address_Abstract $address
  * @return Payone_Api_Request_Consumerscore
  */
 public function mapFromAddress(Mage_Customer_Model_Address_Abstract $address)
 {
     $factory = $this->getFactory();
     $request = $factory->getRequestVerificationConsumerScore();
     $helper = $this->helper();
     $configGlobal = $this->getConfigGlobal();
     $config = $this->getConfig();
     $request->setConsumerscoretype($config->getType());
     $request->setAddresschecktype(Payone_Api_Enum_AddressCheckType::NONE);
     $request->setAid($configGlobal->getAid());
     $request->setMid($configGlobal->getMid());
     $request->setMode($config->getMode());
     $request->setPortalid($configGlobal->getPortalid());
     $request->setKey($configGlobal->getKey());
     $request->setCity($address->getCity());
     $request->setCompany($address->getCompany());
     $request->setCountry($address->getCountry());
     $request->setFirstname($address->getFirstname());
     $request->setLastname($address->getLastname());
     $request->setIntegratorName('Magento');
     $request->setIntegratorVersion($helper->getMagentoVersion());
     $request->setSolutionName('votum');
     $request->setSolutionVersion($helper->getPayoneVersion());
     if ($customerId = $address->getCustomerId()) {
         $customer = $factory->getModelCustomer();
         $customer->load($customerId);
         $date = $customer->getDob();
         $date = date('Ymd', strtotime($date));
         $request->setBirthday($date);
     }
     $request->setEncoding('UTF-8');
     $request->setLanguage($helper->getDefaultLanguage());
     $request->setStreet($address->getStreetFull());
     $request->setTelephonenumber($address->getTelephone());
     $request->setZip($address->getPostcode());
     return $request;
 }
Ejemplo n.º 4
0
 /**
  * Validates the address with the AvaTax validation API.
  * Returns true on success and an array with an error on failure.
  *
  * @return array|bool
  * @throws OnePica_AvaTax_Model_Avatax_Address_Exception
  */
 public function validate()
 {
     if (!$this->_mageAddress) {
         throw new OnePica_AvaTax_Model_Avatax_Address_Exception($this->__('An address must be set before validation.'));
     }
     /** @var Mage_Sales_Model_Quote $quote */
     $quote = $this->_mageAddress->getQuote();
     $isAddressValidationOn = $this->_getDataHelper()->isAddressValidationOn($this->_mageAddress, $this->_storeId);
     $isAddressNormalizationOn = $this->_getDataHelper()->isAddressNormalizationOn($this->_mageAddress, $this->_storeId);
     $isAddressActionable = $this->_getDataHelper()->isAddressActionable($this->_mageAddress, $quote->getStoreId());
     //if there is no use cases for AvaTax services, return address as valid without doing a lookup
     if (!$isAddressValidationOn && !$isAddressNormalizationOn && !$isAddressActionable) {
         return true;
     }
     //lookup in AvaTax (with caching)
     $key = $this->_mageAddress->getCacheHashKey();
     if (array_key_exists($key, $this->_cache)) {
         $result = unserialize($this->_cache[$key]);
     } elseif ($this->_mageAddress->getPostcode() && $this->_mageAddress->getPostcode() != '-') {
         $checkFieldsResult = $this->_checkFields();
         if ($checkFieldsResult) {
             return $checkFieldsResult;
         }
         $result = $this->_sendAddressValidationRequest();
         $this->_cache[$key] = serialize($result);
     } else {
         $errors = array();
         $errors[] = $this->__('Invalid ZIP/Postal Code.');
         return $errors;
     }
     $this->_addressNormalization($isAddressNormalizationOn, $result);
     $addressValidationResult = $this->_addressValidation($isAddressValidationOn, $isAddressActionable, $result);
     if ($addressValidationResult) {
         return $addressValidationResult;
     }
     return true;
 }
 /**
  * @param Mage_Customer_Model_Address_Abstract $address
  * @return array
  */
 protected function _getAddressData(Mage_Customer_Model_Address_Abstract $address)
 {
     $data = array();
     if ($address) {
         $data['name'] = $address->getName();
         $data['address'] = $address->getStreetFull();
         $data['city'] = $address->getCity();
         $data['postcode'] = $address->getPostcode();
         $data['country'] = $address->getCountry();
         $data['state'] = $address->getRegion() ? $address->getRegion() : '';
     }
     return $data;
 }
Ejemplo n.º 6
0
 /**
  * generates hash from address data
  *
  * @param Mage_Sales_Model_Quote_Address $address the address data to hash
  *
  * @returns sha1 hash of address
  */
 public function generateAddressHash(Mage_Customer_Model_Address_Abstract $address)
 {
     $addressString = $address->getFirstname();
     $addressString .= $address->getMiddlename();
     $addressString .= $address->getLastname();
     $addressString .= $address->getCompany();
     $street = $address->getStreetFull();
     if (is_array($street)) {
         $street = implode('', $street);
     }
     $addressString .= $street;
     $addressString .= $address->getPostcode();
     $addressString .= $address->getCity();
     $addressString .= $address->getCountryId();
     return sha1($addressString);
 }
 /**
  * Transfer physical address data from the order address to the physical
  * address payload.
  *
  * @param Mage_Customer_Model_Address_Abstract
  * @param IPhysicalAddress
  * @return IPhysicalAddress
  */
 protected function _transferPhysicalAddressData(Mage_Customer_Model_Address_Abstract $address, IPhysicalAddress $physicalAddress)
 {
     return $physicalAddress->setLines($address->getStreet(-1))->setCity($address->getCity())->setMainDivision($address->getRegionCode())->setCountryCode($address->getCountryId())->setPostalCode($address->getPostcode())->setPhone($address->getTelephone());
 }
 /**
  * Extract array of address data - street, city, region code, etc. from an address object
  * @param  Mage_Customer_Model_Address_Abstract $address Address object to pull data from
  * @return array Extracted data
  */
 protected function _extractAddressData(Mage_Customer_Model_Address_Abstract $address)
 {
     return array('street' => $address->getStreet(), 'city' => $address->getCity(), 'region_code' => $address->getRegionCode(), 'country_id' => $address->getCountryId(), 'postcode' => $address->getPostcode());
 }
 /**
  * Transfer data from a Magento customer address to a ROM SDK
  * PhysicalAddress payload.
  *
  * @param Mage_Customer_Model_Address_Abstract
  * @param IPhysicalAddress
  * @return IPhysicalAddress
  */
 public function customerAddressToPhysicalAddressPayload(Mage_Customer_Model_Address_Abstract $address, IPhysicalAddress $payload)
 {
     return $payload->setLines($address->getStreetFull())->setCity($address->getCity())->setMainDivision($address->getRegionId())->setCountryCode($address->getCountryId())->setPostalCode($address->getPostcode());
 }
Ejemplo n.º 10
0
 /**
  * Validates the address with the AvaTax validation API.
  * Returns true on success and an array with an error on failure.
  *
  * @return array|bool
  * @throws OnePica_AvaTax_Model_Avatax_Address_Exception
  */
 public function validate()
 {
     if (!$this->_mageAddress) {
         throw new OnePica_AvaTax_Model_Avatax_Address_Exception($this->__('An address must be set before validation.'));
     }
     /** @var OnePica_AvaTax_Model_Config $config */
     $config = Mage::getSingleton('avatax/config')->init($this->_storeId);
     /** @var Mage_Sales_Model_Quote $quote */
     $quote = $this->_mageAddress->getQuote();
     $isAddressValidationOn = $this->_getDataHelper()->isAddressValidationOn($this->_mageAddress, $this->_storeId);
     $isAddressNormalizationOn = $this->_getDataHelper()->isAddressNormalizationOn($this->_mageAddress, $this->_storeId);
     $isAddressActionable = $this->_getDataHelper()->isAddressActionable($this->_mageAddress, $quote->getStoreId());
     //if there is no use cases for AvaTax services, return address as valid without doing a lookup
     if (!$isAddressValidationOn && !$isAddressNormalizationOn && !$isAddressActionable) {
         return true;
     }
     //lookup in AvaTax (with caching)
     $key = $this->_mageAddress->getCacheHashKey();
     if (array_key_exists($key, $this->_cache)) {
         $result = unserialize($this->_cache[$key]);
     } elseif ($this->_mageAddress->getPostcode() && $this->_mageAddress->getPostcode() != '-') {
         $session = Mage::getSingleton('checkout/session');
         if ($session->getPostType() == 'onepage') {
             $requiredFields = explode(",", $this->getHelper()->getFieldRequiredList());
             $fieldRules = explode(",", $this->getHelper()->getFieldRule());
             foreach ($requiredFields as $field) {
                 $requiredFlag = 0;
                 foreach ($fieldRules as $rule) {
                     if (preg_match("/street\\d/", $field)) {
                         $field = "street";
                     }
                     if ($field == "country") {
                         $field = "country_id";
                     }
                     if ($this->_mageAddress->getData($field) == $rule || !$this->_mageAddress->getData($field)) {
                         $requiredFlag = 1;
                     }
                 }
                 if ($requiredFlag) {
                     $errors = array();
                     $errors[] = $this->__('Invalid ') . $this->__($field);
                     return $errors;
                 }
             }
         }
         $client = $config->getAddressConnection();
         $request = new ValidateRequest($this->_requestAddress, TextCase::$Mixed, 0);
         $request->setTaxability(true);
         $result = $client->Validate($request);
         $this->_log(OnePica_AvaTax_Model_Source_Logtype::VALIDATE, $request, $result, $this->_storeId, $config->getParams());
         $this->_cache[$key] = serialize($result);
     } else {
         $errors = array();
         $errors[] = $this->__('Invalid ZIP/Postal Code.');
         return $errors;
     }
     //normalization
     if ($isAddressNormalizationOn && $result->getResultCode() == SeverityLevel::$Success) {
         $responseAddress = $result->getValidAddresses();
         $responseAddress = array_pop($responseAddress);
         if ($responseAddress instanceof ValidAddress) {
             $this->_responseAddress = $responseAddress;
             $this->_convertResponseAddress();
         } else {
             throw new OnePica_AvaTax_Model_Avatax_Address_Exception($this->__('Invalid response address type.'));
         }
     }
     //validation
     if ($isAddressValidationOn == 1) {
         if ($result->getResultCode() == SeverityLevel::$Success) {
             $this->_mageAddress->setAddressValidated(true);
             return true;
         } else {
             $errors = array();
             foreach ($result->getMessages() as $message) {
                 $errors[] = $this->__($message->getSummary());
             }
             return $errors;
         }
     } elseif ($isAddressValidationOn == 2) {
         $this->_mageAddress->setAddressValidated(true);
         if ($result->getResultCode() == SeverityLevel::$Success) {
             return true;
         } else {
             if (!$this->_mageAddress->getAddressNotified()) {
                 $this->_mageAddress->setAddressNotified(true);
                 foreach ($result->getMessages() as $message) {
                     Mage::getSingleton('core/session')->addNotice($this->__($message->getSummary()));
                 }
             }
             return true;
         }
         //a valid address isn't required, but Avalara has to say there is
         //enough info to drill down to a tax jurisdiction to calc on
     } elseif (!$isAddressValidationOn && $isAddressActionable) {
         if ($result->isTaxable()) {
             $this->_mageAddress->setAddressValidated(true);
             return true;
         } else {
             $errors = array();
             foreach ($result->getMessages() as $message) {
                 $errors[] = $this->__($message->getSummary());
             }
             return $errors;
         }
     }
     return true;
 }
 /**
  * Extract only the data from the addres that gets validated.
  * The extracted data can be compared to the data in an existing
  * @param Mage_Customer_Model_Address_Abstract $address
  * @return Mage_Customer_Model_Address_Abstract - an address object containing only the data that gets validated
  */
 protected function _extractValidatedAddressData(Mage_Customer_Model_Address_Abstract $address)
 {
     $validatedAddress = Mage::getModel('customer/address')->setData(['street' => $address->getData('street'), 'city' => $address->getCity(), 'region_id' => $address->getRegionId(), 'country_id' => $address->getCountryId(), 'postcode' => $address->getPostcode(), 'address_type' => $address->getAddressType()]);
     return $validatedAddress;
 }
Ejemplo n.º 12
0
 protected function getAddress(Mage_Customer_Model_Address_Abstract $address)
 {
     $taxAddress = new AvaTax\Address();
     $taxAddress->setLine1($this->limit($address->getStreet1(), 50));
     $taxAddress->setLine2($this->limit($address->getStreet2(), 50));
     $taxAddress->setLine3($this->limit($address->getStreet3(), 50));
     $taxAddress->setCity($this->limit($address->getCity(), 50));
     $taxAddress->setRegion($this->limit($address->getRegionCode(), 3));
     $taxAddress->setCountry($this->limit($address->getCountryId(), 2));
     $taxAddress->setPostalCode($this->limit($address->getPostcode(), 11));
     return $taxAddress;
 }
Ejemplo n.º 13
0
 /**
  * Create OCL Address record
  *
  * @param Mage_Customer_Model_Address_Abstract|Mage_Sales_Model_Order_Address $address
  * @param string|null                          $billingEntityId
  * @return array
  */
 public function createAddress($address, $tags = null)
 {
     $region = $address->getRegion();
     $data = array('street1' => (string) $address->getStreet1(), 'street2' => (string) $address->getStreet2(), 'street3' => (string) $address->getStreet3(), 'street4' => (string) $address->getStreet4(), 'city' => (string) $address->getCity(), 'county' => null, 'stateOrProvince' => empty($region) ? null : $region, 'postalCode' => (string) $address->getPostcode(), 'country' => (string) Mage::getModel('directory/country')->loadByCode($address->getCountryId())->getIso3Code(), 'tags' => $tags);
     return $data;
 }
Ejemplo n.º 14
0
 /**
  * Creates a hash from an addresses key data
  *
  * @param Mage_Customer_Model_Address_Abstract $address
  * @return string
  */
 public function createAddressHash(Mage_Customer_Model_Address_Abstract $address)
 {
     $values = $address->getFirstname() . $address->getLastname() . $address->getStreetFull() . $address->getPostcode() . $address->getCity() . $address->getRegionCode() . $address->getCountry();
     $hash = md5($values);
     return $hash;
 }
Ejemplo n.º 15
0
 protected function getAddress($code, Mage_Customer_Model_Address_Abstract $address)
 {
     $data = array('Line1' => $this->limit($address->getStreet1(), 50), 'Line2' => $this->limit($address->getStreet2(), 50), 'Line3' => $this->limit($address->getStreet3(), 50), 'City' => $this->limit($address->getCity(), 50), 'Region' => $this->limit($address->getRegionCode(), 3), 'Country' => $this->limit($address->getCountryId(), 2), 'PostalCode' => $this->limit($address->getPostcode(), 11));
     $data = array_filter($data);
     if ($code && !empty($data)) {
         $data['AddressCode'] = $code;
     }
     return $data;
 }