2011-08-19 37 views
0

問題: 我試圖在magento中構建AJAX購物車,但似乎無法獲取可配置產品的選定配置選項。我相信我正在調用正確的方法($this->getOptionList())來獲取它們。它應該返回一個包含選項和標籤的數組,但它不會返回任何內容!要清楚,他們顯示在正常購物車。試圖在Magento中構建AJAX購物車,配置選項不顯示

解釋: 的我怎麼做簡短的故事: 我用Mage_Checkout模塊車控制,但我更改模板的東西非常少(使用當前主題佈局更新),和自定義模塊中定義了一個路由器。

長的故事:

我已經創建了我所定義的結合frontName「ajaxcart」到Mage_Checkout模塊中的控制器路由器模塊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」)正在被使用,所以這工作得很好。我測試了它,當我去http://domain.com/ajaxcart/cart

index.phtml:

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

show.phtml:

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

看到,因爲$this在這種情況下指的是Mage_Checkout模塊的車座並在這個類(其超類實際)的方法getItemHtml()中挖掘,我發現使用上面的show.phtml示例中的第二行檢索到購物車中每個項目的塊對象($_renderer)。

有誰知道爲什麼缺少信息?我使用原始控制器的全部原因是它可能正在做一些重要的事情,但它仍然不工作!

在此先感謝。

回答

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它留着在checkout_cart_index句柄下的cart/checkout塊中的一些addItemRender(layout xml)方法。特別是對於我的問題,上面的元素丟失了,並且搞亂了購物車中可配置產品的渲染。需要加載一個特殊類型的塊對象,實際上有(PHP)方法getOptionList()

相關問題