/** * Get product id * * @param \Magento\Sales\Model\Order\Admin\Item $subject * @param callable $proceed * @param \Magento\Sales\Model\Order\Item $item * * @return int * @SuppressWarnings(PHPMD.UnusedFormalParameter) */ public function aroundGetProductId(\Magento\Sales\Model\Order\Admin\Item $subject, \Closure $proceed, \Magento\Sales\Model\Order\Item $item) { if ($item->getProductType() == \Magento\ConfigurableProduct\Model\Product\Type\Configurable::TYPE_CODE) { $productOptions = $item->getProductOptions(); $product = $this->productFactory->create(); return $product->getIdBySku($productOptions['simple_sku']); } return $proceed($item); }
/** * Add additional options suboption into item * * @param \Magento\Sales\Model\Order\Item $item * @param array $option * @return void */ protected function _addAdditionalOptionToItem($item, $option) { $options = $item->getProductOptions(); $additionalOptions = $item->getProductOptionByCode('additional_options'); if (is_array($additionalOptions)) { $additionalOptions[] = $option; } else { $additionalOptions = array($option); } $options['additional_options'] = $additionalOptions; $item->setProductOptions($options); }