CMS Inhalt in Magento integrieren

 3 Kommentare zu diesem Tutorial

Integration eines Dritt-Anbieter-CMS in Magento ist ein oft geäußerter Wunsch von Shopbetreibern. Jeder weiß, Google mag Text und was liegt da näher als ein CMS in Magento zu integrieren. Zudem kann man seine Kompetenz als Fachmann unterstreichen.

Die Vorgehensweise

Die hier vorgestellte Methode zur Integration eines CMS in Magento beschreibt wie man den Inhalt aus dem CMS WordPress (man kann aber auch andere CMS verwenden, wie z.B. Drupal, Joomla!, o.a.) in seinen Magento Onlineshop integriert. Hierzu wird der Varien_Http_Client verwendet. Der Nachteil ist, das alle ungültigen Adressen auf den Blog geleitet werden.

Anleitung zur Integration des CMS WordPress in Magento

1. – WordPress installieren

Erstellen Sie im Magento Root Verzeichnis einen Ordner mit dem Namen wp und kopieren Sie dorthin die WordPress Dateien. Soll die WordPress Datenbank getrennt von der Shop Datenbank sein (was empfehlenswert ist), muss eine neue MySQL-Datenbank erstellt werden. Installieren Sie nun WordPress, indem Sie die URL http://www.ihre-domain.de/wp/ in ihrem Browser aufrufen. Folgen Sie den Anweisungen des Setup-Assistenten.

2. – RewriteEngine einrichten

Jetzt machen wir uns die URL RewriteEngine zu nutze, um den Blog unter der Shopadresse verfügbar zu machen. Dazu eine .htaccess Datei erstellen und mit folgendem Inhalt in den wp-Ordner hochladen:

RewriteEngine on

RewriteCond% {REQUEST_FILENAME}!-F
RewriteCond% {REQUEST_FILENAME}!-D
RewriteCond% {REQUEST_FILENAME}!-L

RewriteRule ^ (. *) $ Index.php? / $ 1 [QSA, L]
3. – Noroute Block erstellen

Um das Block Modul zu erstellen gehen Sie wie folgt vor:
– Erstellen Sie ein neues Verzeichnis namens „Project“ unter app / code / local / Mage
– Erstellen Sie ein neues Verzeichnis namens „Block“ unter „Project“
– Erstellen Sie eine neue Datei namens Noroute.php unter „Block“ und kopieren Sie den folgenden Code in das Skript:

class Mage_Project_Block_Noroute extends Mage_Core_Block_Abstract
{
    protected function _toHtml()
    {

$ Uri = Mage :: getBaseUrl (). "Ee". $ This-> getRequest () -> getRequestString ();
$ Post = $ this-> getRequest () -> getPost ();
$ Method = (count ($ post) == 0)? 'GET': 'POST';

/ **
* Hier können Sie zusätzliche Funktionen
* wie Cookies, Redirects und so weiter programmieren.
* /

$client = new Varien_Http_Client($uri);
        $client->setParameterPost($post);
        $response = $client->request($method);
 
        $body = $response->getRawBody();
        return $body;
    }
}

Um das Projekt-Modul zu aktivieren, erstellen Sie eine Datei namens „Magento_Project.xml“ unter app / etc / modules und kopieren Sie den folgenden Code:

    <!--?xml version="1.0"?-->
    
        
            
                true
                local
            
        
    

Jetzt müssen wir diesen Block zum Layout hinzuzufügen. Dazu bearbeiten Sie die Datei unter app / design / frontend / DAS_EIGENE_DESIGN / default / layout / cms.xml und ändern ‚cms_index_defaultnoroute‘ Abschnitt wie folgt:

    
            
     
            
                page/1column.phtml
            
            
                
            
        
4. – 404-Seite deaktivieren

In der Magento-Administration (unter CMS → Seiten verwalten) die 404-Seite („no-route“ Identifier) deaktivieren.

5. – Layout vervollständigen

Das WordPress-Theme sollte keine Kopf- und Fußeilen haben, da jetzt die aus dem Magento-Theme verwendet werden. Die Seite http://www.beispiel.de/artikel01 wird nun mit Inhalten aus dem eigentlichen Ordner http://www.beispiel.de/wp/artikel01 versorgt, dazu wird der Magento-Header und -Footer geladen.

Autor

Sebastian

Ich interessiere mich für eCommerce-Themen, vor allem im Zusammenhang mit dem Shopsystem Magento Commerce sowie alles rund um Web-Entwicklung und den damit verbundenen Möglichkeiten.

3 Kommentare zu “CMS Inhalt in Magento integrieren

  • Pingback: Content im Shop: Wohin mit dem CMS? | Mag-tutorials.de

  • 26. Januar 2016 um 23:44 Uhr
    Permalink

    Ich bekomme ein 500 Internal server error.
    Magento 1.9.2.2 und standard Magento htacces und WordPress htaccess:
    RewriteEngine on

    RewriteCond% {REQUEST_FILENAME}!-F
    RewriteCond% {REQUEST_FILENAME}!-D
    RewriteCond% {REQUEST_FILENAME}!-L

    RewriteRule ^ (. *) $ Index.php? / $ 1 [QSA, L]

    Hat jemand ne Idee?

    Grüße

    Antwort
    • 11. Februar 2016 um 15:55 Uhr
      Permalink

      Hallo Patrick,

      beim Fehler 500 handelt sich um einen sehr ungenauen Fehlercode. Woran es genau liegt kann ich dir leider nicht sagen.

      Beste Grüße
      Sebastian

      Antwort

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*