The product SKU is a unique id for each product in a Magento 2 store. Changing product SKU in bulk is not easy in Magento 2.
However, sometime, it may happen that you need to update bulk product SKU in Magento 2 when you are importing products from a third-party platform.
The below code is the solution for the same.
You can use this code to update product SKU, product price, etc. in bulk in Magento 2 store using the CSV file.
Method to update bulk product SKU using CSV in Magento 2:
<?php use Magento\Framework\AppInterface; try { require_once __DIR__ . '/app/bootstrap.php'; } catch (\Exception $e) { echo 'Autoload error: ' . $e->getMessage(); exit(1); } try { $bootstrap = \Magento\Framework\App\Bootstrap::create(BP, $_SERVER); $objectManager = $bootstrap->getObjectManager(); $objectManager->get('Magento\Framework\App\State')->setAreaCode('adminhtml'); $objectManager = \Magento\Framework\App\ObjectManager::getInstance(); // Instance of object manager $row = 1; $csvName = "{file.csv}"; // Here you need to place .csv file path $productRepository = $objectManager->get('\Magento\Catalog\Model\ProductRepository'); if ( ($handle = fopen($csvName, "r")) !== FALSE ) { $row = 1; while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) { if ( $row == 1 ) { $row++; continue; } // to skip first line if first row is column name. $row++; try { $productRepository = $objectManager->get('\Magento\Catalog\Model\ProductRepository'); $sku = $data[0]; // this can manage as per your csv. $productObj = $productRepository->get($sku); $productRepository = $objectManager->create('Magento\Catalog\Api\ProductRepositoryInterface'); $productRepository->save($productObj); } catch (\Exception $e) { echo $e->getMessage(); } } fclose($handle); } } catch (\Exception $e) { echo $e->getMessage(); }
That’s it.
Do share the post with fellow developers via social media.
Thank you.