更新Magento特价

时间:2011-01-08 09:49:30

标签: php magento e-commerce

我试图在“特价到目前”传递给null后恢复“特价”。所以基本上当我使用这段代码以编程方式更新我的产品的特价时:

$todayDate  = Mage::app()->getLocale()->date()->toString(Varien_Date::DATETIME_INTERNAL_FORMAT);

$collection = Mage::getModel('catalog/product')->getCollection()
        ->addStoreFilter()
        ->addAttributeToFilter('special_price', array('gt' => 0))
        ->addAttributeToFilter('special_to_date', array('date' => true, 'to' => $todayDate));
echo "Total products found : ".count($collection);
foreach ($collection as $product)
{
        $product->setSpecialPrice(null)
        ->setSpecialFromDate(null)
        ->setSpecialToDate(null)
        ->save();
}

echo "<br/> Done!";

但在我将特价更新为null之后,magento产品向导不允许我为我的产品设置新的特价。当我保存表格时,它不会给我任何错误,也不会影响特价的任何变化,它仍然是空的!怎么了?!

1 个答案:

答案 0 :(得分:6)

要解决此问题,请选择更适合您的选择。 您可以在过去设置“ToDate”,如:

->setSpecialToDate(date("m-d-Y", strtotime('-25 year')));

请注意,如果要将其设置回来,将来必须设置“ToDate”,如:

->setSpecialToDate(date("m-d-Y", strtotime('25 year')));

或代替'null',只需插入一个空字符串''。 像这样:

$product->setSpecialPrice('')
        ->setSpecialToDate('')
        ->setSpecialFromDate('')
        ->save()

希望这可以帮助某人