Randshop Update - diesmal aber richtig!

Probleme beim randshop Update lassen sich vermeiden

Im randshop Forum tauchen immer wieder Fragen auf, die sich um Probleme beim randshop Update drehen.

Das Update kann man auf eine recht einfache Art manchen:

  • Update Dateien hochladen
  • /update/index.php aufrufen
  • auf das neue Standardtemplate umstellen
  • fertig

Das hat allerdings mehrere Nachteile:

  • geht beim Update etwas schief, steht der aktuelle Shop und das führt im Allgemeinen zu richtig Streß. Solange die Fehlersuche nicht erfolgreich war und die Fehler behoben sind, gibt es im Shop keinen Umsatz mehr.
  • es bleiben Dateien vom alten Shop, die im neuen nicht mehr verwendet werden als Dateileichen im Shopverzeichnis liegen. Das ist nicht so schlimm, verwirrt aber bei einer eventuellen Fehlersuche.
  • das shop Template muss im laufenden Betrieb wieder angepasst werden. Sämtliche Anpassungen des alten Shops sind neu durchzuführen.

randshop Update etwas ausführlicher

Durch einen etwas höheren Aufwand beim randshop Update kann man die oben genannten Nachteile und damit einiges an Stress vermeiden.

Das Ergebnis ist ein Shop, der wie eine Neuinstallation aussieht, aber die Daten der bisherigen Datenbank enthält.

Im Folgenden beschreibe ich meine Art des randshop Update:

 

Das randshop Update in der ausführlichen Schritt für Schritt Anleitung

Beim Update geht man dann ganz ähnlich wie bei randshop Installation aber richtig vor. Damit erhält man eine Installation, die zwar von einer bestehenden Installation abgeleitet wurde, aber nicht deren Altlasten enthält.

Testumgebung einrichten:

Auch beim randshop-Update empfiehlt es sich unbedingt eine Testumgebung wie Xampp zu verwenden. Wer das Update sofort im LiveShop durchführt, der wechselt auch seine Winterräder beim fahrenden Auto!

Obwohl die hier beschriebene Vorgehensweise ja praktisch einen Testshop auf dem Server verwendet, lässt es sich viel angenehmer auf dem lokalen Rechner arbeiten. Schon weil das häufige Hochladen geänderter Templatedateien auf den FTP-Server entfällt, spart man einiges an Zeit.

OK, dann lasst uns mit dem Update beginnen!

Update Paket bei randshop herunterladen

Achten Sie bitte unbeding darauf, dass Sie bei randshop.com die Update-Version des aktuellen randshop herunterladen. Ein Update mit dem normalen Installationspaket funktioniert nicht!

Neues Installationsverzeichnis anlegen und richtig benennen

Neben dem Verzeichnis der bisherigen Shopversion wird ein Verzeichnis für die neue Shopversion angelegt und in der gleichen Logik benannnt. Also heißt dieses Verzeichnis im Falle des Updates auf die randshop 2.4 eben randshop_24.

In dieses Verzeichnis werden dann alle Dateien der heruntergeladenen neuen randshop-Updateversion kopiert. Es sind damit in diesem Verzeichnis keine Altlasten der bisherigen Version enthalten.

Auf dieses Verzeichnis zeigt im Moment noch keine Domain. Für die Dauer des Übergangs sollte hier eine eigene Subdomain eingerichtet werden. Diese könnte update.meineShopDomain.de lauten und wird später durch die eigentliche Shopdomain ersetzt.

Domain für die Update Übergangszeit anlegen

Für die Zeit bis zur Fertigstellung des Umzugs wird eine Subdomain wie update.meinshop.tld angelegt. Das Startverzeichnis dieser Domain zeigt auf den eben angelegten neuen Shopordner.

Damit kann bis zur endgültigen Fertigstellung der aktualisierte Shop gleich auf dem Server getestet werden.

Verzeichnisschutz für den kompletten neuen Shop anlegen

Wenn wir gerade zum Anlegen der Subdomain schon im Kundenbereich des Webspace-Providers sind, lässt sich auch gleich der Verzeichnisschutz einrichten.

Um Besucher und Suchmaschinen aus dem neuen Shop erstmal fernzuhalten, wird ein Verzeichnisschutz für den ganzen Shop eingerichtet. Dazu gibt es meist entsprechende Einstellungen im Kundenbereich des Webspace.

Achtung: Wenn ein Verzeichnisschutz für den gesamten Shop angelegt ist, tritt beim Abschluss des Bestellvorgangs ein Fehler auf. Im Mail steht dann nur eine Fehlermeldung: "401 Authorization Required - This server could not verify that you are authorized to access the document ...".
Das bedeutet, dass auf dem Server die Zugangsdaten für den Verzeichnisschutz eingegeben werden müssten, ist nur nicht möglich, weil das im PHP-Programmablauf nicht (so einfach) möglich ist. Also nicht erschrecken, sondern für den vollständigen Test des Bestellvorgangs den Verzeichnisschutz eben aufheben.

Verzeichnisschutz für den Admin Bereich anlegen

Wer es am Ende nicht vergessen möchte, legt jetzt auch gleich den Verzeichnisschutz für den Admin-Bereich an. Dazu wird der Ordner /admin mit einem eigenen Verzeichnisschutz versehen.
Übrigens ist das eine gute Gelegenheit um Benutzername und Passwort für diesen sensiblen Bereich auch einmal zu erneuern.

Konfigurationsdatei config.inc.php kopieren und anpassen

Die Updateroutine benötigt Angaben zur Datenbank und Verzeichnisstruktur. Diese Daten stehen in der /conf/config.inc.php die wir aus dem aktuellen Shopverzeichnis in das neue Shopverzeichnis kopieren müssen. Dabei unbedingt darauf achten, dass die Datei wieder in /conf landet.

Da in der config.inc.php nun noch die alten Datenbankdaten stehen, müssen diese jetzt angepasst werden. Dazu öffnen wir die Datei mit einem utf8-fähigen Editor (notepad++ oder pspad, o.ä.) und ersetzen die bisherigen Datenbankzugangsdaten gleich am Anfang der Datei durch die Zugangsdaten der neuen Datenbank.

Weiter unten stehen dann noch Verzeichnisangaben, hier muss ebenfalls auf den Namen des neuen Ordner angepasst werden. Wird die oben genannte Empfehlung befolgt, kommt nur das _24 dazu, bzw. es wird in den Pfadangaben die bisherige Versionsnummer durch die neue ersetzt.

Und natürlich müssen die Angaben zur Url ebenfalls angepasst werden. Also überall wo die bisherige Adresse des Shops steht, muss die Adresse der Übergangsurl eingetragen werden. Es kommt also nur das update. (mit dem Punkt) bei der Adressangabe dazu.

Das ist alles nicht so wahnsinnig schwer. Allerdings ist es wichtig, dass die Angaben wirklich genau stimmen, also am besten in Ruhe und mit großer Sorgfalt überarbeiten.

Dann wird die Datei wieder im Verzeichnis des neuen Shops gespeichert, also per FTP oder besser per WinSCP hochladen.
Auch hier wieder unbedingt darauf achten, dass sie nicht versehentlich im alten Shop landet. Der würde dann nämlich nicht mehr funktionieren.

.httaccess überprüfen

Die Einträge in der neuen .httaccess Datei müssen überprüft werden.

Eventuelle serverspezifische Anpassungen müssen hier wieder vorgenommen werden.

Hier empfiehlt sich, die .htaccess der neuen Shopversion als Ausgangsbasis zu verwenden und eventuell vorgenommene Anpassungen der alten Version in die neue zu übernehmen.

Addins und Module für die neue randshop Version einbauen

Wer Addins oder Module für seinen randshop benutzt, muss sich die zum neuen Shop passenden beschaffen und auf den Webspace hochladen. Für bei randshop gekaufte Module finden Sie im Kundenbereich die jeweils aktuellen Versionen.

Damit ist gewährleistet, dass nach dem randshop Update wie gewohnt gearbeitet werden kann.

Jetzt ist auch der richtige Zeitpunkt um Besucherzähler wie Piwik und Informationsquellen wie Google Webmastertools in die Dateien des neuen Shops einzubinden.

Achtung Mobile Modul ab randshop 2.2: Ab randshop 2.4 ist das Template standardmäßig responsive. Wer das Mobile Modul von randshop gekauft hat, darf das Modul nicht in randshop 2.4 installieren, es würden am Smartphone die falschen (nicht vorhandenen) Template-Dateien aufgerufen werden.

Wer es mitkopiert hat, sollte am besten die Datei /includes/functions.mod.mobile.inc.php im neuen Shopordner löschen.

Randshop könnte natürlich auch den entsprechenden Block aus der db.inc.php entfernen, ist ab der 2.4 ja nicht mehr notwendig.

Produktbilder und Kategoriebilder aus images/dbimages kopieren

Zu den Produkten und Kategorien im Shop benötigen wir natürlich die passenden Bilder.

Die befinden sich in images/dbimages des alten Shop. Diesen Ordner kopieren Sie komplett mit allen Unterverzeichnissen in den neuen Shopordner.

Verzeichnisse /data und admin/data kopieren/sichern

In den Verzeichnissen /data und /admin/data befinden sich Dateien, deren Existens kaum jemand kennt:

  • /data: Datenblätter zu Produkten und Dateien, die für den Download angeboten werden.
  • /admin/data hat drei Unterverzeichnisse:
    • /export: Dateien für Datenexporte, z.B. zu Google Merchantcenter
    • /logs: Logdateien zu Bestellungen, Fehler und Mails, auch die Datei update_errors.log wird hier erstellt. Diese ist für eventuelle Fehlersuche nach dem Update ganz hilfreich.
    • /pdf: Hier liegen pdf-Dateien für Rechnungen, Lieferscheine, Stornos und Mahnungen.
      Insgesamt ist das ein Verzeichnis, dessen Dateien regelmäßig gesichert werden sollte.
      • Die Gutschein-Export-Datei beim Gutscheinmodul liegt hier.
      • und das Shopbackup, das aus dem shop-admin angestoßen werden kann, liegt auch hier

Da diese Verzeichnisse meist sehr groß sind, empfehle ich, diese Ordner erst ganz am Ende des Update zu kopieren.

Sollte nur nicht vergessen werden!

Neue Datenbank anlegen und richtig benennen

Für das randshop Update verwende ich eine neu Datenbank. Bei der Benennung wird die gleiche Logik angewandt wie beim Verzeichnis und die Datenbank mit randshop_24 benannt.
Diese Datenbank wird dann mittels Backup der Originaldatenbank als Kopie erstellt. Hierzu hat sich MySqlDumper sehr bewährt.

Alternativ lässt sich mittels phpMyAdmin sehr schnell eine Kopie der bestehenden Datenbank anlegen. Wer ssh-Zugang zu seinem Webspace hat, kann dies auch auf der Kommandozeile erledigen.

Zu diesem Zeitpunkt hat die Datenbank also noch nicht die Struktur der neuen Shopversion, sondern ist noch eine Kopie der bisherigen Datenbank inklusive der bisherigen Daten.

Um bei den Anpassungsarbeiten keine Mails an Kunden zu verschicken, leere ich die Tabelle der Kundendaten in der neu angelegten Datenbank. Im randshop ist das die Tabelle randshop_kunden.

Wer das auch so machen möchte, sollte unbedingt darauf achten, dass er sich in der richtigen Datenbank befindet!

Update ausführen - das randshop Update jetzt starten

Durch Aufruf der Updateroutine wird jetzt die Datenbankstruktur auf den aktuellen Stand gebracht.

Das erfolgt durch Eingabe von update.meineShopDomain.de/update im Browser.
Da vorher für den Shop ein Verzeichnisschutz angelegt wurde, muss jetzt natürlich Benutzername und Passwort eingegeben werden.

Mit Aufruf der Updateroutine werden die in der neuen Version hinzugekommenen Tabellen und Felder angelegt und die config.inc.php aktualisiert.

Jetzt ist der neue Shop erstmals aufrufbar. es wird zwar noch das neue Standard-Template verwendet aber es sind schon die eigenen Produkte zu sehen

Neues Template anlegen, richtig benennen und aktivieren

Um das Originaltemplate für etwaige Fehlersuche als Vorlage zur Verfügung zu haben, lege ich eine Kopie des Standardtemplates als Basis für das eigene Template an. Dazu wird im Verzeichnis \templates der gesamte Ordner standard_2015 kopiert und als neuer Ordner eingefügt.
Diese Kopie erhält einen Namen, der wieder die Version des Shops enthält. Das neue Template kann dann etwa MeinTemplate_24 heißen. Allerdings ist zu beachten, dass der Templatename nicht mehr als 20 Zeichen haben darf, mehr Platz ist im entsprechenden Feld in der Datenbank einfach nicht.

Jetzt wird im admin-Bereich des Shops das neue Template aktiviert.

Damit verwendet man das randshop Standardtemplate als Ausgangspunkt für das eigene ShopLayout und hat gleichzeitig das Original des Standardtemplates immer zur Verfügung.

Um dieses Template bearbeiten zu können, sollte man PHP Code mindestens in Grundzügen verstehen können. HTML und CSS Kenntnisse sind für Änderungen unbedingt notwendig. Auch wenn beobachtet werden kann, dass manche Shops über Fragen im Forum zu einem recht ansehlichen Ergebnis gebracht werden, ist effektive Fehlersuche oder Weiterentwicklung nur mit guten Kenntnissen am besten von PHP, HTML und CSS möglich.

Das bisher verwendete Template der Vorversion zu verwenden und anzupassen kann ich nicht empfehlen. Zu groß sind die vielen Änderungen in vielen einzelnen Dateien in der neuen Version.

Template Anpassungen durchführen, neue Funktionen testen

Jetzt ist Zeit, das neue randshop-Template auszuprobieren und auf die eigenen Erfordernisse anzupassen.

Die Anpassung des Templates dürfte der umfangreichste Teil des Updates sein. Hier ist wichtig, dass für den Kunden alle Funktionen vorhanden sind, dass die Suchmaschinen Produkte, Kategorien und erstellte CMS-Artikel gut finden können und natürlich soll der Shop auch den Kunden (und dem Shopbetreiber) gefallen.

Um das alles sicher zu stellen, wird viel Zeit in die Anpassungen und die notwendigen Tests gesteckt.

Hier zahlt es sich dann aus, wenn vor dem eigentlichen Update eine lokale Testumgebung geschaffen wurde.

Am einfachsten ist das eine Installation des randshop auf einem lokalen xampp-Webserver.

Xampp wird dazu auf dem normalen PC installiert, darauf wird dann der randshop installiert. Damit wird das Arbeiten einfacher weil schon das Hochladen auf den Webserver entfällt. Es lassen sich die Dateien quasi direkt auf dem Server bearbeiten, was man auf einem echten Server nicht machen sollte.

Übrigens arbeite ich auch bei den Anpassungen immer mit Kopien des aktuellen Templates. Dabei nummeriere ich die Templates einfach durch und kann bei einer missglückten Änderung auf das vorherige Template umschalten.

Fehleranzeige einschalten

In der /conf/config.inc.php lässt sich durch Setzen einer 1 statt der 0 (Null) die Anzeige der Fehlermeldungen aktivieren. Dazu muss die Zeile "ini_set("display_errors", 0);" angepasst werden. Also Datei runterladen, die 0 zu 1 ändern werden und die Datei wieder auf den Server hochladen.

Inbetriebnahme des neuen Shops

Sind alle notwendigen Anpassungen durchgeführt, kann der Shop als aktuelle Produktivversion in Betrieb genommen werden.
Dazu sind die folgenden Schritte (nochmals) notwendig

  1. Datenbanksicherung des noch aktuellen Shops erstellen
  2. Sofort die Sicherung in die Datenbank des neuen Shops einspielen
  3. Updateroutine des neuen Shops nochmal aufrufen, damit wird die Datenbankstruktur erneut auf den neuen Stand gebracht
  4. Einträge in conf/config.inc.php auf die Domain des aktuellen Shops anpassen/kontrollieren. Hier müssen nur noch die Url-Angaben korrigiert werden. Die Verzeichniseinträge stimmen schon.
  5. Dateien aus /data und /admin/data in das jeweils entsprechende Verzeichnis des neuen Shop kopieren.
  6. Verzeichnisschutz für den Ordner /admin anlegen und den Verzeichnisschutz für den kompletten Shop entfernen
  7. Die Domain des aktuellen Shops auf das Verzeichnis des neuen Shops umstellen. Damit sollte der neue Shop jetzt mit der richtigen Adresse erreichbar sein

Diese Schritte sollten direkt nacheinander durchgeführt werden, damit möglichst keine Daten verloren gehen.

Sollten jetzt schwerwiegende Fehler auftauchen, kann durch Umstellen des Startverzeichnis in der Domainverwaltung gleich wieder auf den alten Shop zurückgestellt werden. Dabei muss allerdings berücksichtigt werden, dass in der Zwischenzeit stattgefundene Einkäufe nur noch in dem Shop verfügbar sind, in dem sie stattgefunden haben.

Achtung: Das Umstellen der Domain geht nur dann schnell, wenn sich der alte und der neue Shop auf dem gleichen Webspace/Server befinden. Wird auf einen neuen Server umgezogen, kann es auch mal 24 Stunden dauern bis alle Nameserver die neue Adresse kennen.

Wer mag, kann sich für den alten Shop noch eine Subdomain anlegen und durch Anpassung der /conf/config.inc.php den alten Shop erreichbar machen. Sollte aber nur selten notwendig sein. Allenfalls ein Nachsehen, wie einzelne Funktionen im alten Shop aussahen, würde mir da jetzt einfallen. Vielleicht gab es aber auch eigene Anpassungen, die man als Vorlage braucht.

Kommentare:

Jetzt freue ich mich auf Ihre Erfahrungen mit Ihrem randshop Update.

Wenn Sie Fehler finden oder beim Update Erfahrungen gemacht haben, die hier erwähnt werden sollen, lassen Sie es mich wissen! Ich bau das dann mit ein.

Kommentar abgeben:

Kommentare:

Kommentar von piet |

Hallo Magnus,

ich habe ein Update gemacht, Shop wird aber nicht beim Handy (nur Handy zeigt den Fehler) korrekt angezeigt, da ich das Mobilmodul integriert habe. Man muss das Mobilmodul vor dem Update wieder löschen oder es müsste eine Anpassung geben, die das Mobilmodul nicht mehr berücksichtigt. Wurde auch im RS Forum schon besprochen, jedoch nicht geändert. Also muss das Mobilmodul raus, falls installiert.
LG Piet

Antwort von Magnus Geisler

Hallo Piet,

vielen Dank für den Hinweis, habs oben ergänzt.

Wenn das Update allerdings nach meiner Anleitung durchgeführt wird, ist das Mobile Modul nicht im neuen Shop drin. Es wird ja ein neuer Ordner mit den neuen Dateien angelegt.

Trotzdem vielen Dank und viel Erfolg mit dem neuen Shop!

viele Grüße

Magnus