問題: Magento で AJAX カートを構築しようとしていますが、構成可能な製品の選択した構成オプションを取得できないようです。それらを取得するために正しいメソッド ( ) を呼び出していると思い$this->getOptionList()
ます。オプションとラベルを含む配列を返す必要がありますが、何も返しません!! 明確にするために、それらは通常のカートに表示されています。
説明: 私のやり方の簡単な話: 私は Mage_Checkout モジュールの Cart Controller を使用していますが、テンプレートを非常に最小限のもの (現在のテーマのレイアウト更新を使用) に変更し、ルーターが定義されたカスタム モジュールを使用しています。初期化。
長い話:
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/cart/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; ?>
このコンテキストでは、 Mage_Checkout$this
モジュールのカート ブロックを参照し、getItemHtml()
このクラス (実際にはそのスーパークラス) のメソッドを掘り下げてみると、カート内のアイテムごとのブロック オブジェクトがshow.phtml
上記のサンプルの 2 行目を使用して取得されることがわかりました。 ( $_renderer
)。
情報が欠落している理由を知っている人はいますか?私が元のコントローラーを使用している理由は、おそらくいくつかの重要な機能を実行しているのに、まだ機能していないからです!!
前もって感謝します。