orderExtensionFactory = $orderExtensionFactory; $this->orderLinkFactory = $orderLinkFactory; $this->coreHelper = $coreHelper; $this->quoteLinkFactory = $quoteLinkFactory; $this->adapter = $adapter; } public function execute(Observer $observer) { if ($this->coreHelper->isPwaEnabled()) { $order = $observer->getOrder(); $this->setAmazonOrderReferenceIdExtensionAttribute($order); } } protected function setAmazonOrderReferenceIdExtensionAttribute(OrderInterface $order) { $orderExtension = ($order->getExtensionAttributes()) ?: $this->orderExtensionFactory->create(); if ($order->getId()) { $amazonOrder = $this->orderLinkFactory->create(); $amazonOrder->load($order->getId(), 'order_id'); if ($amazonOrder->getId()) { $orderExtension->setAmazonOrderReferenceId($amazonOrder); } else { if ($order->getQuoteId()) { $quoteLink = $this->quoteLinkFactory->create(); $quoteLink->load($order->getQuoteId(), 'quote_id'); if ($quoteLink->getAmazonOrderReferenceId()) { $amazonOrder->setAmazonOrderReferenceId($quoteLink->getAmazonOrderReferenceId()) ->setOrderId($order->getId()) ->save(); $this->adapter->setOrderAttributes($order->getStoreId(), $quoteLink->getAmazonOrderReferenceId(), $order->getIncrementId()); } } } } $order->setExtensionAttributes($orderExtension); } }