你现在的位置:首页 > PHP网站建设知识库 > PrestaShop > 正文

让prestashp产品列表页可以输入购买数量

prestashop 1.5版本开始,多出个实用的功能:产品详细页可一次添加多个商品进入购物车。在产品详细页中,点击添加购物车按钮时,可以输入产品数量,可一次性加入多个同样的产品到购物车中,这个功能是非常有必要的,可以说是必须的功能。

但是在产品列表的页中,当点击添加到购物车按钮时,不能输入产品的数量,一次只能添加一个商品进入购物车。那么我们应该如何实现在商品列表页也可以一次添加多个商品到购物车呢。

下面就给大家分享下具体方法:

1 .修改模板文件夹下的 product-list.tpl 添加 输入框
打开product-list.tpl 查找到 第二次 {if ($product.allow_oosp || $product.quantity > 0)} 在后面  添加代码

<div style="padding: 10px 0;"><label>{l s='Quantity:'}</label>
<input id="ajax_id_product_{$product.id_product|intval}" style="height: 20px;" type="text" name="qty_{$product.id_product|intval}" value="1" size="2" maxlength="3" /></div>

2.修改modules/blockcart/ajax-cart.js里的js代码

查找到 这段注释 //for every ‘add’ buttons…  和  //for product page ‘add’ button… 这段注释

将这两段注释之间的代码

$('.ajax_add_to_cart_button').unbind('click').click(function(){
var idProduct = $(this).attr('rel').replace('ajax_id_product_', '');
if ($(this).attr('disabled') != 'disabled')
ajaxCart.add(idProduct, null, false, this);
return false;
});

替换为

$('.ajax_add_to_cart_button').unbind('click').click(function(){
var idProduct = $(this).attr('rel').replace('nofollow', '').replace('ajax_id_product_', '');
//edit paul for add to cart product qty
var qty = 1;
if(((parseInt($('#'+$(this).attr('rel')).val()) - 1) &gt; 0))
qty = parseInt($('#'+$(this).attr('rel')).val())
else
qty = 1
if ($(this).attr('disabled') != 'disabled')
ajaxCart.add(idProduct, null, false, this, qty);
return false;
});

大功告成