2011-08-19 3 views
0

문제 : Magento로 AJAX 카트를 만들려고했지만 구성 가능한 제품 중 선택한 구성 옵션을 가져올 수 없습니다. 나는 그 (것)들을 얻기 위하여 맞은 방법 ($this->getOptionList())를 빌고있다 믿는다. 옵션과 라벨을 가진 배열을 반환해야하지만, 아무 것도 반환하지 않습니다 !! 분명히하려면 은 보통 카트에으로 표시됩니다.Magento에서 AJAX 카트를 만들려고하는데 구성 옵션이 표시되지 않음

설명 : 짧은 내가하고있어 방법의 이야기 : 내가 Mage_Checkout 모듈의 장바구니 컨트롤러를 사용하지만, 나는 (현재 테마에서 레이아웃 업데이트를 사용) 아주 최소한의 뭔가 템플릿을 변경하고, 라우터가 정의 된 맞춤 모듈.

긴 이야기 :

나는 내가 Mage_Checkout 모듈의 컨트롤러에 frontName 'ajaxcart'를 결합하는 라우터를 정의하는 모듈 MyNameSpace_Checkout을 만들었습니다. 지금 내 현재 테마의 local.xml 파일에 나는 'ajaxcart_cart_index'핸들 아래에 다음과 같은 레이아웃 업데이트를 넣어 :

<ajaxcart_cart_index> 
    <reference name="root"> 
    <action method="setTemplate"> 
     <template>ajaxcart/cart/index.phtml</template> 
    </action> 
    <block type="checkout/cart" name="checkout.cart" template="ajaxcart/cart/show.phtml" as="cart"></block> 
    </reference> 
</ajaxcart_cart_index> 
내 템플릿 ('ajaxcart/카트/show.phtml이')를 사용하고

때문에, 이것은 꽤 잘 작동했습니다.

<?php echo $this->getChildHtml('cart'); ?> 

show.phtml :이 상황에서 $this이 Mage_Checkout 모듈의 장바구니 블록을 의미로 보는

<?php foreach($this->getItems() as $_item): ?> 
    <?php $_renderer = $this->getItemRenderer($_item->getProductType())->setItem($_item); ?> 
    <?php /* render an item */ ?> 
<?php endforeach; ?> 

, 내가 http://domain.com/ajaxcart/cart

index.phtml에 갔을 때 나는 그것을 테스트 이 클래스의 메소드 getItemHtml() (실제로 해당 슈퍼 클래스)을 파헤 치다. 카트의 항목 당 블록 객체가 위의 show.phtml 샘플 ()의 두 번째 라인을 사용하여 검색된다는 것을 발견했습니다.).

정보가 누락 된 이유를 아는 사람이 있습니까? 원래 컨트롤러를 사용하는 전적인 이유는 아마도 몇 가지 필수적인 작업을 수행하고 있지만 아직 작동하지 않습니다 !!

미리 감사드립니다.

답변

0

나는 문제 나 자신, 레이아웃 업데이트 (현재 테마의 local.xml) 문제가 있었다 발견 :

<action method="addItemRender"> 
    <type>configurable</type> 
    <block>checkout/cart_item_renderer_configurable</block> 
    <template>checkout/cart/item/default.phtml</template> 
</action> 

내가 기본/기본 테마의 checkout.xml에서 다른 모양을했다 및 그것을 자랑 해 보였다 일부 addItemRender (레이아웃 xml) 메서드는 블록의 checkout_cart_index 핸들 아래에 있습니다. 특히 내 문제는 위의 요소가 누락되어 카트에서 구성 가능한 제품 항목의 렌더링이 엉망입니다. 특수 유형의 블록 객체가로드되어야합니다. 실제로는 (PHP) 메소드 getOptionList()이 있습니다.

관련 문제