2012-11-30 2 views
1

Magento에서는 새 제품을 만들 때 SKU 번호를 수동으로 입력 할 수 있습니다. 나중에이 SKU 번호를 다른 번호로 변경할 수 있습니다. Magento에서이 작업을 허용하지 않는 방법이 있습니까? SKU 번호가 할당되면 SKU 번호가 항상 부여되기를 바랍니다. 사용자가 다른 SKU를 대신 할당하는 것을 원하지 않습니다.이미 Magento에서 생성 된 SKU를 변경하지 못하게 할 수 있습니까?

답변

4

이벤트 관찰자와 SKU 특성에 대한 사용자 지정 특성 백엔드 모델을 생각해 볼 수 있습니다. 후자는보다 철저한 솔루션입니다.

이벤트 관찰자의 경우 SKU 속성 값을 비교하여 변경되었는지 확인하고 경고 메시지와 함께 원본으로 설정할 수 있습니다. saveAttribute() 등을 사용하여 SKU 특성을 저장하지 않으면 충분합니다.

EAV 특성 백엔드 모델에서 동일한 논리를 수행 할 수 있습니다.이 논리는 설치 스크립트를 통해 쉽게 특성에 할당 할 수 있습니다. 그러나 SKU 특성의 경우에는 백 엔드 모델 인 Mage_Catalog_Model_Product_Attribute_Backend_Sku [link]이 이미 있습니다. 표준 Magento 클래스 재 작성을 사용하여 validate() 메서드를 다시 작성하고 원하는 값 보호 논리를 추가 한 다음 부모 메서드를 호출하여 솔루션을 매우 이식성있게 만듭니다.

save() 또는 saveAttribute()을 통해 저장에 관계없이 백엔드 모델이 사용되지만 관리 백엔드를 통한 모든 저장은 논리에 따라 처리됩니다.

1

제가 생각할 수있는 가장 쉬운 방법 중 하나는 제품 추가 페이지에 사용자 정의 Javascript 파일을 추가하고 제품 ID가 있는지 확인하는 것입니다.이 ID는 제품 저장 후에 만 ​​사용할 수 있습니다. 제품 ID가 있으면 sku 필드를 비활성화/숨 깁니다. JS 만 사용하기 때문에 100 % 안전하지는 않지만 관리자 사용자를 신뢰할 수 있다고 가정합니다.