it-swarm.com.de

Handel: Hinzufügen von +/- Schaltflächen zum Feld Menge

Ich arbeite an einer Site, die das Commerce-Modul für einen Webshop verwendet. Das Design gibt an, dass die Warenkorbübersichtsseite des Benutzers es ihm ermöglichen soll, die Menge eines bestimmten Artikels mithilfe von Plus-/Minus-Schaltflächen zu erhöhen und zu verringern. Soweit ich jedoch sehen kann, ist die einzige Option für ein Mengenfeld ein Bare-Text-Feld (in Commerce/Konfiguration/Werbebuchungen/Produkt/Felder . )). Ich habe online nach Lösungen gesucht, aber abgesehen vom Commerce Extra-Modul (das in Alpha vorliegt und keine vertikal gestapelten Schaltflächen gemäß dem Design zulässt) bin ich leer.

Gibt es eine akzeptierte Möglichkeit, diese Schaltflächen zum Mengenfeld hinzuzufügen, oder fehlt mir etwas in meiner Konfiguration?

5
SteakTartaar

Commerce Kickstart hat das.

Wir verwenden die Bibliothek jquery_ui_spinner , die in unserem Bibliotheksordner extrahiert wurde.

Wir deklarieren die Bibliothek in einer hook_library-Implementierung:

/**
 * Implements hook_library().
 */
function commerce_kickstart_product_ui_library() {
  $libraries['jquery_ui_spinner'] = array(
    'title' => 'jQuery Spinner',
    'website' => 'http://github.com/btburnett3/jquery.ui.spinner/',
    'version' => '1.8',
    'js' => array(
      libraries_get_path('jquery_ui_spinner') . '/ui.spinner.min.js' => array(),
    ),
    'css' => array(
      libraries_get_path('jquery_ui_spinner') . '/ui.spinner.css' => array(),
    ),
    'dependencies' => array(
      array('system', 'ui.widget'),
    ),
  );
  return $libraries;
}

Dann hängen wir in unserer Hook-Form alter die Bibliothek an:

function commerce_kickstart_product_ui_form_alter(&$form, &$form_state, $form_id) {
  if (strstr($form_id, 'commerce_cart_add_to_cart_form')) {
    $form['#attached']['library'][] = array('commerce_kickstart_product_ui', 'jquery_ui_spinner');
  }
}

und schließlich machen wir in unserer JS-Datei:

(function ($) {

  // Add a spinner on quantity widget.
  Drupal.behaviors.quantityWidgetSpinner = {
    attach: function ( context, settings ) {
      $('.form-item-quantity input').spinner({
        min: 1,
        max: 9999,
        increment: 'fast'
      });
    }
  }
})(jQuery);
13
Bojan Zivanovic

Diese Funktionalität wird auch vom Modul Commerce Extra bereitgestellt, es funktioniert genau richtig.

1
bmunslow