/** * @magentoDataFixture Magento/Catalog/_files/product_simple.php */ public function testGetOptionSku() { /** @var $product \Magento\Catalog\Model\Product */ $product = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\Product'); $this->assertEmpty($this->_model->getOptionSku($product)); $product->load(1); // fixture $this->assertEquals('simple', $this->_model->getOptionSku($product)); foreach ($product->getOptions() as $option) { if ('field' == $option->getType()) { $product->addCustomOption('option_ids', $option->getId()); $quoteOption = clone $option; $product->addCustomOption("option_{$option->getId()}", $quoteOption); $this->assertEquals('simple-1-text', $this->_model->getOptionSku($product)); break; } } }
/** * Get sku of product * * @param \Magento\Catalog\Model\Product $product * @return string */ public function getSku($product) { $simpleOption = $product->getCustomOption('simple_product'); if ($simpleOption) { $optionProduct = $simpleOption->getProduct(); $simpleSku = null; if ($optionProduct) { $simpleSku = $simpleOption->getProduct()->getSku(); } $sku = parent::getOptionSku($product, $simpleSku); } else { $sku = parent::getSku($product); } return $sku; }