2012-12-17 88 views
2

我們在Magento Enterprise(1.12.0.2)中創建一個自定義客戶屬性來存儲用戶帳戶ID,從而使我們能夠保持我們的RMS與Magento同步。在Magento Enterprise中設置並獲取自定義客戶屬性

我需要手動設置RMS ID(通過PHP),然後再獲取RMS ID。自定義屬性是一個文本字段,它的標籤是rms_id。我需要做到以下幾點:

  1. 檢查rms_id使用客戶ID
  2. 如果沒有設置設置,更新客戶rms_id與所提供的價值

看起來非常簡單,但我Magento開發新手,無法找到解決此問題的方法。所有搜索返回的結果爲自定義產品屬性,這不屬於定製的客戶屬性。任何幫助將非常感激。

+0

魔術方法應該仍然適用於客戶屬性。 '$ _cutomer-> getRmsId()' - 如果不是,請確保該屬性是集合/模型對象的一部分。這可能是有用的:http://www.magentocommerce.com/wiki/1_-_installation_and_configuration/using_collections_in_magento – pspahn

回答

3
/* @var $customer Mage_Customer_Model_Customer */  
$customer = Mage::getModel('customer/customer')->load({customer id}); 

if (!$customer->getRmsId()) { 
    $customer->setRmsId({value}); 
    //the original version of this answer was wrong; need to use the resource model. 
    $customer->getResource()->saveAttribute($customer,'rms_id'); 
} 
+0

這與保存方法的例外完美。顯然Magento不喜歡saveAttribute並拋出一個令人討厭的錯誤,所以我用$ customer-> save()替換掉了它。它就像一個魅力。謝謝! –

+0

有沒有辦法使用rms id加載單個客戶?理想的解決方案就像$ customer-> loadByRmsId($ rms_id); –

+1

$ customer模型中沒有saveAttribute()方法。您應該使用 $ customer-> getResource() - > saveAttribute($ customer,'rms_id'); @NickParsons –

相關問題