fieldsetConfig = $config; } public function execute(Observer $observer) { /* @var $order Order */ $order = $observer->getData('order'); /* @var $quote Quote */ $quote = $observer->getData('quote'); $aspect = 'to_order_address'; $fields = $this->fieldsetConfig->getFieldset('sales_convert_quote_address'); $extensionAttributes = $quote->getShippingAddress()->getExtensionAttributes(); $orderAddress = $order->getShippingAddress(); foreach ($fields as $code => $node) { if (empty($node[$aspect])) { continue; } $method = 'get' . str_replace('_', '', ucwords($code, '_')); if (method_exists($extensionAttributes, $method) && $extensionAttributes->$method()) { $orderAddress->setData($code, $extensionAttributes->$method()); } } } }