Example #1
0
 /**
  * Get billing address request data
  *
  * @param \Magento\Framework\DataObject $address
  * @return array
  * @SuppressWarnings(PHPMD.NPathComplexity)
  */
 protected function _getBillingAddress(\Magento\Framework\DataObject $address)
 {
     $region = $address->getRegionCode() ? $address->getRegionCode() : $address->getRegion();
     $request = ['billing_first_name' => $address->getFirstname(), 'billing_last_name' => $address->getLastname(), 'billing_city' => $address->getCity(), 'billing_state' => $region ? $region : $address->getCity(), 'billing_zip' => $address->getPostcode(), 'billing_country' => $address->getCountryId()];
     // convert streets to tow lines format
     $street = $this->_customerAddress->convertStreetLines($address->getStreet(), 2);
     $request['billing_address1'] = isset($street[0]) ? $street[0] : '';
     $request['billing_address2'] = isset($street[1]) ? $street[1] : '';
     return $request;
 }
Example #2
0
 /**
  * Export streets from address data
  *
  * @param DataObject $address
  * @return array
  */
 protected function getAddressStreets(DataObject $address)
 {
     $street1 = '';
     $street2 = '';
     $data = $this->customerAddress->convertStreetLines($address->getStreet(), 2);
     if (!empty($data[0])) {
         $street1 = $data[0];
     }
     if (!empty($data[1])) {
         $street2 = $data[1];
     }
     return [$street1, $street2];
 }
Example #3
0
 /**
  * @param DataObject $request
  * @param DataObject $shipping
  *
  * @return Object
  */
 public function setShipping($request, $shipping)
 {
     $request->setShiptofirstname($shipping->getFirstname())->setShiptolastname($shipping->getLastname())->setShiptostreet(implode(' ', $shipping->getStreet()))->setShiptocity($shipping->getCity())->setShiptostate($shipping->getRegionCode())->setShiptozip($shipping->getPostcode())->setShiptocountry($shipping->getCountryId());
     return $request;
 }
Example #4
0
 /**
  * Street address workaround: divides address lines into parts by specified keys
  * (keys should go as 3rd, 4th[...] parameters)
  *
  * @param \Magento\Framework\DataObject $address
  * @param array $to
  * @return void
  */
 protected function _importStreetFromAddress(\Magento\Framework\DataObject $address, array &$to)
 {
     $keys = func_get_args();
     array_shift($keys);
     array_shift($keys);
     $street = $address->getStreet();
     if (!$keys || !$street || !is_array($street)) {
         return;
     }
     $street = $this->_customerAddress->convertStreetLines($address->getStreet(), count($keys));
     $i = 0;
     foreach ($keys as $key) {
         $to[$key] = isset($street[$i]) ? $street[$i] : '';
         $i++;
     }
 }
Example #5
0
 /**
  * Adopt specified address object to be compatible with Magento
  *
  * @param \Magento\Framework\DataObject $address
  * @return void
  */
 protected function _applyStreetAndRegionWorkarounds(\Magento\Framework\DataObject $address)
 {
     // merge street addresses into 1
     if ($address->hasStreet2()) {
         $address->setStreet(implode("\n", [$address->getStreet(), $address->getStreetLine(2)]));
         $address->unsStreet2();
     }
     // attempt to fetch region_id from directory
     if ($address->getCountryId() && $address->getRegion()) {
         $regions = $this->_countryFactory->create()->loadByCode($address->getCountryId())->getRegionCollection()->addRegionCodeOrNameFilter($address->getRegion())->setPageSize(1);
         foreach ($regions as $region) {
             $address->setRegionId($region->getId());
             $address->setExportedKeys(array_merge($address->getExportedKeys(), ['region_id']));
             break;
         }
     }
 }