/ / Ustaw specjalną cenę programowo w Magento - magento

Ustaw specjalną cenę programowo w Magento - magento

Próbuję napisać skrypt, który ustawispecjalna cena produktu z datą początkową i końcową. Po uruchomieniu skryptu z powodzeniem ustawia specjalną cenę, ale data rozpoczęcia i zakończenia nie jest wyświetlana w panelu administracyjnym.

Kod, który uruchamiam jest następujący:

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

Czy ktoś wie, co robię źle tutaj?

Odpowiedzi:

23 dla odpowiedzi № 1

Właśnie wypróbowałem twój kod w moim katalogu i działał z niewielkimi poprawkami.

Powinieneś zwrócić uwagę na załadowany sklep; nie można aktualizować niektórych pól produktu, jeśli sklep ADMIN nie jest aktualnie załadowany (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 dla odpowiedzi nr 2

To tylko przypuszczenie, ale czy próbowałeś przekazać znacznik czasu jak z time() i pomijając setSpecialFromDateIsFormated(true)? To powinno spowodować, że model zaplecza sformatuje go odpowiednio dla Ciebie.