EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013 edited April 2015
FAQ - Häufig gestellte Fragen - Shopware 4
Wikipedia wrote:
Frequently Asked Questions, kurz FAQ, englisch für häufig gestellte Fragen oder auch meist gestellte Fragen, sind eine Zusammenstellung von oft gestellten Fragen und den dazugehörigen Antworten zu einem Thema.
Allgemein Fehlermeldungen Debuggen Tools Sonstiges Bei Fragen, Anregungen, Kritik, Verbesserungsvorschlägen, Themenvorschlägen oder sonstigem könnt ihr euch gerne per PN an mich richten.

Comments

  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    core.ERROR: exception 'Enlight_Controller_Exception' with message 'Action "Frontend_***_***Action" not found failure' in /.../Controller/Action.php:389

    Immer mal wieder kommt es vor, dass insbesondere Suchmaschinen nicht vorhandene Seiten eures Shop aufrufen. In manchen Fällen werden dabei ungültige request an standard Shopware controller gesendet - was wiederum dazu führt, dass eure error logs mit Fehlermeldungen geflutet werden oder ihr (je nach Konfiguration) entsprechende Emails bekommt.

    Ein möglicher stack trace:
    #0 .../engine/Library/Enlight/Controller/Action.php(159): Enlight_Controller_Action->__call('olcwhatispaypal...', Array)
    #1 .../engine/Library/Enlight/Controller/Action.php(159): Shopware_Proxies_ShopwareControllersFrontendListingProxy->olcwhatispaypalAction()
    #2 .../engine/Library/Enlight/Controller/Dispatcher/Default.php(528): Enlight_Controller_Action->dispatch('olcwhatispaypal...')
    #3 .../engine/Library/Enlight/Controller/Front.php(228): Enlight_Controller_Dispatcher_Default->dispatch(Object(Enlight_Controller_Request_RequestHttp), Object(Enlight_Controller_Response_ResponseHttp))
    #4 .../engine/Shopware/Kernel.php(141): Enlight_Controller_Front->dispatch()
    #5 .../vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(472): Shopware\Kernel->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #6 .../engine/Shopware/Components/HttpCache/AppCache.php(256): Symfony\Component\HttpKernel\HttpCache\HttpCache->forward(Object(Symfony\Component\HttpFoundation\Request), true, NULL)
    #7 .../vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(429): Shopware\Components\HttpCache\AppCache->forward(Object(Symfony\Component\HttpFoundation\Request), true)
    #8 .../vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(329): Symfony\Component\HttpKernel\HttpCache\HttpCache->fetch(Object(Symfony\Component\HttpFoundation\Request), true)
    #9 .../engine/Shopware/Components/HttpCache/AppCache.php(178): Symfony\Component\HttpKernel\HttpCache\HttpCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
    #10 .../vendor/symfony/http-kernel/Symfony/Component/HttpKernel/HttpCache/HttpCache.php(193): Shopware\Components\HttpCache\AppCache->lookup(Object(Symfony\Component\HttpFoundation\Request), true)
    #11 .../engine/Shopware/Components/HttpCache/AppCache.php(113): Symfony\Component\HttpKernel\HttpCache\HttpCache->handle(Object(Symfony\Component\HttpFoundation\Request), 1, true)
    #12 .../shopware.php(109): Shopware\Components\HttpCache\AppCache->handle(Object(Symfony\Component\HttpFoundation\Request))
    #13 {main}
    
    Einen ähnlichen Fehler könnt ihr live im Shopware Demoshop reproduzieren:
    http://www.shopwaredemo.de/listing/olcwhatispaypal

    Prinzipiell stellen diese Fehlermeldungen zwar kein Problem oder gar ein Sicherheitsrisiko dar, dennoch ist es in Ausnahmefällen sinnvoll diese Fehlermeldungen zu unterdrücken. Sobald Suchmaschinen eine ungültige URL gefunden haben, wird diese immer wieder besucht. Da es sich in der Regel um die gleiche URL handelt, können wir uns über ein Plugin vor den angesprochenen controller setzen und nur gültige actions zulassen. Alle übrigen (=ungültigen) Anfragen leiten wir einfach kommentarlos weiter.

    Am Beispiel des detail controllers:
        /**
         * Install the plugin and subscribe the pre dispatch event of the detail controller.
         * 
         * @return boolean
         */
    
        public function install()
        {
            // subscribe the pre dispatch event of the detail controller
            $this->subscribeEvent(
                'Enlight_Controller_Action_PreDispatch_Frontend_Detail',
                'onDetailPreDispatch'
            );        
            
            // installation successful
            return true;
        }
        
    
    
        /**
         * Our event method to redirect invalid actions.
         *
         * @param Enlight_Event_EventArgs   $arguments
         *
         * @return void
         */
    
        public function onDetailPreDispatch( Enlight_Event_EventArgs $arguments )
        {
            // get the detail controller
            /* @var $controller Shopware_Controllers_Frontend_Detail */
            $controller = $arguments->getSubject();
    
            // is this a valid / known action?
            if ( !in_array( strtolower( $controller->Request()->getActionName() ), array( "error", "index", "rating" ) ) )
                // redirect to any other action or directly to 404
                $controller->forward( "error" );
        }
    
    Thanked by 1juergen-sfx
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Ajax requests debuggen

    Üblicherweise wird man auf Fehler recht klar hingewiesen - je nach Konfiguration direkt detailliert im frontend, in den log Dateien oder per Email. Bei Ajax requests (Prozesse im Hintergrund) ist es meist recht schwierig zu erkennen, dass überhaupt ein Problem besteht, denn Fehlermeldungen werden nicht direkt angezeigt.

    Im backend finden sämtliche Prozesse im Hintergrund statt - vom Laden der Module (Artikel Übersicht etc) bis zur Ausführung aller Aktionen (Artikel speichern etc). Anzeichen für fehlerhafte requests sind sich endlose drehende Rädchen oder eine "0" Meldung, die mit einem Klick auf "Ok" bestätigt werden muss. Im frontend wird zb beim Aufnehmen eines Artikels in den Warenkorb ein Ajax request ausgeführt. Auch hier ist ein endlos drehendes Rädchen ein Hinweis auf ein fehlerhaften request.

    Um den Problemen auf die Schliche zu kommen, können wir uns die im Hintergrund gesendeten requests und die entspreche Antwort anschauen. Dafür können wir im Firefox das Plugin "Firebug" oder die nativen Entwicklertools in Google Chrome nutzen.

    Firefox
    jTnba8m.png

    Google Chrome
    ASIb6vr.png

    Weiterführende Informationen in der Dokumentation
    Debuggen mit FirePHP und Shopware
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Fehlermeldungen anzeigen
    Ups! An error has occurred!
    Wir wurden bereits über das Problem informiert und arbeiten an einer Lösung, bitte versuchen Sie es in Kürze erneut.
    Wer kennt es nicht... Frustrierend, nervig, informationslos - die standard Fehlermeldung bei Shopware bietet keine Möglichkeit der Analyse.

    Gott sei Dank - denn es soll schließlich nicht jeder mitbekommen, wo die Probleme stecken und wie die Verzeichnisstruktur eures Servers ausschaut. Zumal ist eine mehrzeilige, kryptische Fehlermeldung für den normalen Besucher wenig aussagekräftig - da beruhigt ein "Wir arbeiten an dem Problem" doch eher die Gemüter. Shopware bietet dennoch für Shopbetreiber oder Entwickler mehrere Möglichkeiten an Fehlermeldungen zu kommen.

    1. Fehlermeldungen per Email
    Ihr könnt euch sämtliche Fehlermeldungen per Email zukommen lassen. Geht dazu einfach in die Grundeinstellungen -> System -> Log und aktiviert die entsprechende Option. Aber Vorsicht: Shopware könnte euch mit massenhaft Emails fluten. Das sind jedoch in der Regel Fehlermeldungen, die zu vernachlässigen sind und den Betrieb des Shops nicht beeinflussen. Siehe zb sonstiges-f58/faq-haufig-gestellte-fragen-t24425.html#p106942
    lPZRQYW.png

    2. Log Dateien
    Seit Shopware 4.2.0 werden Fehlermeldungen im Ordner /logs/ gespeichert. Dort wird für jeden Tag eine .log Datei angelegt, die sämtliche Fehlermeldungen des entsprechendes Tages enthält. Bitte achtet darauf, dass der Ordner Schreibrechte hat. Manche Hoster nutzen das logs Verzeichnis zu eigenen Zwecken, so dass es in Ausnahmefällen bei den Rechten zu Schwierigkeiten kommen kann.
    U7zikmk.png

    3. Fehlerausgabe aktivieren
    Seit Shopware 4.3.1 ist die Ausgabe von Fehlermeldungen im frontend standardmäßig deaktiviert - statt dessen erscheint nur noch die bekannte "Ups! Es ist ein Fehler aufgetreten!" Meldung. Gerade in Entwicklungsumgebungen ist es natürlich extrem hilfreich, wenn Fehlermeldungen direkt angezeigt werden. Um die Ausgabe der Fehlermeldungen wieder zu aktivieren, müsst ihr die Option "showException" in eurer config.php anpassen.
    5kI63wI.png
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Grundlagen der Template Anpassungen
    Wie kann ich ein eigenes Template anlegen? Wie kann ich die Farbe des Buttons ändern? Wie kann ich die Box nach rechts verschieben? Wie kann ich mein eigenes Logo anzeigen? ...
    Wünscht ihr Änderungen an den mitgelieferten Templates durchzuführen, dann solltet ihr euch zu aller Erst mit den Grundlagen beschäftigen - denn es gibts nichts frustrierendes, als nicht zu wissen was man tut und nach jedem Schritt erneut Hilfe im Forum zu suchen. Das ist keineswegs böse gemeint, vielmehr spiegelt das unser Verständnis für ein sinnvolles Forenprinzip dar und soll dir helfen langfristig Probleme schneller und unabhängiger lösen zu können. Unsere community besteht aus vielen fleißigen Helfern, die freiwillig dir und anderen bei der Lösung Ihrer Probleme helfen. Das selbstständige Erlernen von Grundlagen sollte jedoch jedem Shopbetreiber selber überlassen werden - zumal das Shopware wiki eine Reihe an Anleitungen, Tutorials und Beispielen bereit stellt. Könnt oder wollt ihr euch nicht mit der Thematik auseinander setzen, dann missversteht die Helfer des Forums nicht als kostenlose Dienstleister, sondern wendet euch an eine Shopware Agentur.

    Folgende ausgewählte wiki Beiträge werden euch helfen das nötige Grundverständnis zum Anlegen und Erweitern eines eigenes Templates zu erlangen:
    Schnelleinstieg Template Tutorial 4.0: http://wiki.shopware.com/Schnelleinstie ... 6_946.html
    Templatedokumentation für Shopware 4.0: http://wiki.shopware.com/Templatedokume ... 6_947.html

    Weitere ausgewählte Anleitungen und Beispiele:
    Wie kann ich ein Logo in meinen Shopware 4 Shop einpflegen?: http://wiki.shopware.com/Wie-kann-ich-e ... 5_948.html
    Neuer Reiter auf der Detailseite Shopware 4: http://wiki.shopware.com/Neuer-Reiter-a ... 6_948.html
    Template Cheatsheet für Shopware 4.0: http://wiki.shopware.com/Template-Cheat ... 4_946.html
    Vererben von Plugin-Templates im Frontend: http://wiki.shopware.com/Vererben-von-P ... 3_948.html
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Grundlagen der Plugin Entwicklung
    Wie kann ich das Listing ändern? Wie kann ich weitere Daten in den Artikeldetails anzeigen? Wie kann ich ein eigenes Einkaufswelten-Element anlegen? Wie kann ich eine checkbox auswerten? ...
    Wünscht ihr Änderungen an der Funktionalität von Shopware durchzuführen, dann solltet ihr euch zu aller Erst mit den Grundlagen beschäftigen - denn es gibts nichts frustrierendes, als nicht zu wissen was man tut und nach jedem Schritt erneut Hilfe im Forum zu suchen. Das ist keineswegs böse gemeint, vielmehr spiegelt das unser Verständnis für ein sinnvolles Forenprinzip dar und soll dir helfen langfristig Probleme schneller und unabhängiger lösen zu können. Unsere community besteht aus vielen fleißigen Helfern, die freiwillig dir und anderen bei der Lösung Ihrer Probleme helfen. Das selbstständige Erlernen von Grundlagen sollte jedoch jedem Shopbetreiber selber überlassen werden - zumal das Shopware wiki eine Reihe an Anleitungen, Tutorials und Beispielen bereit stellt. Könnt oder wollt ihr euch nicht mit der Thematik auseinander setzen, dann missversteht die Helfer des Forums nicht als kostenlose Dienstleister, sondern wendet euch an eine Shopware Agentur.

    Folgende ausgewählte wiki Beiträge werden euch helfen das nötige Grundverständnis zum Anlegen und Erweitern eines eigenen Plugins zu erlangen:
    Shopware 4 Grundlagen der Plugin Entwicklung: http://wiki.shopware.com/Shopware-4-Gru ... 1_867.html
    Plugin-Entwicklung: Boilerplate-Code: http://wiki.shopware.com/Plugin-Entwick ... 7_869.html

    Weitere ausgewählte Anleitungen und Beispiele:
    Shopware 4 Ordnerstruktur: http://wiki.shopware.com/Shopware-4-Ord ... 9_866.html
    Shopware 4 Controller: http://wiki.shopware.com/Shopware-4-Con ... 0_866.html
    Shopware 4 Events und Hooks: http://wiki.shopware.com/Shopware-4-Eve ... 1_866.html
    Shopware 4 Event Auflistung: http://wiki.shopware.com/Shopware-4-Eve ... l_988.html
    Einrichtung und Konfiguration der Entwicklungsumgebung: http://wiki.shopware.com/Einrichtung-un ... 7_869.html
    Diverse Beispiele: http://wiki.shopware.com/Beispiele_cat_868.html
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 edited October 2016 Member since: June 2013
    <p>Fehlende Funktionalität
    Ich vermisse die Funktionalität xyz. Wieso kann das Shopware nicht?
    </p>

    <p>Shopware ist eine Software die stetig weiter entwickelt wird und im Funktionsumfang wächst. Die aktuell eingebauten Möglichkeiten decken bereits eine Vielzahl an denkbaren Szenarien ab - hinzu kommen die im Store teilweise kostenlos verfügbaren Plugins. Natürlich wird man immer neue Szenarien erkennen, die weder mit Bordmitteln, noch mit externen Plugins zu lösen sind und eine individuelle Programmierung benötigen.</p>

    <p>
    Andere Shop Systeme können das doch auch?
    </p>

    <p>Dir steht es natürlich frei zu anderen, kostenfreien Shop System zu wechseln. Aber auch da wirst du früher oder später feststellen, dass nicht alle deine Anforderungen / Erwartungen erfüllt werden. Shopware versucht selbstverständlich möglichst viele Szenarien und Geschäftszweige abzudecken - aber selbst Shopware hat nur begrenzte Ressourcen, so dass andere Baustellen eventuell höher priorisiert werden (müssen).</p>

    <p>
    Andere Shopbetreiber brauchen das aber auch?
    </p>

    <p>Oft liegt diese Ansicht im Auge des Betrachters. Ein Shop, der Erotik Artikel vertreibt wird aufschreien, wieso es keine Möglichkeit zur USK 18 Prüfung gibt. Jemand der Getränke verkauft, wundert sich warum es keine integrierte Möglichkeit zur Abwicklung von Dosenpfand gibt. Natürlich - diese Geschäftsfelder existieren und benötigen entsprechende Software. Diese Shops bilden aber nicht die Masse und sind in der Regel nur eine kleinere Gruppe der Shopware Kunden, so dass sich Shopware zu aller Erst um allgemeinere Probleme kümmern muss.</p>

    <p>
    Was kann ich nun tun?
    </p>

    <p>Sollten deine Anforderungen weder mit Shopware Bordmitteln, noch mit den im Store verfügbaren Plugins umzusetzen sein, dann hast du folgende Möglichkeiten:</p>

    <p>Shopware Issue-Tracker<br />
    Shopware hat einen öffentlichen Issue-Tracker in den Bugs, Verbesserungsvorschläge oder Plugin Wünsche eingestellt werden können. Wenn du genügend weitere Shop Betreiber findest, die sich ebenfalls eine Lösung für deine Anforderungen wünschen, dann wird sich Shopware auch dem Problem annehmen. Den Issue-Tracker findest du hier: http://jira.shopware.de/</p>

    <p>Eigene Programmierung und Verkauf<br />
    Wenn du dir sicher bist, dass deine Anforderungen für weitere Shopbetreiber ebenfalls interessant sein werden, dann kannst du dir ein entsprechendes Plugin selber schreiben und es über den Store vertreiben / refinanzieren. Auf Grund des implementierten Plugin System kannst du quasi jede nur denkbare Anforderung umsetzen und in einem Plugin verpacken. So löst du nicht nur dein Problem - sondern verdienst sogar noch Geld damit. Weitere Infos findest du hier: https://forum.shopware.com/discussion/comment/109837/#Comment_109837</p>

    <p>Shopware Agentur<br />
    Willst oder kannst du keine Zeit in die Plugin Entwicklung investieren, dann kannst du dich an eine der zahlreichen Shopware Agenturen wenden. Auch hier erneut der Hinweis: wenn du dir sicher bist, dass deine Anforderungen für weitere Shopbetreiber ebenfalls interessant sein werden, dann kannst du das Plugin über den Store vertreiben und löst so nicht nur dein Problem - sondern verdienst sogar noch Geld damit. Shopware Agenturen findest du hier: http://www.shopware.de/partner/ueberblick/</p>
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Shopware Cronjobs
    Wikipedia wrote:
    Der Cron-Daemon dient der zeitbasierten Ausführung von Prozessen in Unix und unixartigen Betriebssystemen wie Linux, BSD oder Mac OS X, um wiederkehrende Aufgaben – sogenannte Cronjobs – zu automatisieren. Häufig führt der Cron-Daemon wichtige Programme für die Instandhaltung des Systems aus, wie zum Beispiel Dienste für das regelmäßige Archivieren und Löschen von Logdateien.
    Die Shopware Cronjobs sind Mechanismen, die während des normalen Shopbetriebs im Hintergrund wiederkehrende Aufgaben erledigen - darunter zb das Generieren neuer SEO URLs, das Aktualisieren von Topsellern oder das Versenden von Bewertungs-Emails. Dabei stellt Shopware jedoch lediglich die Cronjobs (und die Intervalle) bereit - ihr müsst dafür sorgen, dass diese regelmäßig ausgeführt werden. Das geschieht durch manuellen Aufruf über den Browser, über den eigenen Server oder über externe Dienstleister. Im Klartext: es reicht nicht aus, wenn ihr die Shopware Cronjobs aktiviert - aber diese nicht durch externe Anwendungen gestartet / ausgeführt werden. Aber Schritt für Schritt..

    Cron Plugin installieren
    Die Installation des mitgelieferten "Cron" Plugin ist Grundvoraussetzung. Zusätzlich bringt Shopware von Haus aus noch weitere nützliche Cronjobs mit, die installiert werden können.
    wYQ3tbQ.png

    Cron-Sicherheit prüfen
    Ab Shopware 4.3.0 ist es möglich den Aufruf der Shopware Cronjobs sicherer zu gestalten, so dass diese bspw. nur mit einem gültigen Schlüssel aufgerufen werden können. Solltet ihr also euren Schlüssel nicht kennen oder die Cronjobs über eine falsche IP aufrufen, dann werde diese selbstverständlich nicht ausgeführt:
    lmWKt6A.png

    Shopware Cronjobs prüfen
    Auszuführende Cronjobs müssen in den Grundeinstellungen aktiviert sein. Zu Testzwecken könnt ihr das Datum der "nächsten Ausführung" auf ein beliebiges Datum in der Vergangenheit setzen, um die Ausführung zu erzwingen. Sollte ein Cronjob einmal fehlerhaft ausgeführt werden, dann wird dieser automatisch deaktiviert. Die Fehlermeldung findet ihr dann im Feld "Ergebnisdaten".
    rM6vUjs.png

    Cronjobs aufrufen
    Um den Cronjob zu testen gebt einfach im Browser folgende URL ein:
    http://www.meinshop.de/backend/cron
    
    Die Ausführung erfolgt dann direkt und das Ergebnis ist im Browser als Text zu lesen. Bitte beachtet, dass manche Cronjobs sehr aufwändig sind und evtl. über die erlaubte Verbindungszeit oder die erlaubte Script-Laufzeit hinauslaufen.

    Cronjobs wiederholt / in Intervallen ausführen
    Nun zum wichtigsten Schritt - der gleichzeitig für die meiste Verwirrung und Ratlosigkeit sorgt: das Ausführen der Cronjobs passiert -nicht- automatisch oder durch Shopware selber. Ihr müsst dafür sorgen, dass die oben angegebene URL in festen Intervallen abgerufen wird. Solltet ihr root Zugriff auf euren Server haben, dann könnt ihr entsprechende crontabs einrichten. Die Grundlagen zu crontabs würden den Umfang dieser FAQ sprengen - wendet euch dazu an euren Provider / euren Server Administrator oder lest euch via google in das Thema ein. Solltet ihr dagegen keinen Zugriff auf den Server haben - und zb Shared Webspace nutzen - dann müsst ihr die URL entweder selber aufrufen oder ihr wendet euch an externe Dienstleister, die die URL regelmäßig abfragen. Um Werbung zu vermeiden: diese Dienstleister findet ihr ebenfalls über google.

    Weiterführende Infos aus dem Shopware wiki
    Cronjobs: http://wiki.shopware.com/Cronjobs_detail_1102_792.html
    Cron-Sicherheit: http://wiki.shopware.com/_detail_1751.html

    Cronjobs erweitern
    Nun ist die Ausgabe der Cronjobs doch recht "unübersichtlich". Hinzu kommt, dass lediglich eine leere, weiße Seite angezeigt wird, wenn kein Cronjob abgearbeitet werden muss und man sich nicht sicher ist, ob evtl. ein Fehler aufgetreten ist. Möchte man nun auch noch die einzelnen Ausführungszeiten der Cronjobs wissen und loggt man die Ergebnisse für spätere Auswertungen dann steht man vor einer großen Aufgabe. Um die Ausgabe der Cronjobs ein wenig lesbarer und informativer zu gestalten, könnt ihr euch ein kleines Plugin basteln.

    So sieht die Ausgabe vorher aus:
    Kq58qFz.png

    So könnte eine optimierte Ausgabe aussehen:
    WerRq67.png

    Ausschnitt eines Plugins
       // timers
    	private $microtime_start = null;
    	private $microtime_last  = null;
    
       // new line - viewable with either a browser or a texteditor
    	private $new_line = "\n<br>";
    
    
    
        /**
         * Get a timing string with last checkpoint and global time. 
         *
         * @return string
         **/
    
        protected function getTime()
        {
    		  // create global time
            $time_start = explode(' ', $this->microtime_start);
            $time_end = explode(' ', microtime());
            $parse_time = number_format(($time_end[1] + $time_end[0] - ($time_start[1] + $time_start[0])), 3, ",", ".");
    
    		  // create checkpoint time
            $time_start = explode(' ', $this->microtime_last);
            $time_end = explode(' ', microtime());
            $last_time = number_format(($time_end[1] + $time_end[0] - ($time_start[1] + $time_start[0])), 3, ",", ".");
    
            // reset last time
            $this->microtime_last = microtime();
    			
    		  // write string
    		  $str = "Time - checkpoint: " . $last_time . " Sek - gesamt: " . $parse_time . " Sek";
    			
            // return it
            return $str;
        }		
    
    	
    
        /**
         * Registers all necessary events and hooks.
         *
         * @return void
         */
        
        private function installSubscribeEvents()
        {
    		  // register our replace hook
            $this->subscribeEvent(
                'Shopware_Controllers_Backend_Cron::indexAction::replace',
                'replaceCronIndexActionHook'
            );
    		
    		
            // and done
            return;
        }
    	
    
    
        /**
         * Replace the cronjob output. 
         *
         * @param Enlight_Hook_HookArgs $arguments
         * 
         * @return void
         **/
    
        public function replaceCronIndexActionHook( Enlight_Hook_HookArgs $arguments )
        {
            // set times
            $this->microtime_start = microtime();
            $this->microtime_last  = microtime();
    
            // get new line char
            $nl = $this->new_line;
    
            // start output
            echo "<hr>Starte Cronjobs" . $nl . "Datum: " . date( "Y-m-d H:i:s" ) . $nl . "<hr>" . $nl . $nl;
    
            // loop every cronjob
            while ( ( $job = Shopware()->Cron()->getNextJob() ) !== null )
            {
                // get cron action name
                $action = $job->getAction();
    
                // start the cronjob
                echo "<hr>Starte Cronjob - " . $job->getName() . $nl . "<hr>";
                Shopware()->Cron()->runJob( $job ) . $nl;
                echo "<hr>Beende Cronjob" . $nl . $this->getTime() . $nl . "<hr>" . $nl . $nl;
            }
    
            // cronjob finished
            echo "<hr>Beende Cronjobs" . $nl . $this->getTime() . $nl . "Datum: " . date( "Y-m-d H:i:s" ) . $nl . "<hr>" . $nl . $nl;
    
            // and done
            return;
        }
    
    
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Systemcheck-Tool

    Um schnell und unkompliziert feststellen zu können, ob Ihr Server / Webspace für den Betrieb von Shopware 4 geeignet ist, können Sie unser Systemcheck-Tool verwenden. Dieses prüft neben den Systemvoraussetzungen auch die installierte Datenbank-Version und falls Shopware bereits installiert ist, die notwendigen Schreib-/Zugriffsrechte auf die Shopware-Dateien und Ordner.

    Weitere Informationen: http://wiki.shopware.com/Systemcheck-To ... l_894.html
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Foreign Keys reparieren

    In bestimmten Konstellationen und auch nur bei manchen Hostern, kann es vorkommen, dass die Foreign-Keys, die Shopware in der Datenbank benötigt, verloren gehen. Die Modelgenerierung der Attributmodels benötigt diese Keys, damit die Attribute korrekt erstellt werden können.

    Weitere Informationen: http://wiki.shopware.com/Foreign-Keys-r ... l_954.html
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Entwicklertoolbar

    ​Die Entwicklertoolbar erleichtert das Leben jedes Shopware Entwicklers. Sie liefert im Frontend Informationen, die Entwickler sonst immer selbst in den tiefen von Shopware zusammen suchen mussten. So werden als Beispiel alle verfügbaren Smarty Variabeln oder alle aufgetreten Events chronologisch dargestellt.

    Weitere Informationen: http://store.shopware.com/swag00681/ent ... olbar.html
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Plugins manuell löschen

    Solltet ihr (fälschlicherweise) ein Plugin über den FTP gelöscht haben und dadurch euer Shop nicht mehr laufen, dann könnt ihr folgendermaßen vorgehen, um das Plugin komplett zu entfernen.

    Die wichtigen Datenbank-Tabellen in diesem Fall heißen s_core_plugins und s_core_subscribes. Zunächst sucht ihr das Plugin in der s_core_plugins und merkt euch die ID. Anschließend könnt ihr den Eintrag des Plugins dort löschen. Anhand der zuvor gemerkten ID findet ihr nun in der s_core_subscribes alle Events, die das Plugin registriert hat. Dort müsst ihr alle Einträge löschen, die ihr dem Plugin per pluginID zuordnen könnt.

    Ich empfehle euch auf jeden Fall vorher eine Datenbank-Sicherung zu erstellen. Solltet ihr euch unsicher sein, lohnt es sich ggf. diese Änderungen an der Datenbank von einem Experten durchführen zu lassen.
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Bestellbestätigung - MwSt. anzeigen

    Eine direkte Variable für die gesamte enthaltene Mehrwertsteuer gibt es in der eMail (Bestellabschluss-eMail) nicht. Aber ihr könnt mit folgenden Smarty-Zeilen eine solche anlegen:
    {assign var="sAmountNumeric" value=$sAmount|replace:",":"."|floatval}
    {assign var="sAmountNetNumeric" value=$sAmountNet|replace:",":"."|floatval}
    {assign var="sAmountTaxNumeric" value=$sAmountNumeric-$sAmountNetNumeric}
    {assign var="sAmountTax" value=$sAmountTaxNumeric|number_format:2:",":""}
    
    Nun könnt Ihr folgende Variable für die Mehrwertsteuer nutzen:
    {$sAmountTax} EUR
    
  • Moritz NaczenskiMoritz Naczenski AdministratorsComments: 8582 Received thanks: 2541 Member since: September 2013
    Support im Forum / Keine Unterstützung durch Shopware

    Natürlich kann jeder nachvollziehen, dass ein Problem innerhalb des eigenen Shops ärgerlich ist und in Einzelfällen auch ein finanzieller Schaden entstehen kann. Bei der Wahl der Community Edition wird von Shopware klar und offen an allen relevanten Punkten kommuniziert, dass das Unternehmen bei Problemfällen keinen Support bietet. Sollte man sich für die kostenfreie Community Version - oder eine kostenpflichtige Version ohne Abschluss eines Wartungsvertrags - entscheiden, dann ist man erstmal auf die Unterstützung der Community angewiesen.

    Wenn Ihr euch für die Unterstützung durch die Community entscheidet, müsst ihr euch in jedem Fall bewusst sein, dass die Kommunikation im Community Forum auf den Erfahrungswerten anderer Nutzer basiert und somit nicht immer schnell und kurzfristig eine Lösung gefunden werden kann. Inwiefern jemand hier dir helfen kann, ist zudem stark abhängig von den Informationen die du lieferst. In Einzelfällen unterstützen wir euch jedoch gerne, wenn sich innerhalb der Community keine Lösung für das jeweilige Problem findet - und unsere Mitarbeiter in ihrer Freizeit Zeit finden.

    Wenn Du gerne garantierte Antwortzeiten haben möchtest, dann kann ich dir nur empfehlen, dass du dich mal mit unserer Professional Edition auseinander setzt. Zum einen ist hier schon ein Wartungsvertrag über 12 Monate gratis dabei zum anderen kannst du verschiedene Wartungsverträge mit definierten Reaktionszeiten buchen. Je nach Vertrag werden dann Support Tickets, die du erstellt hast über unser Ticket System oder auch telefonisch beantwortet.

    Eine Übersicht und Erklärung zu den einzelnen Supportwegen und Wartungsverträgen findest du auf der Shopware-Webseite: http://www.shopware.de/uebersicht-supportwege/
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Test-System inkl. lizenzierten Plugins

    Um lizenzierte Plugins testen zu können - ohne direkt im Live System zu arbeiten - habt ihr mehrere Möglichkeiten.

    1. Im Unterordner installieren
    Lizenzen werden für eine Domain registriert - dabei ist die Ordnerstruktur irrelevant. Somit könnt ihr einen zweiten Shop in einem beliebigen Unterordner (zb http://www.domain.de/testshop) installieren. Sämtliche lizenzierte Plugins könnt ihr nun in diesem Testshop installieren.

    2. hosts anpassen
    In Bearbeitung
    NYObkw5.png

    3. Staging Plugin
    Mit dem Shopware Staging Plugin können Sie per Knopfdruck jederzeit eine Arbeitskopie Ihres Produktiv-Shops erzeugen. In dieser Kopie können Sie beliebige Veränderungen vornehmen, ohne dass diese sich auf das Ihr Live-System auswirken. Die vorgenommenen Änderungen können Sie anschließend teilweise oder komplett über Profile zurück in Ihr Live-System synchronisieren.

    Das Staging Plugin ist jedoch keine echte Testumgebung. Sobald Änderungen Auswirkungen auf Ebene des Dateisystems haben, wirken sich diese auch auf das Live-System aus. Testen kann man damit also nur Datenbankeinträge. Das Anlegen eines Testartikels oder Banners hat bereits Auswirkungen auf das Dateisystem.

    Siehe Staging Plugin im Shopware wiki

    4. Enterprise Kunden inkl. zweiter Domain
    Kunden der Shopware Enterprise Editionen verfügen über eine zweite, vollständig lizenzierte Domain, die zu Testzwecken genutzt werden kann. Jede Art von Änderung (Plugins, Templates etc) oder externen lizenzierten Plugins kann somit auf einem zweitem Server / unter einer zweiten Domain getestet werden, bevor diese Änderungen ins Live System übernommen werden.
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Fehlende / gelöschte Daten aus Shopware Demoshop übernehmen

    In Bearbeitung.
  • EikeWarnekeEikeWarneke ModeratorComments: 2877 Received thanks: 643 Member since: June 2013
    Backend Menü bei Klick öffnen

    Üblicherweise öffnen sich die Menüs im backend per mouse hover. Aber du kannst mit einem kleinen Trick dafür sorgen, dass sich das Menü erst nach einem Klick öffnet.

    Dazu editiere die Datei:
    /templates/_default/backend/index/menu.tpl
    
    Vorher:
    {if $level === 0}{if $category->hasChildren()}xtype: 'hoverbutton',{else}xtype: 'button',{/if}{/if}
    
    Nachher:
    {if $level === 0}{if $category->hasChildren()}xtype: 'button',{else}xtype: 'button',{/if}{/if}
    
This discussion has been closed.