Einige unserer Kunden verwenden Blätterkataloge um Ihre Printkataloge auch online zu präsentieren. Das hat den großen Vorteil, dass man die Druckauflage reduzieren kann und damit erhelblich an Druckkosten spart. Zusätzlich erstellen wir mit Server2go CD-Anwendungen um die Kataloge per CD versenden zu können.

Beispiele:
- http://www.tom-garten.de/blaetterkatalog
- http://www.christiani.de/infocenter.php/icPath/_118

Die Blätterkataloge der Comito GmbH verfügen auch über einen eigenen Warenkorb. So kann man aus dem Blätterkatalog heraus Produkte in den Warenkorb des Blätterkataloges legen. Löst man nun einen Bestellprozess aus, kann man die Daten an eine URL zur Weiterverarbeitung übermitteln.
Syntax: www.shopurl.de?prdukte=artikelnummer1,Menge1;artikelnummer2,Menge2;…

Also benötigen wir eine Lösung um die Daten an Magento zu übermitteln. Ich werde dies ausnamhsweise nicht als eigenes Modul erstellen, sondern über eine einizge PHP-Datei. Wenn Sie sich die index.php von Magento ansehen, erkennen Sie wie die Klasse Mage eingebunden wird und eine Instanz von Mage erstellt wird. Genau dies machen wir und “holen uns” und die zusätzlichen Objekte für unser Vorhaben.

Das ganze sieht wie folgt aus:

<?php
	require_once 'app/Mage.php';
  Mage::app();

/* Beispiel GET-Parameter
   Syntax: fillcart.php?products=SKU,QTY;SKU,QTY;SKU,QTY;...
*/
  if (isset($_GET['products'])) {

    Mage::getSingleton('core/session', array('name'=>'frontend')); // Session erzeugen

    $CatProd = Mage::getModel('catalog/product');
    $Cart = Mage::helper('checkout/cart')->getCart(); // Instanz zum Warenkorb

    $ProductsList = explode(';',$_GET['products']); // Produktlisting-Array erzeugen
    $CarCount = 0;

    foreach ($ProductsList as $Product) {
      $Model_Qty = explode(',',$Product); // Artikelnummer/Mange-Array erzeugen
      $ProductsId = $CatProd->getIdBySku($Model_Qty[0]); // Produkt-ID ermitteln

      if ($ProductsId) { // Wenn das Produkt vorhanden ist ...
        $ProdObj = Mage::getModel('catalog/product')
             ->setStoreId(Mage::app()->getStore()->getId())
             ->load($ProductsId); // Produkt laden
        $Cart->addProduct($ProdObj, $Model_Qty[1]); // Produkt in den Warenkorb einfügen
        $CarCount++;
      }
    }

    if ($CarCount > 0) {
      $Cart->save(); // Warenkorb speichern
      header('Location: '. Mage::getUrl('checkout/cart'));
    } else {
      header('Location: '. Mage::getUrl(''));
    }

  } else {
    header('Location: '. Mage::getUrl(''));
  }
?>

Das war es schon – kurz aber effektiv. :-)

Das ganze im Einsatz: http://shop.mxperts.de/fillcart.php?products=intelcore2extreme,1;500gb5400,2;M9179LL,1;microsoftnatural,1;oc_lrg,5

Download: fillcart.zip

Viele Grüße
Johannes Teitge