2013-11-01 3 views
0

제품을 저장할 수는 있지만 이벤트를 시작하지 않으려합니다. 내가하는 업데이트가 영향을 미치지 않으므로 이벤트가 필요하지 않습니다. 예를 들어, 내 자신의 속성 만 업데이트합니다.magento : 이벤트가없는 제품을 저장 하시겠습니까?

마리우스는이에 대해 이야기 : 당신도하지 않도록 여전히 저장 호출 이벤트를 건너 뛸 수있는 수단이 경우 저장,하지만 난 그냥 궁금하고, 중대하다

Mage::getSingleton('catalog/product_action')->updateAttributes($productIds, $attributes, $storeId); 

() 방법은

덕분에 (이 경우에 도움이 될 수 있음), 위험한 유해 접근 할 수있다 저장에 대한 이벤트를 비활성화 로드

답변

0

. 나는 그것을 추천하지 않는다.
하지만 당신이 주장한다면, 당신은 런타임에 이벤트로 설정 노드를 변경하여 이것을 달성 할 수 있다고 생각합니다. Here is how you can change a config node : global/events/catalog_product_save_before, global/events/catalog_product_save_after이 ... 거기에 다른 사람하고 그들에 노드 <type>disabled</type>를 삽입 할 수 있습니다

당신이해야 할 것은 $product->save()이 제품과 관련된 이벤트가있는 설정에서 모든 노드를 얻을 호출하기 전에이다. 저장이 완료되면 type 노드를 제거하십시오.

당신은이 같은 이벤트에 대한 모든 (전역) 관찰자를 얻을 수 있습니다 : 결과를 통해

Mage::getConfig()->getNode('global/events/catalog_product_save_before'); 

루프 및 장애인에 유형을 설정합니다.

다음은 예입니다. 의 global 지역 이외 :

Mage::getConfig()->setNode("global/events/catalog_product_save_before/observers/some_alias/type", 'disabled'); 

참고 :

당신은이 작업을 수행 할 필요가 일부/model_here someAction :
은의 당신이 이벤트가 있다고 가정 해 봅시다 이벤트는에서 찾을 수 있습니다.및 adminhtml 영역입니다.

관련 문제