【问题标题】:Set Special Price Programmatically In Magento在 Magento 中以编程方式设置特价
【发布时间】:2010-11-12 18:53:58
【问题描述】:

我正在尝试编写一个脚本,该脚本将为具有开始日期和结束日期的产品设置特价。当我运行我的脚本时,它确实成功设置了特价,但开始和结束日期没有填充在管理面板中。

我运行的代码如下:

$product = Mage::getModel('catalog/product')->load(114912);
$product->setSpecialPrice( ($product->getPrice() * .90)   );

$product->setSpecialFromDate('2010-11-01');
$product->setSpecialFromDateIsFormated(true);

$product->setSpecialToDate('2010-11-30');
$product->setSpecialToDateIsFormated(true);

$product->save();

有谁知道我在这里做错了什么?

【问题讨论】:

  • 我也想这样做。但我不知道在哪里添加此代码,请帮助我
  • 这段代码是为了进入一个在 Magento 之外存在的脚本。我的这篇博客文章应该可以帮助您进行此设置。 overlycaffeinated.com/blog/2011/09/…

标签: magento


【解决方案1】:

我刚刚在我的目录中尝试了您的代码,并且稍作调整就可以使用。

您应该注意已加载的商店; 如果 ADMIN 商店不是当前加载的 (Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);),则不允许更新某些产品字段。

<?php

require_once('app/Mage.php');

Mage::app()->setCurrentStore(Mage_Core_Model_App::ADMIN_STORE_ID);

...

$product->save();
?>

【讨论】:

  • 非常感谢。 +50 给你
  • 对于 magento2 -> $objectManager-&gt;get('Magento\Store\Model\StoreManagerInterface')-&gt;setCurrentStore('admin');
【解决方案2】:

这只是一个猜测,但您是否尝试过传递像 time() 这样的时间戳并忽略 setSpecialFromDateIsFormated(true)?这应该会导致后端模型为您重新格式化它。

【讨论】:

  • 我试了一下,没用。不过感谢您的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-07-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-04
  • 2020-09-21
  • 1970-01-01
相关资源
最近更新 更多