Snažím sa napísať skript, ktorý nastaví ašpeciálna cena na výrobok s dátumom začiatku a konca. Keď spustím skript, úspešne nastaví špeciálnu cenu, ale začiatočný a koncový dátum sa nenachádzajú v správcovskom paneli.
Kód, ktorý používam, je nasledujúci:
$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();
Vie niekto, čo tu nerobím?
odpovede:
23 pre odpoveď č. 1Práve som si vyskúšal kód v mojom katalógu a pracoval som s troškou úpravy.
Mali by ste venovať pozornosť naloženému obchodu; nie je povolené aktualizovať niektoré polia produktu, ak úložisko služby ADMIN nie je aktuálne načítané (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 pre odpoveď č. 2
Toto je len hádka, ale vyskúšali ste odovzdať časové označenie ako z time()
a vynechať setSpecialFromDateIsFormated(true)
? To by malo spôsobiť, že model backendu ju vhodne preformátuje.