如何使用magento2中的csv数据以编程方式创建简单产品

时间:2017-10-23 12:37:52

标签: php magento2

我正在尝试使用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

1 个答案:

答案 0 :(得分:0)

可能还有其他问题,但您需要按产品存储库保存产品

/** @var \Magento\Catalog\Api\ProductRepositoryInterface $productRepository */


$product = $productRepository->save($product);

目前,您根本不保存产品

另外,直接使用对象管理器,使用产品工厂创建新对象不是最佳做法