2012-08-15 3 views
0

은 내가 수정하거나 체중과 같은 시스템 속성을 검색 할 경우
$product = Mage::getModel("catalog/product")->loadByAttribute('sku', $data['id']);젠토 1.7 : 비 시스템 제품은

를 사용하여 제품을로드하는 스크립트를 가지고, 모든 것이 잘 작동 PHP 스크립트에 저장하지 속성 :
$product->getWeight(); // returns the correct weight
$product->setWeight(5.0); // correctly sets weight

나는 두 개의 사용자 정의가 속성 : google_product_category 및 MPN합니다. 같은 기술을 사용하여 수정하려고하면
$product->setMpn('123ABC');
$product->setGoogleProductCategory('Electronics');

호출은 오류를 발생시키지 않지만 데이터는 저장되지 않습니다. (예, 나중에 $ product-> save()를 호출합니다).

내가 뭘 잘못하고 있니?

+0

으로 변경하여 'var/cache'에서 모든 파일을 제거하십시오. 또한 디버깅을 위해'$ product-> getResource() -> getAttribute ('mpn') -> getBackend() -> getTable()'을 호출 할 수 있습니다. – Serjio

답변

3

스크립트를 게시 할 수 있습니까? 개발자 모드입니까? 그것은 문제처럼 보인다

Mage_Catalog_Model_Product에서 봐 때문에 저장 영역

입니다 - 제품을 저장할 때>setOrigData

public function setOrigData($key=null, $data=null) 
{ 
    if (Mage::app()->getStore()->isAdmin()) { 
     return parent::setOrigData($key, $data); 
    } 

    return $this; 
} 

, 그것은 origdata로 데이터를 비교할 필요가있다.

'admin'영역에서 실행하면 origdata를 검색 할 수 있습니다. 스크립트가 '기본'영역에서 실행되면 origdata를 가져올 수 없습니다.

그래서 당신이 개발자 모드에 있다면, 코드의 어느 시점에서 경고가 의지 스크립트 (당신이 오류가 발생하지 않은 말했다 때문에 내가 잘못 될 수있다)을 돌파 던져 질이 원하지 것을

당신이 할 수있는

그것은 Mage::app('default')Mage::app('admin') 또는 Mage::app()->setCurrentStore('admin');

+0

감사합니다 : D –