- Create plugin on
Magento\Sales\Api\OrderRepositoryInterfaceonget()an dsave ()for expose that custom field to order ip.
Update,
AndAs you want to expose that rest/V1/orders/items Api point then you have to create a good example isplugin on Magento_GiftMessageMagento\Sales\Model\Order\ProductOption::add()
Here the plugin Class:
<?php declare(strict_types=1); namespace {VendrNameVendorName}\{ModuleName}\Plugin\Magento\Sales\Api; class OrderRepositoryInterface {\Plungin; privateuse $orderExtensionFactory;Magento\Sales\Api\Data\OrderItemInterface; public function __construct( \Magento\Sales\Api\Data\OrderExtensionFactoryclass $orderExtensionFactory,ProductOption ) { $this->orderExtensionFactory = $orderExtensionFactory; } /** * Get gift message * * @param \Magento\Sales\Api\OrderRepositoryInterface $subject * @param \Magento\Sales\Api\Data\OrderInterface@var $resultOrder\Magento\Sales\Api\Data\OrderItemExtensionFactory * @return \Magento\Sales\Api\Data\OrderInterface/ *private @SuppressWarnings(PHPMD.UnusedFormalParameter)$orderItemExtensionFactory; */ public function afterGet__construct( \Magento\Sales\Api\OrderRepositoryInterface $subject, \Magento\Sales\Api\Data\OrderInterface\Magento\Sales\Api\Data\OrderItemExtensionFactory $resultOrder$orderItemExtensionFactory ) { $resultOrder = $this->getOrderItemActivationCodes($resultOrder); >orderItemExtensionFactory return= $resultOrder;$orderItemExtensionFactory; } privatepublic function getOrderItemActivationCodes(\Magento\Sales\Api\Data\OrderInterface $order) { $orderItems = $order->getItemsbeforeAdd(); if (null !== $orderItems) { \Magento\Sales\Model\Order\ProductOption $subject, /** @var \Magento\Sales\Api\Data\OrderItemInterfaceOrderItemInterface $orderItem */ foreach ($orderItems as $orderItem) { $extensionAttributes = $orderItem->getExtensionAttributes(); if ($extensionAttributes &&null=== $extensionAttributes->getCustomField()) { continue; } /** @var \Magento\Sales\Api\Data\OrderItemExtension $orderItemExtension */ $orderItemExtension = $extensionAttributes ? $extensionAttributes :$extensionAttributes= $this->orderItemExtensionFactory->create(); } $orderItemExtension$extensionAttributes->setCustomField($order->getCustomField()); $orderItem->setExtensionAttributes($orderItemExtension$extensionAttributes); } } return $order; } }