2012-10-22 4 views
3

사용자 카트에있는 제품의 속성 값을 가져 오는 중 문제가 발생합니다.Magento : 카트의 마지막 항목에 대한 속성 값을 가져올 수 없습니다.

나는 다음과 같은 코드가 있습니다

umask(0); 
Mage::app(); 

Mage::getSingleton('core/session', array('name'=>'frontend')); 
$session = Mage::getSingleton('checkout/session'); 
$cart = Mage::helper('checkout/cart')->getCart()->getItemsCount(); 

foreach ($session->getQuote()->getAllItems() as $item) { 

$_product = Mage::getModel('catalog/product')->load($item->getId()); 

$attributeValue = $_product->getAttributeText('availability'); 

echo $attributeValue; 

} 

을 그리고 그것은 매우 마지막 하나를 제외하고는 카트에있는 모든 제품에 대해 잘 작동합니다. 예를 들어, "Backorder", "Preorder", "Out of Stock"값 중 하나만 가질 수있는 "가용성"속성 값을 얻으려고합니다. 장바구니에 3 개의 항목이있는 경우 첫 번째 항목에 대한 올바른 값을 얻을 수 있지만 마지막 항목에 대해서는 "아니오"만 표시합니다.

모든 속성이 올바르게 설정되었는지 확인하기 위해 각 항목을 두 번 확인했으며 장바구니의 항목 수에 관계없이 모든 항목을 확인했습니다.

잘하면 그것은 내 바보 같은 실수입니다.

도움을 주시면 감사하겠습니다.

감사합니다.

해결 :

가 변경 :

$_product = Mage::getModel('catalog/product')->load($item->getId()); 

문제 수정

$_product = Mage::getModel('catalog/product')->load($item->getProductId()); 

에.

+1

속성 대신'$ _product-> getId()'를 출력하면 올바른 ID를 얻을 수 있습니까? –

+0

아, 그게 다야. 해당 비트를 $ item-> getProductId()로 변경하면 올바른 제품 ID가 제공되고 올바른 속성이 인쇄됩니다. – Griffin

+0

확인. 나는 그것을 답으로 추가 할 것이다. –

답변

4

문제는 그 라인에있다 : 당신이 Mage_Sales_Model_Quote_Item의 ID를 얻고있다 $item->getId()으로

$_product = Mage::getModel('catalog/product')->load($item->getId()); 

하지 Mage_Catalog_Model_Product. 대신 현재 견적 항목과 관련된 실제 제품의 ID를 얻으려면 $item->getProductId()을 사용해야합니다.

관련 문제