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

时间:2018-04-25 19:56:21

标签: magento2

我试图在Magento 2中以编程方式创建产品,一切正常,除了其中一些我得到的:

There has been an error processing your request
URL key for specified store already exists.

到目前为止,这是我的代码:

$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 ...所以不要担心,我试图解决这个问题,看起来它试图创建一个同名的产品网址?,也许有2个同名产品,可以magento生成自定义网址,例如,name-1 name-2而不是使用相同的,我认为这就是问题......

1 个答案:

答案 0 :(得分:0)

我已修复它,以防其他人有同样的问题,因为命名,你可以这样做:

$product->setName($name . " - " . $sku);

并且网址会有所不同