아무도 제품 객체가 사용할 수있는 "getTypeInstance()"메서드가 필요하다는 것을 밝힐 수 있습니까?Magento에서 제품의 getTypeInstance() 사용
또한이 메서드를 사용하여 찬성론은 &이 무엇입니까?
아무도 제품 객체가 사용할 수있는 "getTypeInstance()"메서드가 필요하다는 것을 밝힐 수 있습니까?Magento에서 제품의 getTypeInstance() 사용
또한이 메서드를 사용하여 찬성론은 &이 무엇입니까?
getTypeInstance는 유형이 내부 젠토 타입 제품의 종류를 설명하는 객체를 검색 할 수 있습니다. 따라서이 방법을 사용하여 제품이 단순 제품인지 여부, 번들 제품인지, 구성 가능한 제품인지 확인할 수 있습니다.
그런 다음이 개체를 사용하여 해당 유형의 제품에 대한 정보를 확인할 수 있습니다. 당신이 번들 제품 객체에이 메서드를 호출 할 경우 예를 들어, 당신은 누구의 클래스입니다
Mage_Bundle_Model_Product_Type
이 클래스는 특별히 결합 상품을 처리하도록 설계되어 그 메소드의 수를 가진 개체를 얻을 수 있습니다. 예를 들어, getWeight
방법
public function getWeight($product = null)
{
if ($this->getProduct($product)->getData('weight_type')) {
return $this->getProduct($product)->getData('weight');
} else {
$weight = 0;
if ($this->getProduct($product)->hasCustomOptions()) {
$customOption = $this->getProduct($product)->getCustomOption('bundle_selection_ids');
$selectionIds = unserialize($customOption->getValue());
$selections = $this->getSelectionsByIds($selectionIds, $product);
foreach ($selections->getItems() as $selection) {
$weight += $selection->getWeight();
}
}
return $weight;
}
}
이 방법은 번들 제품의 무게를 결정하기위한 특정 규칙이 있습니다.
다음, catalog/product
모델 (Mage_Catalog_Model_Product
)에, 당신은 getWeight
그냥 유형의 getWeight
public function getWeight()
{
return $this->getTypeInstance(true)->getWeight($this);
}
에 전화를 감싸는 것을 볼 수있는 것은 행동의 객체 지향 프로그래밍의 좋은 예이다.
그래서 오늘 하루가 끝날까요? 왜이 방법을 사용해야하는지 모른다면이 방법을 사용할 필요가 없습니다.
getTypeInstance
호출은 선택한 제품 유형에 따라 다른 개체를 반환합니다. 예를 들어 번들 제품을 선택한 경우 유형 인스턴스에 묶음 제품에 대한 정보, 동적 가중치 계산 방법에 대한 정보가 있습니다.
이 방법을 사용하는 데는 문제가 없습니다. 필요한 데이터가 있습니다.
희망이 있습니다.
덕분에, 조
감사합니다. 앨런, 멋진 설명입니다. –