/**
  * @magentoDataFixture Magento/Catalog/_files/product_simple.php
  */
 public function testGetSku()
 {
     $repository = \Magento\TestFramework\Helper\Bootstrap::getObjectManager()->create('Magento\\Catalog\\Model\\ProductRepository');
     $product = $repository->get('simple');
     // fixture
     $this->assertEquals('simple', $this->_model->getSku($product));
 }
 /**
  * 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;
 }
Exemple #3
0
 /**
  * Return product sku based on sku_type attribute
  *
  * @param \Magento\Catalog\Model\Product $product
  * @return string
  */
 public function getSku($product)
 {
     $sku = parent::getSku($product);
     if ($product->getData('sku_type')) {
         return $sku;
     } else {
         $skuParts = [$sku];
         if ($product->hasCustomOptions()) {
             $customOption = $product->getCustomOption('bundle_selection_ids');
             $selectionIds = unserialize($customOption->getValue());
             if (!empty($selectionIds)) {
                 $selections = $this->getSelectionsByIds($selectionIds, $product);
                 foreach ($selections->getItems() as $selection) {
                     $skuParts[] = $selection->getSku();
                 }
             }
         }
         return implode('-', $skuParts);
     }
 }