В Drupal Commerce «из коробки» нет js-виджета для изменения количества товара в форме добавления в корзину. Поэтому разработчикам приходится самостоятельно подключать дополнительные плагины. Есть, правда, еще модуль Commerce Extra, однако, судя по всему, он уже заброшен разработчиками.
В данной статье я опишу способ добавления виджета изменения количества товаров с помощью jquery-плагина Spinner. Этот плагин доступен с версии 1.9 Jquery UI, поэтому для его подключения вначале установим модуль Jquery Update (последняя версия данного модуля заменяет библиотеку Jquery UI ядра Drupal на 1.10).
После установки Jquery Update в template.php темы сайта с помощью хука hook_form_alter подключим плагин Spinner для страниц-нод с отображением товаров, а также для формы корзины:
if (strstr($form_id, 'commerce_cart_add_to_cart_form') || ($form_id == 'views_form_commerce_cart_form_default')) {
drupal_add_library('system', 'ui.spinner');
$form['#attached']['js'] = array(
drupal_get_path('theme', 'THEME') . '/commerce_spinner.js',
);
}
}
Напомню, что THEME необходимо заменить названием темы, а также сбросить кеш сайта.
Теперь в скрипте commerce_spinner.js темы вызовем метод spinner для полей ввода количества на страницах товаров и в форме корзины:
Drupal.behaviors.addSpinner = {
attach : function(context, settings) {
$(".commerce-add-to-cart .form-item-quantity input, .views-field-edit-quantity input").spinner({
min:1,
max:99,
});
}
}
})(jQuery);
Теперь поля будут иметь кнопки-стрелки для уменьшения и увеличения количества товаров, как показано на рисунке: