Magento: Zwischensummen und Versandkosten inkl. MWSt. anzeigen

Lustiger Weise gibt es bei Magento bis zur aktuellen Version 1.3.2.4 immer noch keine Einstellung, um die Zwischensumme und die die Versandkosten inklusive MWSt. anzuzeigen. Dies ist insbesondere bei einem deutschen B2C-Shop jedoch dringend erforderlich. Ansonsten geht man das Risiko ein von der Konkurrenz kostenpflichtig Abgemahnt zu werden.

Gott sei dank war Tschan so nett im Magento-Forum eine Anleitung zu posten. Diese besteht aus zwei Schritten:

1. Oben in die Datei /app/design/frontend/default/YourTheme/template/checkout/total/default.phtml das folgende einfügen.

getTotals();

if ($this->getTotal()->getCode() == 'subtotal') {
    $subtotal = $this->getTotal()->getValue();
    $subtotal += $totals['tax']->getValue()-$totalsObj->getQuote()->getShippingAddress()->getShippingTaxAmount();
    $this->getTotal()->setValue($subtotal);
    $this->getTotal()->setTitle(Mage::helper('sales')->__('Subtotal incl. Tax'));
}

if ($this->getTotal()->getCode() == 'shipping') {
    $shipping = $this->getTotal()->getValue();
    $shipping += $totalsObj->getQuote()->getShippingAddress()->getShippingTaxAmount();
    $this->getTotal()->setValue($shipping);
}

?>

2. In die beiden Dateien /app/design/frontend/default/YourTheme/template/sales/order/items.phtml und /app/design/frontend/default/YourTheme/template/email/order/items.phtml nach der Zeile getOrder() ?> das folgende einfügen.

getSubtotal() + $_order->getTaxAmount() - $_order->getShippingTaxAmount();
$_order->setSubtotal($subtotalInclTax);

$shippingInclTax = $_order->getShippingAmount() + $_order->getShippingTaxAmount();
$_order->setShippingAmount($shippingInclTax);

?>

Elm@r: Google-Produktdatei um den Zustand erweitern

Seit einigen Wochen verlangt Google-Base (Merchant Center), dass bei Produkten der Zustand (bzw. condition) angegeben wird. Dies führt dazu das die Übermittlung der Produkte von Elm@r für OS:Commerce an Google nicht mehr funktioniert. Mit zwei Änderungen in die Datei elmar_products.php kann man erreichen, dass bei dem Zustand immer neu übermittelt wird.

$froogle_spalten = array('product_url', 'name', 'description', 'price', 'condition', 'image_url', 'category', 'offer_id', 'instock', 'shipping', 'currency');
  case 'froogle':
    if (defined('FROOGLE_LANGUAGE_PARAM')) $productinfopage .= FROOGLE_LANGUAGE_PARAM;
       if ($free_shipping && $price >= MODULE_ORDER_TOTAL_SHIPPING_FREE_SHIPPING_OVER) {
         $versandkostenfroogle = 'DE:Versandkostenfrei:' . number_format(0, 2, '.', '');
        } else {
     if ($shipping_flat_status) {
           $versandkostenfroogle = 'DE:Versand pauschal:' . number_format($versandkosten, 2, '.', '');
        } else {
      $versandkostenfroogle = 'DE:Versand ab:' . number_format($versandkosten, 2, '.', '');
           }
      }
          $zeile = $productinfopage.$delimiter.
                field_to_csv($pn, 80).$delimiter.  // "Up to 80 characters will be displayed."
              field_to_csv($description, 65535).$delimiter.  // "Descriptions over 1000 characters may be truncated."
                    number_format($price, 2, '.', '').$delimiter.  // 1234.56i
                    'new'.$delimiter.
                  $prodimg.$delimiter.
                field_to_csv(str_replace('|', ' > ', $kategorie)).$delimiter.
              $pi.$delimiter.
                    ($product_info[LIEFERBARKEIT_FELDNAME] > 0 ? 'Y' : 'N').$delimiter.
               $versandkostenfroogle.$delimiter.
                     $currency;
         if (MANUFACTURERS_NAME)
         $zeile .= $delimiter.field_to_csv($manufacturer);
     $zeile .= $lineend;
    break;

Magento für einen deutschen Webshop einrichten

Um Magento für einen deutschen Webshop (B2C Markt) zu verwenden sollte man in jedem Fall zwei Anpassungen machen. Zum einen sollte man eine automatische Update-Funktion einbauen, um Sicherheitsupdates schnell einspielen zu können und zum anderen sollte man den eigentlich englischen Webshop an die deutsche Sprache und Rechtslage anpassen. Diese Anpassungen können am schnellsten über den Magento Connect-Manager installiert und konfiguriert werden. Diesen findet man im Magento Admin-Panel unter System->Magento Connect->Magento Connect Manager. Bei dem Start des Managers wird man erneut aufgefordert sich einzuloggen und es haben nur Benutzer mit Admin-Rechten Zugang.

Update und Verwaltung der einzelnen Module
Magento ist “out of the box” verwendbar, sieht aber im Connect-Manager noch etwas puritanisch aus. Dieser bringt z.B. keine direkte Updatefunktion mit und listet keinerlei Erweiterungen auf. Um diese Auflistung zu erreichen und Magento-Extensions zu verwalten empfiehlt es sich als erstes die Erweiterungen „Mage_Downloader“ und „Mage_All_Latest“ zu installieren. Durch die Installation dieser beiden Module werden die benötigten Pakete nochmals heruntergeladen und installiert. Dabei werden aber die einzelnen Versionen der Module festgehalten. Dadurch kann später geprüft werden, ob es neuere Versionen der verwendeten Module gibt. Gegebenen Falls können diese dann installiert werden. Nähere Informationen zu der Installation der beiden Module findet man in dem exzellenten Blog mxperts.de (von Johannes Teitge und Daniel Sasse).

Anpassung an die deutsche Sprache und das deutsche Recht
Insbesondere die Anpassungen an alle Belange des deutschen Rechts sind sehr umfangreich und man läuft Gefahr sich eine kostenpflichtige Abmahnung einzuhandeln, wenn man diese unterlässt. Deshalb gibt es inzwischen einige Module, die man dafür verwenden kann. Ich würde gerade Neulingen bei Magento deshalb empfehlen das Modul „market_ready_germany“ zu installieren. Es versucht alle benötigten Module (im Augenblick sind es 14) in einem Abwasch zu installieren. Man sollte das Modul aber nur bei neu installierten Shops verwenden, da es zu Problemen kommt, wenn es beispielsweise schon eine Seite „agb“ oder „Impressum“ gibt.

Und dann die restlichen Anpassungen …
Nach den eben beschriebenen Installationen und Einstellungen hat man eine Gute Grundlage für einen deutschen Webshop und kann mit seinen individuellen Einstellungen und Erweiterung fortfahren. Hierfür kann man noch mal einen Blick auf eine Liste von weiteren interessanten Modulen werfen, die man wiederum bei mxperts.de findet. Es ist auch empfehlenswert die internen Caches zu deaktivieren, solange man den Shop an die eigenen Bedürfnissen anpasst. Dann werden die Änderungen immer gleich im Shop Frontend sichtbar. Man findet die entsprechenden Einstellungen im Magento Admin-Panel unter System->Cache Verwaltung->Cache Kontrolle->Alle Caches->Deaktivieren.

Update:
Magento zeigt im Augenblick leider immer noch die Zwischensumme und den Versand im Warenkorb und den Bestellungen ohne MWSt. an. Man muss Magento deshalb wie in diesem Post beschrieben etwas umprogrammieren.

Viel Spaß mit Magento!

VMware: Verbindungsfehler bei dem Start des VI Clients

Als ich mich heute auf einen VMware VirtualCenter Server 2.5 einloggte war einer der ESX-Server 3.5 und die auf im laufenden VMs grau hinterlegt. Das lag daran, dass der VirtualCenter Server keine Verbindung mehr zu dem ESX Server herstellen konnte. Auch der Versuch sich mit dem VMware Infrastructure-Client direkt auf den ESX Server einzuloggen schlug mit einer Zeitüberschreitung fehl.

Erst nachdem ich mich als root angemeldet hatte und wie folgt die Management Dienste neu gestartet hatte konnte man den ESX Server wieder managen:

service mgmt-vmware stop
service vmware-vpxa stop
service vmware-vpxa start
service mgmt-vmware start

Der Server meldete jedoch nach wie vor, dass der HA-Agent nicht gestartet werden konnte. Sicherheitshalber habe ich dann alle VMs auf einen anderen ESX Server geschoben und den defekten ESX Server neu gestartet. Danach lief er wieder ohne Probleme.

Klonen ohne Norton Ghost

Fast jeder kennt das Programm Norton Ghost® als ultimatives Programm zum klonen von PC’s. Inzwischen gibt es aber auch Clonezilla als alternatives OpenSource Programm auf Linuxbasis. Cloenzilla basiert auf den OpenSource Programmen DRBL, Partition Image, ntfsclone, partclone und udpcast. Es kann inzwischen mit den Dateisystemen ext2, ext3, ext4, reiserfs, xfs, jfs of GNU/Linux, FAT, NTFS, und HFS+ umgehen und unterstützt in der Clonezilla SE (Server Edition) sogar das simultane klonen von mehreren PC’s.