Magento - 加入购物车,数量范围在Upsell产品

时间:2013-03-26 14:48:18

标签: magento

我正在尝试使用我在其上使用的Upsell产品而不是view.phtml上的相关产品来使用“添加到购物车”按钮前面的数量字段。我也使用AheadWorks Ajax AddToCart Pro 2.5扩展。

现在,我正在使用此代码段添加没有数量字段的产品:

<form action="<?php echo $this->getAddToCartUrl($_link) ?>" method="post" id="view_addtocart_form_<?php echo $_link->getId(); ?>"><button onclick="setLocation('<?php echo $this->getAddToCartUrl($_link) ?>')" class="greenbutton" title="Add to Cart" type="button"><span><span>Add to Cart</span></span></button></form>

这很好用,但由于缺少数量字段,我无法更改数量。然后我尝试在我的list.phtml中使用它,它在类别视图中工作正常:

<script type="text/javascript">
                    function setQty(id, url) {
                        var qty = document.getElementById('qty_' + id).value;
                        document.getElementById('cart_button_' + id).innerHTML = '<button type="button" class="greenbutton-small" onclick="setLocation(\'' + url + 'qty/' + qty + '/\')"><span><span>Læg i kurv</span></span></button>';   
                    }
                </script>
                <label for="qty"><?php echo $this->__('Qty:') ?></label>
                <input type="text" name="qty_<?php echo $_product->getId(); ?>" id="qty_<?php echo $_product->getId(); ?>" maxlength="12" value="1" onkeyup="setQty(<?php echo $_product->getId(); ?>, '<?php echo $this->getAddToCartUrl($_product) ?>');" title="<?php echo $this->__('Qty') ?>" class="input-text qty" />
                <span id="cart_button_<?php echo $_product->getId(); ?>">
                <button type="button" class="greenbutton-small" onclick="setLocation('<?php echo $this->getAddToCartUrl($_product) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></span>    

现在,有趣的是,如果我尝试在upsell.phtml中使用它,这不起作用,但我无法弄清楚为什么?这在类别视图中与AW的Ajax Cart Pro完美配合。

1 个答案:

答案 0 :(得分:4)

upsell.phtml中,产品对象按以下代码调用$_link

<?php if($_link=$this->getIterableItem()): ?>

如果您尝试在upsell.phtml中添加代码,那么您必须将$_product更改为$_link,如下所示:

<label for="qty"><?php echo $this->__('Qty:') ?></label>
            <input type="text" name="qty_<?php echo $_link->getId(); ?>" id="qty_<?php echo $_link->getId(); ?>" maxlength="12" value="1" onkeyup="setQty(<?php echo $_link->getId(); ?>, '<?php echo $this->getAddToCartUrl($_link) ?>');" title="<?php echo $this->__('Qty') ?>" class="input-text qty" />
            <span id="cart_button_<?php echo $_link->getId(); ?>">
            <button type="button" class="greenbutton-small" onclick="setLocation('<?php echo $this->getAddToCartUrl($_link) ?>')"><span><span><?php echo $this->__('Add to Cart') ?></span></span></button></span>

它应该在以下行之后:

<?php if($_link=$this->getIterableItem()): ?>