php - 更新 Magento 特价

标签 php magento e-commerce

我试图在“迄今为止的特价”传递为空后恢复“特价”。所以基本上当我使用此代码以编程方式更新产品的特价时:

$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/

相关文章:

magento - 多个 Magento 网站,商店 View 代码作为语言代码

mysql - 对于电子商务网站来说,理想的 MySQL 事务隔离模式是什么?

php - 删除某些文本和换行符然后在逗号 PHP 的 X 计数后添加换行符

php - 动态更新mysql表

php - Laravel session 将标签转换为 html 实体

php - PHP 是否具有检测其运行的操作系统的功能?

magento - 为magento商店配置Analytics

magento - 在家展示超过 9 种产品

ruby-on-rails - 即将创建我自己的网上商店?优点和缺点

mysql - 如何获取每个产品属性/过滤器的总数,如 newegg