Example #1
0
 /**
  * Add Customer details to Svea CreateOrder object
  *
  * @param type $order
  * @param type $additionalInfo
  * @return type Svea CreateOrder object
  */
 public function getSveaPaymentObject($order, $additionalInfo = null)
 {
     $svea = parent::getSveaPaymentObject($order, $additionalInfo);
     //Add more customer info
     $countryCode = $order->getBillingAddress()->getCountryId();
     $company = $additionalInfo['svea_customerType'];
     $address = $order->getBillingAddress()->getStreetFull();
     $addressArray = \Svea\Helper::splitStreetAddress($address);
     if ($company == "1") {
         $item = WebPayItem::companyCustomer();
         $item = $item->setEmail($order->getBillingAddress()->getEmail())->setCompanyName($order->getBillingAddress()->getCompany())->setStreetAddress($addressArray[1], $addressArray[2])->setZipCode($order->getBillingAddress()->getPostcode())->setLocality($order->getBillingAddress()->getCity())->setIpAddress(Mage::helper('core/http')->getRemoteAddr(false))->setPhoneNumber($order->getBillingAddress()->getTelephone());
         if ($countryCode == "DE" || $countryCode == "NL") {
             $item = $item->setVatNumber($additionalInfo['svea_vatNo']);
         } else {
             $item = $item->setNationalIdNumber($additionalInfo['svea_ssn']);
             $item = $item->setAddressSelector($additionalInfo['svea_addressSelector']);
         }
     } else {
         $item = WebPayItem::individualCustomer();
         // Not all countries has svea_ssn input
         if (array_key_exists('svea_ssn', $additionalInfo)) {
             $item = $item->setNationalIdNumber($additionalInfo['svea_ssn']);
         }
         $item = $item->setEmail($order->getBillingAddress()->getEmail())->setName($order->getBillingAddress()->getFirstname(), $order->getBillingAddress()->getLastname())->setStreetAddress($addressArray[1], $addressArray[2])->setZipCode($order->getBillingAddress()->getPostcode())->setLocality($order->getBillingAddress()->getCity())->setIpAddress(Mage::helper('core/http')->getRemoteAddr(false))->setPhoneNumber($order->getBillingAddress()->getTelephone());
         if ($countryCode == "DE" || $countryCode == "NL") {
             $validBirthday = true;
             foreach (array('svea_birthYear', 'svea_birthMonth', 'svea_birthDay') as $key) {
                 if (!array_key_exists($key, $additionalInfo) || trim($additionalInfo[$key]) === "") {
                     $validBirthday = false;
                 }
             }
             if ($validBirthday) {
                 $item = $item->setBirthDate($additionalInfo['svea_birthYear'], $additionalInfo['svea_birthMonth'], $additionalInfo['svea_birthDay']);
             }
         }
         if ($countryCode == "NL") {
             if (array_key_exists('svea_initials', $additionalInfo)) {
                 $item = $item->setInitials($additionalInfo['svea_initials']);
             }
         }
     }
     // Set public key on the object if publicKey is set in additionalInfo
     if (array_key_exists('svea_publicKey', $additionalInfo)) {
         $publicKey = $additionalInfo['svea_publicKey'];
         if ($publicKey !== '') {
             $item = $item->setPublicKey($publicKey);
             // $item = $item->setAddressSelector('');
         }
     }
     $svea = $svea->addCustomerDetails($item);
     return $svea;
 }