Closed. This question is not reproducible or was caused by typos。它当前不接受答案。












想改善这个问题吗?更新问题,以使为on-topic

5年前关闭。



Improve this question





我正在尝试将“到目前为止的特价”传递为空后恢复“特价”。所以基本上,当我使用以下代码以编程方式更新产品的特价时:

$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!";


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

最佳答案

为了解决这个问题,请选择更适合您的。
您可以像过去一样设置“ ToDate”:

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


请注意,如果要重新设置它,则以后必须设置“ ToDate”,例如:

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


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

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


希望这可以帮助某人

关于php - 更新Magento特价,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4633314/

10-12 05:37