2010-11-12 69 views
14

我正在嘗試編寫一個腳本,該腳本將在具有開始日期和結束日期的產品上設置特價。當我運行我的腳本時,它確實成功設置了特殊價格,但開始和結束日期不會填充到管理面板中。以編程方式在Magento中設置特殊價格

我運行的代碼如下:

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

有誰知道我做錯了什麼?

+0

我也想這樣做。但我不知道在哪裏添加此代碼,請幫助我 – DRAJI 2013-07-13 05:05:58

+0

此代碼旨在進入Magento之外的某種生活腳本。我的這篇博客文章應該可以幫助你獲得這個設置。 http://overlycaffeinated.com/blog/2011/09/setting-up-your-magento-scripting-environment/ – 2013-07-15 02:09:27

回答

23

我剛剛在我的目錄上試過你的代碼,並且它有一點調整。

您應該注意加載的商店; 如果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(); 
?> 
+1

非常感謝。 +50 for you – 2010-11-23 13:51:10

+0

它awsome ..幫我lot.upvote從我 – 2014-10-11 06:59:57

+0

爲magento2 - >'$ objectManager-> get('Magento \ Store \ Model \ StoreManagerInterface') - > setCurrentStore('admin'); – MageDev 2017-01-18 07:40:52

0

這只是一個猜測,但你有沒有試過傳遞一個時間戳,如time(),而忽略了setSpecialFromDateIsFormated(true)?這應該會導致後端模型爲您適當地重新格式化它。

+0

我試了一下,但沒有奏效。 (還是)感謝你的建議。 – 2010-11-12 19:57:20

相關問題