嗨,我正在运行一个脚本来更新我的客户产品的所有延期交货和 in_stock。目前我们有大约8700种产品。但是,我注意到当我尝试调用该函数来更新它时,它似乎重定向到 500 内部服务器错误。
我进行了收集计数并设置了一个限制以查看中断点在哪里 - 1095。
因此,任何超过 1095 种产品的产品都失败了。
我正在使用 Magento 社区版 1.7.0.2
/// 下面的代码
umask(0);
require_once 'app/Mage.php';
Mage::app('admin');
$collection = Mage::getModel('catalog/product')->getCollection();
# Magento SQL queries
$collection->addAttributeToSelect('*');
$collection->getSelect()->limit(1096);
$collection->addFieldToFilter(array(
array('attribute'=>'preorder', 'eq'=>'1'),
));
echo $collection->count();
die();
foreach ($collection as $product) {
#echo $product->getData('sku')." - ".$product->getData('name')." with preorder status of - ".$product->getData('preorder')."<br/>" ;
$sku = $product->getData('sku');
$_product = Mage::getModel('catalog/product')->loadByAttribute('sku', $sku);
$stock = Mage::getModel('cataloginventory/stock_item')->loadByProduct($_product);
$stock->setBackorders("2");
$stock->setUse_config_backorders("0");
$stock->setIs_in_stock("1");
$stock->save();
echo $product->getData('sku')." - ".$product->getData('name')." with backorder status of - ".$stock->getData('backorders')." - Use config? - ".$stock->getData('use_config_backorders')." is in stock ? - ".$stock->getData('is_in_stock')."<br/>" ;
#die();
}
任何帮助是极大的赞赏。
谢谢,
朱利安