/** * Add address to customer during create account * * @return \Magento\Customer\Service\V1\Data\Address|null */ protected function _extractAddress() { if (!$this->getRequest()->getPost('create_address')) { return null; } $addressForm = $this->_formFactory->create('customer_address', 'customer_register_address'); $allowedAttributes = $addressForm->getAllowedAttributes(); $addressData = array(); foreach ($allowedAttributes as $attribute) { $attributeCode = $attribute->getAttributeCode(); $value = $this->getRequest()->getParam($attributeCode); if (is_null($value)) { continue; } switch ($attributeCode) { case 'region_id': $this->_regionBuilder->setRegionId($value); break; case 'region': $this->_regionBuilder->setRegion($value); break; default: $addressData[$attributeCode] = $value; } } $this->_addressBuilder->populateWithArray($addressData); $this->_addressBuilder->setRegion($this->_regionBuilder->create()); $this->_addressBuilder->setDefaultBilling($this->getRequest()->getParam('default_billing', false))->setDefaultShipping($this->getRequest()->getParam('default_shipping', false)); return $this->_addressBuilder->create(); }
/** * Map Address to Address data object * * @param AddressBuilder $addressBuilder * @param Address $address * @return \Magento\Customer\Service\V1\Data\Address */ public function mapAddress(AddressBuilder $addressBuilder, Address $address) { $addressBuilder->setCountryId($address->getCountryId()); $addressBuilder->setRegion($addressBuilder->getRegionBuilder()->setRegionId($address->getRegionId())->create()); $addressBuilder->setPostcode($address->getPostcode()); $addressBuilder->setCity($address->getCity()); $addressBuilder->setStreet($address->getStreet()); return $addressBuilder->create(); }
/** * @param AddressBuilder $addressBuilder */ private function _fillMinimumRequiredFields(AddressBuilder $addressBuilder) { $addressBuilder->setFirstname($this->_expectedValues['firstname']); $addressBuilder->setLastname($this->_expectedValues['lastname']); $addressBuilder->setStreet($this->_expectedValues['street']); $addressBuilder->setCity($this->_expectedValues['city']); $addressBuilder->setCountryId($this->_expectedValues['country_id']); $addressBuilder->setRegion($this->objectManagerHelper->getObject('\\Magento\\Customer\\Service\\V1\\Data\\RegionBuilder')->setRegionId($this->_expectedValues['region']['region_id'])->setRegion($this->_expectedValues['region']['region'])->create()); $addressBuilder->setPostcode($this->_expectedValues['postcode']); $addressBuilder->setTelephone($this->_expectedValues['telephone']); }