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 № 1Wł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.