Direkt zum Inhalt

Drupal Commerce Checkout Warenkorb

Die Reihenfolge im Checkout von 'Zwischesumme', 'MwSt.', 'Versand' und Gesamtsumme muß unter Umständen verändert werden.

Ein konkretes Beispiel ist eine B2B Anwendung, in der alle Shop-Preise ohne MwSt. sein sollen und im Checkout aufgrund des Kriteriums Inland/Ausland entschieden wird, ob MwSt. zu zahlen ist oder nicht.
Die MwSt. soll dann auch auf die Versandkosten angewendet werden. In diesem Fall erfüllt die Commerce Steuerart 'Sales-Tax' voll den Zweck, allerdings ist die Reihenfolge 'Zwischensumme', 'MwSt.' und 'Versand' unbrauchbar, die 'MwSt.' soll in jedem Fall nach dem 'Versand' ausgegeben werden.

Die Reihenfolge sich leicht über die weight in hook_commerce_price_formatted_components_alter ändern.

<?php

/**
 * Änderung der Reihenfolge im checkout von Versand und Steuer
 * http://drupal.org/node/1352916
 */
function commerce_helper_commerce_price_formatted_components_alter(&$components, $item, $entity) {
  if (isset($components['base_price'])) {
    foreach ($components as $component_name => $component) {
      if (strpos($component_name, 'flat_rate_') === 0) {
        $components[$component_name]['weight'] = $components['base_price']['weight'] + 1;
      }
    }
  }
}
?>

Im Beispiel wird die weight des Preises der Versandart 'flat_rate' geringer gesetzt als die weight des Basispreises und deshalb die MwSt. im Anschluss ausgegeben.