/**
  * 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);
 }
Example #2
0
 /**
  * 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);
 }