В программе Magento

Я пытаюсь написать script, который установит специальную цену на продукт с датой начала и окончания. Когда я запускаю свой script, он успешно устанавливает специальную цену, но дата начала и окончания не заполняется в панели администратора.

Код, который я запускаю, выглядит следующим образом:

$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();

Кто-нибудь знает, что я делаю неправильно здесь?

Ответ 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();
?>

Ответ 2

Это всего лишь предположение, но вы пробовали пропустить метку времени, например, от time() и оставить setSpecialFromDateIsFormated(true)? Это должно привести к тому, что бэкэнд-модель будет соответствующим образом переформатировать его для вас.