我在Magento的前端看到产品时遇到了问题。
我创建了一个脚本save.php
:
<?php
set_time_limit(0);
// require magento core
require_once 'app/Mage.php';
// execute on admin store
Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);
$products = Mage::getModel('catalog/product')->getCollection();
foreach($products as $product) {
echo $product->getName() . '<br/>';
// save the product
$product->save();
}
echo 'DONE';
?>
在我使用php -f /var/www/shell/save.php
运行后,我仍然没有在前端看到该产品。如果我用后端保存产品,我会看到它,为什么会这样?
答案 0 :(得分:0)
请澄清您的问题: 如果您只是想看到产品名称和最终完成的回声,可能需要将权限设置为644或者脚本不在magento root中。
如果那不是你的问题: 您当前的代码是保存您的数据库中已有记录的对象,而不更改任何要保存的数据..
复制的正确方法是:
$newProduct = clone $product;
$newProduct->setData('sku','wowaNewSkuString');
$newProduct->save();
正确编辑的正确方法是:
$product->setData('sku','wowaNewSkuString');
$product->save();
当然,Magento总是在主要更改/编辑后刷新缓存和重新索引,以确保您的平面表(如果已启用)是最新的。