1

私は kable-bundleplus モジュールを使用しており、このコードを使用してデフォルト値を持つバンドル製品の製品リスト ページに [カートに追加] ボタンを追加しました。

<?php
$productAddUrl = $this->helper(‘checkout/cart’)->getAddUrl($_product);
if ($_product->getTypeId() == ‘bundle’):
$bundleOptions = ‘?';
$selectionCollection = $_product->getTypeInstance(true)->getSelectionsCollection($_product->getTypeInstance(true)->getOptionsIds($_product), $_product);
foreach($selectionCollection as $option):
$bundleOptions .= ‘&amp;bundle_option[‘ . $option->option_id . ‘]=’ . $option->selection_id;
$bundleOptions .= ‘&amp;bundle_option_qty[‘ . $option->option_id . ‘]=’ . $option->selection_qty;
endforeach;
$productAddUrl .= $bundleOptions;
endif;
?>
<button type="button" title="<?php echo $this->__(‘Add to Cart’) ?>" class="button btn-cart" onclick="setLocation(‘&lt;?php echo $productAddUrl ?>’)"><span><span><?php echo $this->__(‘Add to Cart’) ?></span></span></button> <?php else: ?>

ここから入手しました http://understandinge.com/forum/all-things-coding/add-a-bundle-product-to-cart-from-category-page/

すべてが正常に機能している場合、製品はデフォルトの数量の正しいデフォルト オプションでカートに追加されます。しかし、ショッピング カート ページから編集を押すと、すべてのオプションにデフォルトの数量値が表示され、スクリプト エラーが発生します。

Uncaught TypeError: Cannot read property 'customQty' of undefined
Uncaught TypeError: Cannot read property 'reloadPrice' of undefined

チェックボックスを押して数量を変更すると、これが表示されます

Uncaught TypeError: Cannot read property 'changeSelection' of undefined

問題は商品をカートに追加するために使用される URL にあると思いますが、方法がわかりません。

助けはありますか?

4

1 に答える 1

-1

私はそれを修正しました。誰かが興味を持っている場合の解決策は次のとおりです

2行を置き換えます

$bundleOptions .= ‘&amp;bundle_option[‘ . $option->option_id . ‘]=’ . $option->selection_id;
$bundleOptions .= ‘&amp;bundle_option_qty[‘ . $option->option_id . ‘]=’ . $option->selection_qty;

$bundleOptions .= '&bundle_option[' . $option->option_id . '][0]=' . $option->selection_id;
$bundleOptions .= '&bundle_option_qty[' . $option->option_id . ']['.$option->selection_id.']=' . $option->selection_qty;
于 2015-01-29T09:14:59.443 に答える