Magento 用に構築している特定のカスタム拡張機能についてサポートが必要です。バンドルされた製品タイプを「親」バンドル製品に関連付けることができる拡張機能を作成しました。
つまり、私は、デスクトップ コンピュータにバンドルされたバンドル製品「キーボードとマウス」を販売していたと考えてください。
管理者で作業しており、製品ビューに表示されています。しかし、この「デスクトップ コンピュータ」をショッピング カートに追加しようとすると、問題が発生します。/app/code/core/Mage/Bundle/Model/Product/Type.phpの下にある *_prepareProduct()* を呼び出す関数までたどることができました。
以下は、私が問題を見つけているコードのスニペットです。ご覧のとおり、selectionIds をダンプすると、製品ビュー ページから選択したオプションの配列が返されます。2 番目のダンプはselections->getItems です(この機能がどこにあるのかわかりません。フォーカスできません)。ただし、単純な製品 (つまり、キーボードとマウスを含むバンドル製品) のみを含む BUNDLE PRODUCT からこの DUMP を表示すると、selections->getItems(...)のデータ/オブジェクトが出力されます。バンドルされた製品を含むバンドルされた製品 (つまり、キーボードとマウスなどを含むバンドルされた製品を持つデスクトップ コンピューター) からこれをダンプすると、selections->getItems(...)に対して何も返されません。
// If product has not been configured yet then $selections array should be empty
if (!empty($selectionIds)) {
$selections = $this->getSelectionsByIds($selectionIds, $product);
var_dump($selectionIds);
var_dump($selections->getItems());
// Check if added selections are still on sale
foreach ($selections->getItems() as $key => $selection) {
「getSelectionsByIds」とそれをオーバーライドして、カートにアイテムを追加したときにバンドルされた製品の空のオブジェクトを返さないようにする方法を理解するのを手伝ってくれる人はいますか? getSelectionsById をオーバーライドする方法は知っていますが、関数が何も返さない原因がわかりません。
ありがとう