protected function setAddresses(Customer $object, array $data, $format = null, array $context = array()) { if (!empty($data['contact']['addresses'])) { $data['addresses'] = $data['contact']['addresses']; /** @var \Doctrine\Common\Collections\Collection $addresses */ $addresses = $this->denormalizeObject($data, 'addresses', MagentoConnectorInterface::CUSTOMER_ADDRESSES_TYPE, $format, $context); // TODO Should be fixed during CRM-1185 $originIds = array(); foreach ($data['addresses'] as $key => $address) { if (!empty($address['customerAddressId'])) { $originIds[$key] = $address['customerAddressId']; } } if (!empty($addresses)) { $contact = $object->getContact(); /** @var Address $address */ foreach ($addresses as $key => $address) { if (!empty($originIds[$key])) { $address->setOriginId($originIds[$key]); } if ($contactPhone = $address->getContactPhone()) { $contactPhone->setOwner($contact); } } $object->resetAddresses($addresses); } } }