CMS pflegbare Magento Order-Success-Seite

Erstellt am 11. Juli 2012

Magento Order-Success-Seite pflegbar mit CMS

CMS-Magento-Order

Wäre es nicht schön, man könnte die Bestellbestätigungsseite in Magento  von Hand per CMS pflegen? In den folgenden Snippets erklären wir, wie es funktioniert:

Schritt 1: Anlegen eines Blocks per SQL-Skript.

  1. /* @var $cms_page  Mage_Cms_Model_Block */
  2. $cms_page = Mage::getModel('cms/block');
  3. $cms_page->setData('title','POS Checkout Success');
  4. $cms_page->setData('identifier', 'pos_checkout_success');
  5. $cms_page->setData('content', '{{var order.getShippingAddress().format("html")}}');
  6. $cms_page->setData('stores',array(0));
  7. $cms_page->save();

Wie kommt aber nun das Order-Objekt in den CMS Block? Kurz und knapp: Genau wie auch in die Email-Templates.

Schritt 2: Anlegen einer Block-Methode, die z.B. {{ var order.name}} im CMS-Block füllt

  1. public function getCMSPosCheckoutSuccessHTML(){
  2.  
  3.     $block = Mage::getModel('cms/block')
  4.                   ->setStoreId(Mage::app()->getStore()->getId())
  5.                   ->load('pos_checkout_success');
  6.  
  7.     $filter = Mage::getModel('cms/template_filter');
  8.     $data = array('order' =>Mage::registry('order') );
  9.     $filter->setVariables($data);
  10.  
  11.     return $filter->filter($block->getContent());
  12.  
  13. }
  14.  

Jetzt muss nur noch die Block-Methode in einem beliebigen Template aufgerufen werden:

  1. echo $this->getCMSPosCheckoutSuccessHTML();

Natürlich macht es der Ordnung halber Sinn, eine neue Block-Klasse zu erzeugen, welche die Methode getCMSPosCheckoutSuccessHTML() implementiert.

Im Layout-Handle “checkout_onepage_success” muss dazu einfach der Block und ein Template eingehängt werden. In diesem Template findet dann o.g. echo Aufruf statt.

Unter folgendem Link lässt sich eine schöne Erklärung der Möglichkeiten finden, die Variablen in einem CMS-Block einzubetten.

Magento Wiki



Kommentare

Keine Kommentare

Kommentar schreiben

* - Pflichtangabe

Zertifizierungen

  • TYPO3 Certified Integrator
  • Magento Certified Developer
  • Magento Certified Frontend Developer
Kontakt

Cookies helfen uns dabei unsere Webinhalte zu verbessern und Ihnen die bestmögliche Erfahrung zu bieten. Mit der Nutzung der Webseite akzeptieren Sie die Verwendung von Cookies.