2012-02-15 3 views
4

다중 저장소 설정 - StoreA, StoreB 및 StoreC가 있습니다. 그리고 다음과 같이 내가 제품을 편집하고있어합니다 (StoreA URL을 사용하여) 컨트롤러에서 : 다음 특정 제품에 대한 관리/편집 제품에 가면Magento - "기본값 사용"을 설정하지 않고 제품 저장

$_product = new Mage_Catalog_Model_Product(); 
$_product->load($productId); 
$_product->setData('attribute1','somevalue'); 
$_product->save(); 

, 내가 속성 1이 올바르게 설정되어 있는지 찾을 또한 "Choose Shop View"에서 StoreA를 선택하면 StoreA의 "Use Default Value"체크 상자가 모두 false로 설정되어 있음을 발견했습니다.

질문 : "사용 기본값"StoreA에 대한 체크 박스가 한 번

  • 위의 코드가 실행 (그리고 "사용 된 것은 사실 남아 그래서 위의 코드를 수정하려면 어떻게

    1. StoreA가 false로 설정된 값 ") StoreA에 대해"Use 값 "값을 다시 true로 되돌리려면 어떻게해야합니까?

    편집 :

    추가 스크린 샷 : enter image description here

  • 답변

    1

    나는 '기본값 사용'에 완전히 명확하지 않다 체크 박스 당신이보고있는,하지만 난 눈치 두 가지가있다.

    팩토리 패턴을 사용하여

    귀하의 코드 :

    $_product = new Mage_Catalog_Model_Product(); 
    

    사용 factory pattern, 마 젠토의 표준 :

    그 자체로도 문제가되지 않는다는 것을
    $_product = Mage::getModel('catalog/product'); 
    

    , 그러나 명심해야 할 것이 있습니다.

    만 제품 만 특정 속성을 저장하는 경우가 더 빠른 것,

    다음 속성 (그리고 잠재적 문제를 방지)이 해당 속성을 업데이트 할 경우 업데이트. 그래서 같이 :

    $attribute = array('attribute_code' => 'attribute_value'); 
    
    Mage::getSingleton('catalog/product_action') 
          ->updateAttributes($_product->getId(), $attribute, 0); 
    

    Reference for the updateAttributes() method. 여기 내 추론은 단지 특정 속성 가능한 기본 값은 전체 제품을 저장하여 추가되고, 그리고없는 것입니다.

    도움이되지 않는 경우 내가 보는 화면이 문제를 시각화하는 데 도움이 될 수 있습니다.

    +0

    좋은 아이디어는 공장 패턴. 나는 또한 스크린 샷을 업로드했다. Re -> updateAttributes, 나는 마지막 매개 변수가 상점 ID라는 것을 알았습니다. 나는 이것이 열쇠라고 생각한다. 나는 시험해 볼 것이다. 어떤 생각이라도 문제의 2 부분을 되풀이 할 수 있습니까? – mas

    +0

    아, 문제 될 상점 ID를 설정하지 않았다면. 문제가 해결 되었습니까? 아니면 문제를 해결해야합니까? –

    +0

    감사합니다. 당신의 대답에 따라 Mage :: app() -> setCurrentStore (Mage_Core_Model_App :: ADMIN_STORE_ID); 기본 저장소를 설정합니다. 이것은 (1)을 해결합니다.해결하려면 (2), 나는 당신이 $ _product-> setName (false) 또는 $ _product-> setData ('attribute', false)를 설정할 수 있다는 것을 알았지 만, 나는 설정하려고하는 많은 속성을 가지고있다. 사용 -> updateAttributes하지만이 다음과 같은 문제가 있습니다 : [링크] (http://stackoverflow.com/questions/9302279/magento-setting-product-attributes-use-default-value-using-updateattributes) – mas