问题:我正在尝试在 magento 中构建 AJAX 购物车,但我似乎无法获取可配置产品的所选配置选项。我相信正在调用正确的方法 ( $this->getOptionList()
) 来获取它们。它应该返回一个带有选项和标签的数组,但它什么也不返回!!需要明确的是,它们出现在普通购物车中。
说明:关于我如何做的简短故事:我使用 Mage_Checkout 模块的购物车控制器,但我将模板更改为非常小的东西(使用当前主题中的布局更新),以及一个定义了路由器的自定义模块在里面。
很长的故事:
我创建了一个模块 MyNameSpace_Checkout,在其中我定义了一个将 frontName 'ajaxcart' 绑定到 Mage_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/cart/show.phtml')正在使用中,所以效果很好。我去http://domain.com/ajaxcart/cart的时候测试过
索引.phtml:
<?php echo $this->getChildHtml('cart'); ?>
显示.phtml:
<?php foreach($this->getItems() as $_item): ?>
<?php $_renderer = $this->getItemRenderer($_item->getProductType())->setItem($_item); ?>
<?php /* render an item */ ?>
<?php endforeach; ?>
在这个上下文中看到是$this
指 Mage_Checkout 模块的 Cart Block,并且在getItemHtml()
这个类的方法(实际上是它的超类)中挖掘,我发现购物车中每个项目的块对象是使用show.phtml
上面示例中的第二行检索的( $_renderer
)。
有谁知道为什么缺少信息?我使用原始控制器的全部原因是它可能正在做一些重要的事情,但它仍然无法正常工作!
提前致谢。