Shopware 5 – E-mail aus der Newsletterregistrierung im Footer an Newsletterformular weitergeben

Die Newsletteranmeldung im Footer ist so konzipiert, das nach Eingabe der E-Mailadresse und klick auf den Button direkt eine Newsletteranmeldung erfolgt.

Zwar wird man weitergeleitet auf die Newsletterseite aber die Anmeldung zum Newsletter erfolgt schon nach dem Klick auf den Button im Footer.

Umgehen kann man das nur indem man ein Captcha mit Eingabe im Shopware Backend konfiguriert. Sobald man kein Captcha hat oder Honeypot verwendet erfolgt die Anmeldung schon durch Klick im Footer.

Um das zu umgehen und die E-Mail ohne Anmeldung nur auf das Newsletterforumular zu übergeben kann man wie folgt vorgehen.

Template bearbeiten:
/themes/bare/frontend/index/footer-navigation.tpl

Diesen Block:

{block name="frontend_index_footer_column_newsletter_form_field"}
<input type="email" name="newsletter" class="newsletter--field" placeholder="{s name="IndexFooterNewsletterValue"}{/s}" />
{if {config name="newsletterCaptcha"} !== "nocaptcha"}
<input type="hidden" name="redirect">
{/if}
{/block}

Ersetzen gegen:

{block name="frontend_index_footer_column_newsletter_form_field"}
<input type="email" name="newsletter" class="newsletter--field" placeholder="{s name="IndexFooterNewsletterValue"}{/s}" />
<input type="hidden" name="redirect">
{/block}

Die if abfrage des Captchas einfach entfernen und schon wird man nach der Eingabe immer auf das Newsletterformular weitergeleitet.

Die Änderung sollte natürlich wie gewohnt nicht im Bare Theme vorgenommen werden, sondern über die eigene Theme Struktur das Theme überschreiben:

Hier sollte die Datei abgelegt werden: /themes/DEINTHEME/frontend/index/footer-navigation.tpl

{extends file=“parent:frontend/index/footer-navigation.tpl“}

{block name="frontend_index_footer_column_newsletter_form_field"}
<input type="email" name="newsletter" class="newsletter--field" placeholder="{s name="IndexFooterNewsletterValue"}{/s}" />
<input type="hidden" name="redirect">
{/block}

Wir haben diese Änderung bezüglich der DSGVO bei einigen Kunden durchgeführt, da die Einbindung einer Checkbox mit korrektem Hinweistext und allen weiteren vorgeschriebenen Informationen für den Footer zu viel Platz wegnahm.

Shop Relaunch mit neuem Shopsystem – Darauf kommt es an!

Früher oder später wird jeder Shopbetreiber mit einem Relaunch seines Onlineshops konfrontiert. Oftmals wechselt man dabei auch das Shopsystem, z.B. von XTCommerce auf Shopware 5. Gründe für einen Relaunch oder Shopsystemwechsel gibt es viele.

Die häufigsten Gründe für einen Wechsel sind:

  • Neues Shopdesign mit Responsible Design (Für die Mobile Darstellung)
  • Besseres Ranking bei Google & Co (Suchmaschinenoptimierung)
  • Sicherheitsbedingt (Alte Systeme haben oft Sicherheitslücken und werden nicht mehr weiterentwickelt)
  • Verbesserung der Seitenladezeiten (Neue Systeme arbeiten in der Regel schneller)
  • Größerer Funktionsumfang (Moderne Shopsysteme haben meist von haus aus einen riesigen Funktionsumfang und lassen sich durch Plugins leicht und kostengünstig erweitern)

Welches Shopsystem ist das richtige für mich?
Im Vorfeld sollte man sich Gedanken machen was man vom neuen Shopsystem erwartet. Dabei sollte man sich zusammenfassen, was einem beim alten System stört oder gefehlt hat. Ebenso sollte man darüber nachdenken was man vom neuen System erwartet. Am besten lassen Sie sich dazu auch von einer Agentur beraten und sich ein entsprechendes Angebot erstellen. Darin sollten alle gewünschten Funktionen enthalten sein.

Auf was muss man beim Relaunch achten?
Nach der Wahl des Shopsystems und des Umsetzungs Ihres neuen Onlineshops sollte ein Plan für den Relaunch des Shops erstellt werden. Darin sollte alles aufgelistet sein, das für den Umzug auf das neue Shopsystem notwendig ist.

Folgende Punkte sollte man auf jeden Fall prüfen und gegebenenfalls in die Planung mit einbeziehen:

  • Google Rankings – Alle Seiten des bisherigen Onlineshops müssen korrekt weitergeleitet werden, damit die Rankings bei Google nicht verloren gehen.
  • Kundendaten – Damit sich Ihre Kunden auch nach dem Shop Relaunch wieder einloggen können sollten alle Kundendaten in den neuen Onlineshop importiert werden. Dabei ist zu klären ob die Passwörter übernommen werden können oder nicht.
  • Übernahme der Artikel, Kategorien und Informationsseiten (Evtl. muss hier auch der Inhalt angepasst werden um eine Responsible Darstellung zu ermöglichen)
  • Wann soll der Relaunch (Wechsel auf das neue System) stattfinden und wie lange wird er voraussichtlich dauern? Gegebenenfalls informieren Sie die Kunden vorab wenn Sie eine große Anzahl von Bestandskunden haben.

Ein Relauch sollte stehts gut geplant sein, damit es nicht zu bösen Überraschungen kommt. Ziehen Sie im Zweifel einen Fachmann hinzu, damit Ihr neuer Onlineshop ein voller Erfolg wird.

Untergeordnete Shopseite einer anderen Shopseite unterordnen in Shopware 5

In Shopware 5 ist es möglich einer Shopseite weitere Shopseiten unterzuordnen. Leider gibt es derzeit aber keine Möglichkeit über das Backend diese der Ordnung halber einer anderen Shopseite zuzuweisen. Der einzige Weg das zu ändern ist, es direkt in der Datenbank anzupassen.

Beispiel:
Die untergeordnete Shopseite 1.1 soll der Shopseite 2 untergeordnet werden.

shopseite-unterseite-verschieben-shopware5

Shopseite in der Datenbank neu zuordnen:
Per phpmyAdmin oder MySql Dumper habt Ihr zugriff auf die Shopware Datenbank. Navigiert zu der Tabelle „s_cms_static“. Hier sind alle Shopseiten abgespeichert.

s-cms-static-datenbank-shopware-5

Um die Shopseite nun zu verschieben suchen wir in der Tabelle nach der ID „50“ (Im Backend zu sehen siehe erstes Bild dieses Beitrags).

s-cms-static-eintrag-datenbank-shopware-5

Hier sehen wir nun das in der Spalte „parentID“ derzeit die ID „47“ steht. Diese ID müssen wir auf „48“ ändern. Das ist die ID der Shopseite, der wir diese Shopseite zuweisen wollen.

s-cms-static-eintrag-aenderung-datenbank-shopware-5

Nach dem Speichern in der Datenbank im Shopware Backend das Fenster der Shopseiten schließen und über die Navigation erneut öffnen, damit die Änderung angezeigt wird. Die Shopweite ist nun wie gewünscht verschoben.

shopseite-unterseite-verschoben-shopware5

In der Regel würde ich absolut davon abraten in der Datenbank manuell Anpassungen zu machen. Für dieses Problem gibt es aber derzeit keine andere Lösung, da auch kein Plugin dafür zur Verfügung steht.

Ich übernehme keine Verantwortung für Schäden durch die Anpassung entstehen. Alle Angaben ohne Gewähr.

Eigene Templates in den Shopware 5 Shopseiten verwenden

Wer in Shopware 5 schon mal Shopseiten angelegt hat, dem ist gewiss aufgefallen, das es dort unter Einstellungen die Möglichkeit gibt eigene Templates für die Shopseite anzugeben.

shopware5-shopseite-einstellungen

In diesem Beispiel zeige ich wie man zwischen der Überschrift der Shopseite und Content (Text) der Shopseite ein eigenes Element einfügen kann, das dann auf allen gewünschten Shopseiten als statisches Element angezeigt wird. In diesem Fall ist das z.B. interessant für weiterführende Links mit Bildern. Anwendungsmöglichkeiten gibt es hier natürlich viele.

So soll das ganze dann aussehen (Das statische Element ist Rot umrahmt):

Eigenes Template für Shopware 5 Shopseiten anlegen – So gehts:

              1. Damit man sein eigenes Template hinterlegen kann muss man dieses zunächst anlegen. Über ein FTP Programm navigieren wir zu dem bestehenden Template der Shopseiten um davon eine Kopie zu erstellen. Das Template findet man unter dem folgenden Pfad: „/themes/Frontend/Bare/frontend/custom/index.tpl„.
              2. Diese Datei öffnen wir nun mit einem Programm wie z.B. psPad. Die Kopie speichern wir nun im selben Verzeichnis unseres eigenen Themes unter einem anderem Namen ab. Der Pfad dazu sieht wie folgt aus: „/themes/Frontend/myTheme/frontend/custom/beispiel.tpl„.
                (bitte myTheme gegen euren Theme Namen ersetzen.)Der Code des Templates sollte wie folgt aussehen:
              3. {extends file="frontend/index/index.tpl"}
                
                {* Breadcrumb *}
                {block name="frontend_index_start" append}
                {$sBreadcrumb = []}
                {if $sCustomPage.parent}
                 {$sBreadcrumb[] = [
                 'name' => {$sCustomPage.parent.page_title|default:$sCustomPage.parent.description},
                 'link'=>{url sCustom=$sCustomPage.parent.id}
                 ]}
                {/if}
                {$sBreadcrumb[] = [
                 'name' => {$sCustomPage.page_title|default:$sCustomPage.description},
                 'link'=>{url sCustom=$sCustomPage.id}
                ]}
                {/block}
                
                {block name="frontend_index_header"}
                 {include file="frontend/custom/header.tpl"}
                {/block}
                
                {* Main content *}
                {block name="frontend_index_content"}
                 <div class="custom-page--content content block">
                
                 {* Custom page tab content *}
                 {block name="frontend_custom_article"}
                 <div class="content--custom">
                 {block name="frontend_custom_article_inner"}
                 {* Custom page tab headline *}
                 {block name="frontend_custom_article_headline"}
                 <h1 class="custom-page--tab-headline">{$sCustomPage.description}</h1>
                 {/block}
                
                 {* Custom page tab inner content *}
                 {block name="frontend_custom_article_content"}
                 {$sContent}
                 {/block}
                 {/block}
                 </div>
                 {/block}
                
                 </div>
                {/block}
                
                {* Sidebar left *}
                {block name="frontend_index_content_left"}
                 {include file="frontend/index/sidebar.tpl"}
                {/block}
              4. Nun müssen wir dieses Template bearbeiten und nach unseren Wünschen anpassen. Wir löschen alles bis auf folgenden Code aus dem Template.

                Dieser Codebereich ist für die Anzeige des Shopseiten Inhaltes aus dem Backend verantwortlich:

                 {* Custom page tab inner content *}
                 {block name="frontend_custom_article_content"}
                 {$sContent}
                 {/block}
                 {/block}
                 </div>
                 {/block}
                
                 </div>
                {/block}
                
              5. Nun fügen wir über dem {$sContent} unseren gewünschten html Code ein. Das könnte dann wie folgt aussehen:
              6.  {* Custom page tab inner content *} 
                 {block name="frontend_custom_article_content"}
                 
                 <div class="beispiel">
                 
                 <div class="teaser"> 
                 <a href="#"><img src="http://www.beispiel.de/media/image/beispiel-teaser.jpg" alt="beispiel" title="beispiel" /></a>
                 <a class="block btn is--primary is--icon-right is--center is--large" href="http://www.beispiel.de/Kategorie/">Link 1 <i class="icon--arrow-right"></i></a>
                 </div>
                 
                 <div class="teaser"> 
                 <a href="#"><img src="http://www.beispiel.de/media/image/beispiel-teaser.jpg" alt="beispiel" title="beispiel" /></a>
                 <a class="block btn is--primary is--icon-right is--center is--large" href="http://www.beispiel.de/Kategorie/">Link 2 <i class="icon--arrow-right"></i></a>
                 </div>
                 
                 <div class="teaser"> 
                 <a href="#"><img src="http://www.beispiel.de/media/image/beispiel-teaser.jpg" alt="beispiel" title="beispiel" /></a>
                 <a class="block btn is--primary is--icon-right is--center is--large" href="http://www.beispiel.de/Kategorie/">Link 3 <i class="icon--arrow-right"></i></a>
                 </div>
                
                 <div class="teaser last"> 
                 <a href="#"><img src="http://www.beispiel.de/media/image/beispiel-teaser.jpg" alt="beispiel" title="beispiel" /></a>
                 <a class="block btn is--primary is--icon-right is--center is--large" href="http://www.beispiel.de/Kategorie/">Link 4 <i class="icon--arrow-right"></i></a>
                 </div>
                 
                 <div style="clear:both;"><!-- --></div>
                 </div> 
                 
                 {$sContent}
                 
                 {/block}
              7. Damit das ganze wie am oben dargestellten Beispielbild angezeigt wird müssen wir noch das CSS hinterlegen. Für die korrekte Darstellung in Mobil muss man Gegebenenfalls noch extra CSS Anpassungen machen.
                  .beispiel .teaser {  
                    float:left;
                    width:22%;
                    margin-right:3%;
                  }
                  
                  .beispiel .teaser img {  
                    margin: 0px auto;
                    padding-bottom:0.5rem;
                  }
                  
                  .beispiel .teaserlast {  
                    margin-right:0px !important;
                  }
                
              8. Eigenes Template der Shopseite hinzufügen. Wir fügen nun bei der gewünschten Shopseite in das Feld „Tpl. Variable 1“ und „Tpl. Pfad 1“  folgendes ein:

                Tpl. Variable 1: sContent
                Tpl. Pfad 1: frontend/custom/beispiel.tpl

                shopware5-shopseite-einstellungen-scontent
              9. Die Shopseite muss nun gespeichert werden.
              10. Als letztes müssen wir den Shopware Cache leeren und das Template Kompilieren. Anschließend sind die Anpassungen abgeschlossen.

Die Anwendungsmöglichkeiten der eigenen Shopseiten Templates sind sehr groß. Die Anpassungsmöglichkeiten gehen bis zu einer komplett selbst gestalteten Shopseite, die sich komplett vom restlichen Shopdesign unterscheidet. So ist es z.B. möglich Landingpages zu bauen, wenn einem die Einkaufswelten von Shopware 5 zu umständlich sind.

Ordner auf dem FTP Server per SSH kopieren bei Domainfactory (www.df.eu)

Wer Sicherheitskopien von einem Webprojekt machen will kennt das Problem. Der Upload und der Download dauert per FTP ewig. Mit SSH kann man das in wenigen Augenblicken erledigen (Abhängig von der Größe des Projekts auf dem Server).

  1. Download des Programms „Putty
    Mit dem Programm kann man die gewünschten Kopierarbeiten erledigen.
  2. SSH Zugang bei DomainFactory anlegen
    Im Resellertarif von DF ist es möglich einen SSH Account anzulegen. Einloggen und im Menü Links „SSH Konfiguration“ anklicken. Nun auf „Login Einrichten“ klicken und das Formular ausfüllen. Bei Shell kann „zsh“ stehen bleiben.
  3. Anmeldung am Server mit Putty
    Nun öffen wir das Programm Putty und geben in das Feld „Host Name“ die Domain ein bei der wir uns anmelden wollen. Beispiel: „www.xyz.de“Nun müssen wir uns einloggen. dazu erst den Benutzernamen eingeben. (Einfügen geht auch. Allergings muss man hier den Benutzernamen erst kopieren und dann per Rechtsklick in das Puttyfenster einfügen und Enter drücken. Beim Passwort genauso vorgehen, hier sieht man allerdings nichts von einer Eingabe. Einfach recht klicken und Enter drücken. Nun sollten wir eingeloggt sein!
  4. Den kopieren Befehl eingeben und ausführen
    Mit dem Befehl „cp -R ordner/ zielordner/“ wird nun von dem order in den Zielorder kopiert. Bei Domainfactory sieht das dann zum Beispiel so aus „cp -R webseiten/kunde_xyz/order/ webseiten/kunde_xyz/zielordner/“ Nach dem ausführen läuft die Kopie. Ihr könnt das am FTP Server kontrollieren. Wer keine Übung in SSH hat kann es vorher auch mit einem Testordner ausprobieren.
Beispiel für das Kopieren per SSH
Beispiel für das kopieren per SSH