Magento - 将产品添加到固定数量的购物车中

时间:2013-11-04 11:45:11

标签: magento

我正在以动态编排方式将产品添加到购物车中。 是否可以在此步骤中设置固定数量,用户之后无法更改?

2 个答案:

答案 0 :(得分:1)

您无法设置用户无法以某种方式操纵的固定数量,但您可以从用户视图中屏蔽它。

有两种方法可以实现这一点,第一种选择是围绕它的非编码方式,但不会像第二种那样方便用户:

第一个选项:

转到产品后端 - >库存并将“购物车中允许的最大数量”设置为固定数量。您可以使用上述答案设置固定数量。

第二个选项:

如果没有,则可以修改default.phtml(购物车项目渲染)以防止呈现数量调整字段。您可以在此处使用任何内容来定义产品,您可以附加一些自定义选项来识别产品。

您正在寻找以下内容:

<input name="cart[<?php echo $_item->getId() ?>][qty]" value="<?php echo $this->getQty() ?>" size="4" title="<?php echo $this->__('Qty') ?>" class="input-text qty" maxlength="12" />

将其包装在if else语句中以区分您要以编程方式添加的产品(例如,您可以使用Sku,产品ID或自定义选项)。不是渲染输入字段,而是渲染静态1而不是修改数量的选项。

您还可以在引用项中添加一个选项,然后通过getOptionByCode()进行区分。

执行这两个选项将是您问题的完整解决方案。

答案 1 :(得分:0)

 public function addAction()
{
    if (!$this->_validateFormKey()) {
        $this->_goBack();
        return;
    }
    $cart   = $this->_getCart();
    $params = $this->getRequest()->getParams();
    try {
        if (isset($params['qty'])) {
            $filter = new Zend_Filter_LocalizedToNormalized(
                array('locale' => Mage::app()->getLocale()->getLocaleCode())
            );
            $params['qty'] = $filter->filter($params['qty']);
        }

如您所见,您在CartController中添加了操作。 上面的代码显示该控制器需要一个名为“qty”的参数,您可以使用它。

我正在使用magento1.8