该功能您发布的非常好创建重复产品。但是,它不设置下面的属性(由于这是不可见的在前端):
- 导航到目录>产品管理>重复的产品>库存
数量是0和库存是“缺货” - 您需要在下面写一段代码才能将本产品设置为库存:“库存”和数量:[so我默认值]说,100。
之后召唤出$newProduct->setWebsiteIds($_product->getWebsiteIds());
行了,你可以插入以下行:
$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($newProduct->getId());
if ($stockItem->getId() > 0 && $stockItem->getManageStock())
{
$qty = 100; //set a default max value
$stockItem->setQty($qty);
$stockItem->setIsInStock((int)($qty > 0));
$stockItem->save();
}
- 您将需要运行重新索引手动或者自动化它
该产品将显示在前端。见下面的截图:
[编辑]
使用下面的代码,让我知道它是否适合你:
public function indexAction()
{
$productId = $this->getRequest()->getParam('value');
$productObject = Mage::getModel('catalog/product');
$_product = $productObject->load($productId);
$newProduct = $_product->duplicate();
$newProduct->setStatus(1);
//$newProduct->setName('Duplicate-' . $_product->getName());
$newProduct->setSku('value' . $productId);
$newProduct->setWebsiteIds($_product->getWebsiteIds());
$stockItem = Mage::getModel('cataloginventory/stock_item')->loadByProduct($newProduct->getId());
if ($stockItem->getId() > 0 && $stockItem->getManageStock())
{
$qty = 100;
$stockItem->setQty($qty);
$stockItem->setIsInStock((int)($qty > 0));
$stockItem->save();
}
$newProduct->getResource()->save($newProduct);
$indexers = Mage::getSingleton('index/indexer')->getProcessesCollection();
foreach ($indexers as $indexer)
{
$indexer->reindexEverything();
}
}
希望这有助于。
编码快乐......
我累了它不工作 – Sri
的数量只有保持为零,以及如何重新索引我应该在哪里想编写的代码? – Sri
上面的答案在CE 1.9.2.2中测试过,并且工作正常(共享屏幕截图)。重新编制索引代码也可以写在同一个函数中。 – Shivani