Opencart版本2,类别视图上的数量字段

时间:2015-02-21 06:42:28

标签: javascript opencart2.x

我正在使用Opencart 2.0,我正在尝试从类别页面和产品页面获取数量字段。我之前在版本1.5中设法做得很好但是代码自那以后发生了很大变化。 使用Opencart V 1.5,我使用了Siven Sadiyan(http://siven76.com/2013/04/29/opencart-add-a-quantity-box-on-product-list-pages/)提供的解决方案,该解决方案的解决方案非常出色,只需要对common.js和category.tpl进行调整,我就可以将其应用于其他各种页面了。作为搜索结果和模块。 到目前为止,由于代码和术语已经改变,我无法修改它以适应Opencart版本2.0+。我已经尝试了几种扩展,但目前似乎没有什么工作解决方案,除了硬编码和手动编码,到目前为止它对我来说还不顺利!我正在寻找的只是功能,我并不担心布局。

自解决以前的Opencart版本以来,common.js文件发生了变化,我知道它涉及以下代码(ps,滚动到顶部从以下代码中删除,但只有一行从原始版本更改):

 // Cart add remove functions
 var cart = {
     'add': function(product_id, quantity) {
         jQuery.ajax({
             url: 'index.php?option=com_mijoshop&route=checkout/cart/add&format=raw&tmpl=component',
             type: 'post',
             data: 'product_id=' + product_id + '&quantity=' + (typeof(quantity) != 'undefined' ? quantity : 1),
             dataType: 'json',
             beforeSend: function() {
                 jQuery('#cart > button').button('loading');
             },
             success: function(json) {
                 jQuery('.alert, .text-danger').remove();

                jQuery('#cart > button').button('reset');

                if (json['redirect']) {
                    location = json['redirect'];
                }

                if (json['success']) {
                    jQuery('#content_oc').parent().before('<div class="shopnotification"><i class="fa fa-check-circle"></i> ' + json['success'] + '<button      type="button" class="close" data-dismiss="alert">&times;</button></div>');

                    jQuery('#cart-total,#cart > a > span').html(json['total']);

                    jQuery('.shopnotification').fadeIn(1000).delay(3000).fadeOut(1500);

                    jQuery('#cart > ul,#module_cart > ul').load('index.php?option=com_mijoshop&route=common/cart/info&format=raw&tmpl=component ul li');
                }
             }
         });
     },

第二个文件是category.tpl代码(我认为成功更改时可以在其他区域更改):

 <div class="button-group">
     <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>
     <button type="button" data-toggle="tooltip" title="<?php echo $button_wishlist; ?>" onclick="wishlist.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-heart"></i></button>
     <button type="button" data-toggle="tooltip" title="<?php echo $button_compare; ?>" onclick="compare.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-exchange"></i></button>
 </div>

任何有此解决方案的人都将不胜感激!如果我自己运气好的话,我会回复,但是经过长时间的划伤,我的咖啡很少!

1 个答案:

答案 0 :(得分:2)

感谢Xyph3r在Opencart论坛上,你的旧版本1.5给了我一个对Opencart版本2很有用的替代品的线索!链接到我的线索:http://forum.opencart.com/viewtopic.php?f=20&t=99990 对于其他人来说,这就是我所做的,它可以被改编成vqmod或ocmod,所以更新不会覆盖这个,但这里是基础知识: Category.tpl: 找到这一行:

 <div class="button-group">
     <button type="button" onclick="cart.add('<?php echo $product['product_id']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>

将其更改为:

 <input type="text" value="1" size="2" class="item-<?php echo $product['product_id']; ?>" />
 <div class="button-group">
     <button type="button" value="<?php echo $button_cart; ?>" onclick="addQtyToCart('<?php echo $product['product_id']; ?>');"><i class="fa fa-shopping-cart"></i> <span class="hidden-xs hidden-sm hidden-md"><?php echo $button_cart; ?></span></button>

在文件的底部,在回显页脚之前添加以下行,这样文件的末尾如下所示:

 <script type="text/javascript"><!--
 function addQtyToCart(product_id) {
     var qty = $('.item-' + product_id).val();
     if ((parseFloat(qty) != parseInt(qty)) || isNaN(qty)) {
         qty = 1;
     }
     cart.add(product_id, qty);
 }
 //--></script> 
 <?php echo $footer; ?>

希望这有助于他人。请注意,这只将数量字段放在现有按钮上方添加到购物车,愿望清单和比较,它看起来不会很漂亮,所以这一切都取决于你和你的风格(主题)!