我试图在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而不是使用相同的,我认为这就是问题......
答案 0 :(得分:0)
我已修复它,以防其他人有同样的问题,因为命名,你可以这样做:
$product->setName($name . " - " . $sku);
并且网址会有所不同