Magento2 以编程方式在Magento 2中创建产品

Magento2 以编程方式在Magento 2中创建产品,magento2,Magento2,我正在尝试在Magento 2中以编程方式创建产品,除了我得到的一些产品外,所有产品都正常工作: 处理您的请求时出错 指定存储的URL键已存在 这是我目前的代码: $sku = $row[0]; $name = $row[1]; $getSku = $product->getIdBySku($sku); if($getSku) { echo 'Product with SKU '.$s

我正在尝试在Magento 2中以编程方式创建产品,除了我得到的一些产品外,所有产品都正常工作:

处理您的请求时出错
指定存储的URL键已存在

这是我目前的代码:

$sku = $row[0];
            $name = $row[1];
            $getSku = $product->getIdBySku($sku);

            if($getSku) {
                echo 'Product with SKU '.$sku.' already exists';  

            } else {

                    $product->setSku($sku); // Set your sku here
                    $product->setName($name); // Name of Product
                    $product->setAttributeSetId(4); // Attribute set id
                    $product->setStatus(1); // Status on product enabled/ disabled 1/0
                    $product->setWeight(10); // weight of product
                    $product->setStoreId(1);
                    $product->setVisibility(4); // visibilty of product (catalog / search / catalog, search / Not visible individually)
                    $product->setTaxClassId(0); // Tax class id
                    $product->setTypeId('simple'); // type of product (simple/virtual/downloadable/configurable)
                    $product->setPrice(100); // price of product
                    $product->setStockData(
                                            array(
                                                'use_config_manage_stock' => 0,
                                                'manage_stock' => 1,
                                                'is_in_stock' => 1,
                                                'qty' => 999999999
                                            )
                                        );
                    $product->save();



            $this->messageManager->addSuccess('Product with SKU '.$sku.' Added');
            }

SKU和产品名称来自已经完成的CSV…所以不用担心。我试图解决这个问题,看起来它试图创建一个同名的产品url?可能有两个产品的名称相同,magento可以生成自定义url,例如,name-1 name-2而不是使用相同的名称,我认为这就是问题所在…

我已经解决了它,如果其他人有相同的问题,这是因为命名,您可以这样做:

$product->setName($name . " - " . $sku);
而url则会有所不同