2015-02-21 1 views
1

Я работаю с 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+ по мере изменения кода и условий. Я пробовал несколько расширений, но на данный момент, похоже, мало рабочих решений, кроме жесткого кодирования и вручную, и пока это не подходит для меня! Все, что я ищу, это функциональность, и я не беспокоюсь о макете.Открытая корзина версии 2, Количество, указанное в категории Просмотр

Файл common.js изменился с момента решения предыдущей версии Opencart, и я знаю, что он включает в себя следующий код (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> 

Любой с решением для этого будет понятно! Я отправлю обратно, если мне удастся самому, но я низко на кофе после долгой царапины!

+0

Я должен был добавить, я использую Mijoshop, но этот вопрос больше связан с Opencart. Я верю в вышеупомянутый проблемный случай. –

ответ

2

Спасибо Xyph3r на форумах Opencart, ваша старая версия post версии 1.5 дала мне ключ к альтернативе, которая отлично подходит для Opencart версии 2! Ссылка на мои подсказки: http://forum.opencart.com/viewtopic.php?f=20&t=99990 Для других это то, что я сделал, и его можно адаптировать в vqmod или ocmod, чтобы обновления не перезаписывали это, но вот основные сведения: Категория.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; ?> 

Надеюсь, это поможет другим. Обратите внимание, что это только помещает поле количества над существующими кнопками в корзину, список пожеланий и сравнение, оно не будет выглядеть красиво, так что все зависит от вас и вашего стиля (темы)!

Смежные вопросы