Установить специальную цену программно в Magento - PullRequest
14 голосов
/ 12 ноября 2010

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

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

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

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

Ответы [ 2 ]

23 голосов
/ 23 ноября 2010

Я только что попробовал ваш код в моем каталоге, и он работал с небольшой корректировкой.

Стоит обратить внимание на загруженный магазин; Не разрешается обновлять определенные поля продукта, если в данный момент не загружено хранилище 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();
?>
0 голосов
/ 12 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...