标签归档:product list

prestashp 实现产品列表页输入购买数量

prestashop 1.5版本产品详细页面,添加购物车时,可以输入产品数量,然后点击 add to cart按钮,加入多个同样的产品到购物车。

但是产品列表的页面,只有点击添加到购物车按钮,不能控制产品的数量,用户体验不好。其实这个功能还是比较容易实现的。

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

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

1
2
<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… 这段注释

将这两段注释之间的代码

1
2
3
4
5
6
$('.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;
});

替换为

1
2
3
4
5
6
7
8
9
10
11
12
$('.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;
});

效果如下图

可输入产品数量