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