簡體   English   中英

如何在magento2中使用CSV數據以編程方式創建簡單的產品

[英]How to create a simple product programmatically using csv data in magento2

我正在嘗試使用csv數據以編程方式創建一個簡單的產品。 但是我的產品沒有插入數據庫和管理面板中??? 任何建議

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

也許還有其他問題,但是您需要按產品存儲庫保存產品

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


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

現在,您根本不保存產品

另外,直接使用對象管理器,使用產品工廠來創建新對象也不是最佳實踐

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM