1

嗨,我正在运行一个脚本来更新我的客户产品的所有延期交货和 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();
}

任何帮助是极大的赞赏。

谢谢,

朱利安

4

0 回答 0