我正在尝试使用csv数据以编程方式创建一个简单的产品。 但是我的产品不能在db和admin面板中插入???任何建议请
Sku,Name,AttributeSetId,CategoryId,Description,Status,TypeId,Price,WebsiteIds,Visibility,UrlKey //title for the csv data
nailPolish,nailpolish,9,2,verybrightproduct,1,simple,200,base,4,nailpolish//csv data
nailRemover,nailremover,9,2,niceproduct,1,simple,200,base,4,nailremover//csv data
<?php
use Magento\Framework\App\Bootstrap;// add bootstrap
include("app/bootstrap.php");
$bootstrap = Bootstrap::create(BP, $_SERVER);
$objectManager = $bootstrap->getObjectManager();
$objectManager = $bootstrap->getObjectManager();
$state = $objectManager->get('Magento\Framework\App\State');
$state->setAreaCode('frontend');
function readOptions() //to read csv file
{
$options = array();
$file = 'csv/csvSimpleproduct.csv';
$handle = fopen($file, "r");
$headers = false;
if (empty($handle) === false) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
if (!$headers)
$headers[] = $data;
else
$options[] = $data;
}
fclose($handle);
}
return $options;
}
$importProduct = readOptions();
echo '<pre>';
print_r($importProduct);//printing array values
echo '</pre>';
foreach ($importProduct as $importProducts) { //to get single array values
$product = $objectManager->create('\Magento\Catalog\Model\Product');//creating object manager
$product->setSku($importProducts[0]);//to set sku values
$product->setName($importProducts[1]);// to set name of the product
$product->setAttributeSetId($importProducts[2]); //Default attribute set for products
$product->setCategories($importProducts[3]);//
$product->setDescription($importProducts[4]);//to give descriptions
$product->setStatus($importProducts[5]);
$product->setProductType($importProducts[6]);
$product->setPrice($importProducts[7]);// to give price of an product
$product->setWebsiteIds(array(1));//set main website view
$product->setVisibility($importProducts[9]);
$product->setUrlKey($importProducts[10]);//to set url to the product
}
我的csv文件是:
Sku,Name,AttributeSetId,CategoryId,Description,Status,TypeId,Price,WebsiteIds,Visibility,UrlKey
nailPolish,nailpolish,9,2,verybrightproduct,1,simple,200,base,4,nailpolish
nailRemover,nailremover,9,2,niceproduct,1,simple,200,base,4,nailremover
答案 0 :(得分:0)
可能还有其他问题,但您需要按产品存储库保存产品
/** @var \Magento\Catalog\Api\ProductRepositoryInterface $productRepository */
$product = $productRepository->save($product);
目前,您根本不保存产品
另外,直接使用对象管理器,使用产品工厂创建新对象不是最佳做法