sales_order_view.xml
<?xml version="1.0"?>
<!--
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
-->
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" layout="admin-2columns-left" xsi:noNamespaceSchemaLocation="urn:magento:framework:View/Layout/etc/page_configuration.xsd">
<body>
<referenceBlock name="default_order_items_renderer">
<action method="setTemplate">
<argument name="template" translate="true" xsi:type="string">Vendor_Module::order/view/items/renderer/default.phtml</argument>
</action>
</referenceBlock>
</body>
</page>
default.phtml
<?php
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
// @codingStandardsIgnoreFile
?>
<?php /** @var \Magento\Sales\Block\Adminhtml\Order\View\Items\Renderer\DefaultRenderer $block */ ?>
<?php $_item = $block->getItem() ?>
<?php $block->setPriceDataObject($_item) ?>
<tr>
<?php $i = 0;
$columns = $block->getColumns();
$lastItemNumber = count($columns) ?>
<?php foreach ($columns as $columnName => $columnClass):?>
<?php $i++; ?>
<td class="<?= /* @noEscape */ $columnClass ?><?= /* @noEscape */ ($i === $lastItemNumber ? ' last' : '') ?>"><?= /* @escapeNotVerified */ $block->getColumnHtml($_item, $columnName) ?>
<?php if($columnClass == "col-product"){ ?>
<span><?php echo __("Type:") ?></span>
<?php
//here I'm getting empty array
print_r( $_item->getOptionByCode('additional_options'));
?>
<?php } ?>
</td>
<?php endforeach; ?>
</tr>
$_item->getOptionByCode('additional_options')
this lines returns empty array .Please someone guide me hoe to get the additional option value .I have seen the quote_item_option
table it contains the data .
I have added custom options to quote item using below code
$quote = $this->quoteFactory->create()->load($quoteId);
$_product = $this->product->load($productId);
$additionalOptions = array();
if ($additionalOption = $_product->getOptionByCode('additional_options')) {
$additionalOptions = $this->serializer->unserialize($additionalOption->getValue());
}
$additionalOptions[] = [
'label' => 'Type',
'value' => 'Sample'
];
$quote->addProduct($_product, 1)
->addOption(array(
'product_id' => $_product->getId(),
'code' => 'additional_options',
'value' => $this->serializer->serialize($additionalOptions)
))
->setCustomPrice(2)
->setWeight(5)
->setOriginalCustomPrice(2)
->getProduct()->setIsSuperMode(true);
$quote->collectTotals()->save();
it is adding the item and to quote.After saving the order I tried to get the additional option value but i'm unable to get it on order details page