So hat's geklappt: Ich kopiere einen shop (4.4.5) und update ihn auf 4.6.5

Von Anfänger zu Anfänger: So werden Update-Hürden überhüpft…

[U]Ich kopiere einen shop (4.4.5) und update ihn auf 4.6.5[/U]

Ich gehe vor wie beschrieben in http://wiki.oxidforge.org/Tutorials/How_to_move_OXID_eShop_from_one_server_to_another
also: Ich installiere zunächst eine frische Version 4.4.5. in einem Unterverzeichnis des laufenden Shops

Ich lade die entpackten Shopdateien im Binärmodus auf meinen Webserver (in diesem Fall ins Verzeichnis www.domain.de/klon)

Ich rufe auf: domain.de/klon/setup.
Alles grün bis auf die Dateiberechtigungen. Dokumentation: http://wiki.oxidforge.org/Installation#Files_.26_Folder_Permission_Setup

Das reicht leider nicht. Ich mache folgendes:
If after all checking the script still mentions some faulty configuration, you can check which folder is meant with this hack:

  • make a backup-copy of /core/oxsysrequirements.php
  • around line 365, put in following codeline just before "return $iModStat"
    echo $sPathToCheck;
    leider nützt das nichts – komisch, sonst hat es immer geklappt.
    Finde eine Anleitung unter http://forum.oxid-esales.com/showthread.php?t=5017&page=2#post30655, aber das kriege ich nicht hin.
    Als ich den Codeschnipsel wieder rausnehme und mal wieder die Setup-Seite refreshe, bekomme ich oben die Meldung, dass mit /www.domain.de/klon/out/media was nicht stimmt. Und siehe da: Im ftp-Programm sehe ich, dass das Verzeichnis fehlt (komisch, ich habe es doch aus Erfahrung angelegt; weil es in einer früheren Installation schon mal nicht vorhanden war).
    Verzeichnis angelegt, Verzeichnisrechte auf 777 gesetzt; auf einmal klappt das Setup…

Übrigens: In FileZilla kann man die Dateien einfach verändern, indem man mit rechts auf „ansehen/bearbeiten“ klickt. Der Transfermodus muss dafür auf „automatisch“ stehen und die Dateiberechtigungen auf 444. Dann öffnet sich dein php-Editor, und wenn du den speicherst/schließt, fragt FileZilla, ob es die geänderte Datei wieder hochladen soll…

Ich lege auf dem Server eine neue leere Datenbank an, trage die Infos ein (Demodaten nicht installieren, NICHT UTF-8 anklicken), klicke auf „Datenbank jetzt erstellen“ – keine Verbindung zur Datenbank möglich. Nochmal alles neu eingetragen – dann geht’s auf einmal.

Shopadresse wird angezeigt: /home/xxx/www.domain.de/klon/
GUT

Weiter im Text:
• Generate a dump of your “old” database.
Hab ich gemacht mit MySQLDumper
• Now import the generated dump into your new database by using the same tool that you used to create the dump. All data content should be overwritten with the backup. Be aware that by moving the database every user account will be transferred with their passwords, including your admin-account to access the backend.
Das hat im Prinzip funktioniert. Der geklonte Shop sieht etwas konfus aus, weil ich beim laufenden Shop ja die Templates angepasst habe und im geklonten Shop noch nicht.
Im Adminbereich ist alles so eingetragen wie im laufenden Shop – hier ändere ich jetzt die Maildaten, weil ich zum testen andere Emailadressen für die bestell-Mails usw. eingerichtet habe und die laufende Software zum Bestellungen abwickeln nicht durch meine Testbestellungen durcheinanderbringen will.

Bestellen funktioniert allerdings nicht (weiße Seite statt Warenkorb oder Kassenseite) – das könnte damit zu tun haben, dass im Admin des Klonshops als Zahlungsart PayPal auftaucht, obwohl ich ja das payPal-Modul gar nicht installiert habe.

Ich schalte im Admin mal den Produktivmodus aus und bekomme dann auf der Startseite die Fehlermeldung EXCEPTION_SYSTEMCOMPONENT_CLASSNOTFOUND angezeigt.

Dem könnte ich jetzt auf den Grund gehen mit Hilfe des Forums… Aber die Shop-Kopieren-Anleitung geht ja noch weiter:

• Transfer all files from your “old” shop to the new location, overwrite existing files - except of the content of /tmp - directory, the confic.inc.php and the .htaccess. It is really important to transfer the files in “binary”-mode!
• If you used a different directory for your template-set in your “old” shop, you now have to inscribe this path into the new confic.inc.php to make it work.

So – jetzt sieht der geklonte Shop tatsächlich genauso aus wie der laufende. Auch das Backend funktioniert.
Wenn ich jetzt aber den Warenkorb anzeigen lassen will, bekomme ich eine Fehlermeldung – mit PayPal stimmt was nicht:
Fatal error: This encoded file is corrupted. Please refer to http://www.zend.com/support/support_faq.php?id=loader_file_corrupt for further help in /eurqhhbj/www.domain.de/klon/modules/efi_paypal/efi_paypal_basket.php on line 0

die Seite http://www.zend.com/support/support_faq.php?id=loader_file_ gibt es natürlich nicht (mehr), wäre ja auch zu einfach gewesen…

Ich schau mir die Datei /klon/modules/efi_paypal/efi_paypal_basket.php mal an – sieht tatsächlich verhauen aus. Aber bevor ich die jetzt ersetze oder so fällt mir ein, dass ich das PayPal-Modul sowieso komplett deinstallieren soll, bevor ich update – das steht in der remove_4_6.pdf, die dem neuen PayPal-Modul beiliegt.

Bevor ich mich genau an die Anleitung halte, um das PayPal-Modul zu deinstallieren, schalte ich meinen geklonten Shop mal auf das Basic-Theme um. Scheint mir standardkonformer… (zur Erinnerung: Dazu ändere ich in der config von

// Custom  theme, a directory in out/ folder containing only modified template files
    $this->sCustomTheme = 'mein_theme';

zu

// Custom  theme, a directory in out/ folder containing only modified template files
    $this->sCustomTheme = null;

Ok, vergesst die Idee mit dem PayPal-Modul deinstallieren – die erwähnte Anleitung bezieht sich offensichtlich nur darauf, wie man das Modul aus der aktuellen Version entfernt. Ich finde nirgendwo, wie ich ein PayPal-Modul aus meiner alten Version deinstalliere.
Hier (http://forum.oxid-esales.com/showthread.php?t=14957) und anderswo im Forum steht auch, dass man erst updaten und dann das Modulk entfernen/neuinstallieren kann.

Also auf zum Update! Da gibt’s die Updates: http://wiki.oxidforge.org/Cumulative_Packages

Erst mal muss ich von 4.4.5 auf 4.4.8.
• Kopieren Sie das updateApp Verzeichnis in das Hauptverzeichnis Ihres eShops (binär nicht vergessen… Man kann’s ja nicht oft genug sagen)
• Rufen Sie mit Ihrem Browser http://www.ihrshop.de/updateApp auf. Ersetzen Sie dabei www.ihreshop.de durch die URL Ihres eShops.
Folgen Sie den Anweisungen auf dem Bildschirm.
Kopieren Sie alle Dateien aus dem Verzeichnis copy_this in das Hauptverzeichnis Ihres eShops. Das Hauptverzeichnis ist das Verzeichnis, in dem sich die config.inc.php befindet.

Löschen Sie alle Dateien aus dem /tmp Verzeichnis auf dem Server.

Normalerweise werden mit dem Update einige Templates geändert. Diese Änderungen müssen Sie in Ihre Templates übernehmen:
• Wenn Sie keine Änderungen an den Standard-Templates vorgenommen haben, können Sie die geänderten Templates einfach kopieren. Die geänderten Templates finden Sie im Verzeichnis changed_full. Kopieren Sie den Inhalt dieses Verzeichnisses in das Hauptverzeichnis Ihres eShops.
• Wenn Sie Änderungen an den Templates vorgenommen haben, müssen Sie die Templates manuell anpassen. Eine Liste aller Änderungen finden Sie unter templ_docu/index.html.
Das habe ich ja gleich gar nicht erst versucht, mein Theme in die neue Version hinüberzuretten.
Also „können Sie die geänderten Templates einfach kopieren“

Da fällt mir auf, dass eine neue .htaccess-Datei kopiert wird – in die muss ich natürlich wieder einschreiben, unter welchem Pfad mein klonshop zu finden ist:
RewriteEngine On
RewriteBase /klon/

Dann mach ich gleich weiter mit 4.4.8 auf 4.6.5 (Weiter geht’s in der ersten Antwort auf diesen Beitrag!)

Dann mach ich gleich weiter mit 4.4.8 auf 4.6.5

nochmal dasselbe also:
• Kopieren Sie das updateApp Verzeichnis in das Hauptverzeichnis Ihres eShops (binär nicht vergessen… Man kann’s ja nicht oft genug sagen, tatsächlich vergesse ich ständig umzuschalten, zwischendurch brauch ich ja immer automatisch um die Dateien zu bearbeiten)
• Rufen Sie mit Ihrem Browser http://www.ihrshop.de/updateApp auf. Ersetzen Sie dabei www.ihreshop.de durch die URL Ihres eShops.
Folgen Sie den Anweisungen auf dem Bildschirm.

Ja schade, das Update bricht ab.
Das ist mir bei einem anderen Test-Update schon mal passiert.
Da hat geholfen, NACHDEM das Update abbricht, schon folgenden Schritt auszuführen, der eigentlich erst danach dran ist:

Kopieren Sie alle Dateien aus dem Verzeichnis copy_this in das Hauptverzeichnis Ihres eShops. Das Hauptverzeichnis ist das Verzeichnis, in dem sich die config.inc.php befindet.

Dann nochmal UpdateApp aufrufen und es läuft zu Ende.

WICHTIG: Schon VOR dem Aufrufen der UpdateApp das Verzeichnis hochzuladen, hat bei mir ebenfalls zum Abbruch des Updates geführt

So rum hat es dann geklappt.
Wie empfohlen, werfe ich einen Blick auf http://wiki.oxidforge.org/Tutorials/image_handling_changes#Running_update_application
und dann auf meinen Ordner out/pictures/
Da mache ich aber nichts.

Löschen Sie alle Dateien aus dem /tmp Verzeichnis auf dem Server.

Normalerweise werden mit dem Update einige Templates geändert. Diese Änderungen müssen Sie in Ihre Templates übernehmen:
• Wenn Sie keine Änderungen an den Standard-Templates vorgenommen haben, können Sie die geänderten Templates einfach kopieren. Die geänderten Templates finden Sie im Verzeichnis changed_full. Kopieren Sie den Inhalt dieses Verzeichnisses in das Hauptverzeichnis Ihres eShops.
• Wenn Sie Änderungen an den Templates vorgenommen haben, müssen Sie die Templates manuell anpassen. Eine Liste aller Änderungen finden Sie unter templ_docu/index.html.
Das habe ich ja gleich gar nicht erst versucht, mein Theme in die neue Version hinüberzuretten.
Also „können Sie die geänderten Templates einfach kopieren“.

Da soll auch eine neue .htaccess und eine neue config rüberkopiert werden. Also muss ich diese Dateien anpassen – auch, wenn es nirgendwo steht… (die config wird sowieso nicht einfach überschrieben, weil ja die Schreibrechte nicht gesetzt wurden… In diesem Fall war das gut, ich hätte sie sonst aus Versehen wegkopiert…)

Wenn ich jetzt den Shop aufrufe, bleibt der Hauptframe weiß.
JETZT deinstalliere ich das Paypal-Modul entsprechend der remove_4_6.pdf

Was damit gemeint ist, ist mir schleierhaft:
Die Sprachdateien des neuen Moduls sind im Verzeichnis /modules/oepaypal/out/lang
gespeichert. Haben Sie die Sprachdateien des alten Moduls geändert, müssen Sie diese Änderungen
in die neuen Sprachdateien übernehmen.
Bei mir gibt’s kein /modules/oepaypal
Ignoriere ich.

Löschen Sie anschließend folgende Sprachdateien:
• /out/basic/de/paypal_lang.php
• /out/basic/en/paypal_lang.php

da sind auch noch paypal_lang.php.html – sollte ich die nicht auch löschen? Ich bennene sie um und hänge ein LOESCH an den Dateinamen (können offensichtlich gelöscht werden, da der Shop nach dem Umbenennen funktioniert hat).

Die PayPal-Grafiken des neuen Moduls sind im Verzeichnis /modules/oepaypal/out/img
gespeichert. Löschen Sie folgende PayPal-Grafiken:
• /out/basic/img/paypal-lockbox_150x50.gif
• /out/basic/img/paypal-lockbox_80x35.gif
• /out/basic/img/lockbox_EU_vectors_paypal_b.png

Die gibt’s bei mir auch nicht.

Löschen Sie bitte das Template /out/basic/tpl/inc/paypal_item.tpl (auch hier: soll paypal_item.tpl.html nicht auch weg? Ich bennene sie um und hänge ein LOESCH an den Dateinamen)

und entfernen Sie den zum
Modul gehörenden HTML-Code aus den Templates:
• /out/basic/tpl/page/checkout/basket.tpl
• /out/basic/tpl/page/checkout/order.tpl
• /out/basic/tpl/page/checkout/payment.tpl
• /out/basic/tpl/page/checkout/thankyou.tpl
• /out/basic/tpl/_left.tpl

Das haben die schön gesagt. Aber wie geht das? Ich finde in diesen Dateien keinen Hinweis auf PayPal (gesucht nach „payp“)

In oxid.css finde ich auch nichts Paypalartiges

Na ja, ich mach die Anleitung durch. Wenn was für mich nicht zutrifft, ignoriere ich es.

Ich klicke im Admin unter Service/Tools noch auf Views updaten, kann nicht schaden, denke ich mir…

Der Hauptframe ist immer noch weiß. Ich klicke im Admin unter Grundeinstellung/SEO auf SEO URLS neu berechnen, keine Ahnung, ob das was bringt… und lösche mal wieder das temp-Verzeichnis. Nützt nichts.
Aber da fällt mir ein, es gibt ja diesen tollen Bug:
http://forum.oxid-esales.com/showthread.php?t=14327
diese CMS-Seite angelegt und schon geht’s.

Bei Währungen muss ich noch den Euro eintragen:
EUR@ 1.00@ ,@ .@ €@ 2 in Grundeinstellungen -> Einstellungen -> weitere Einstellungen

Jetzt funktioniert der Shop bis auf ein paar Layout-Seltsamkeiten (Der Kasten „frisch eingetroffen“ steht über meinem Begrüßungstext und verdeckt ihn teilweise – aber das repariere ich hoffentlich im Zuge meiner Templateanpassungen.
Sogar eine Testbestellung funktioniert, ich bekomme die Bestellmail!

Wenn ich jetzt oxchkversion.php drüberlaufen lasse (gibt es im Oxid Exchange http://www.oxid-esales.com/de/exchange.html), werden mir allerdings ein paar Unstimmigkeiten gemeldet:
check_system_requirements.php Modified (details)

admin/payment_overview.php Version mismatch (details)

modules/functions.php Modified (details)

out/admin/tpl/payment_overview.tpl Version mismatch (details)

out/admin/tpl/shop_agb.tpl Version mismatch (details)

out/basic/tpl/review.tpl Modified (details)

out/basic/tpl/inc/ts_ratings.tpl Modified (details)

Muss ich mir Sorgen machen?
Ich hätte ja, sobald das Update der Datenbank geklappt hat, immer auch die Möglichkeit, die Datenbank zu sichern, einen ganz frischen Shop einzuspielen, die gesicherte Datenbank zurückzuspielen und die config sowie die .htaccess anzupassen. Dann hätte ich wahrscheinlich einen 100%-konformen Shop.
Ich mach aber mal so weiter.

Dann installiere ich mal das neue PayPal-Modul nach der Anleitung.
Dafür prüfe ich, welche php-Version ich eigentlich habe, indem ich eine Datei mit dem Inhalt
<?
phpinfo();
?>
erstelle und phpinfo.php benenne, sie ins Hauptverzeichnis meines Klonshops lade und erfahre, dass ich mit Version 5.2.17 arbeite. (ODER im Backend des Shops Service->Systeminfo)
Also muss ich mir bei http://exchange.oxid-esales.com/de/OXID/OXID-eFire-Services/Portlet-PayPal-Modul-2-0-2-for-4-5-10-4-6-x-PHP-5-3-Stable-CE-4-5-x-4-6-x.html?listtype=search&searchparam=paypal das Modul für php 5.2 runterladen.
Dann befolge ich install_4_6.pdf
Übrigens eröffne ich jetzt für meinen Klonshop extra einen neuen efire account auf https://www.oxid-efire.com, um den Klon wirklich Betriebsfähig zu testen – Die Module sind ja gerade das, was getestet werden muss…
Beachte: Das eigene PayPal-Konto muss wirklich ein Geschäftskonto sein, sonst funktioniert die Zahlung (=“API-call“) nicht (folgende Meldung hatte ich schon an den efire-Support verfasst, als mir das noch auffiel)!
Liebe Leute,
ich habe auf meinem Testshop www.domain.de/klon heute das PayPal-Portlet eingerichtet und aktiviert - es hat alles geklappt (Shop-Connector) bis auf den letzten Aktivierungsschritt des Portlets, bei dem ich bestätigen sollte, dass die Express-Checkout-Logos in meinem Shop sichtbar sind. Die waren NICHT sichtbar. Wenn ich im Shop per PayPal bestellt habe, bekam ich auch nach Stunden noch die Meldung "You do not have permissions to make this API call"
Es hat dann irgendwann geklappt – man muss wohl immer eine Weile warten, bis die Aktivierung funktioniert oder z.B. die Umstellung des PayPal-Kontos auf „Geschäftskonto“ erfolgt ist.
Allerdings wird bei mir im Shop trotzdem nicht im ersten Bestellschritt das PayPal-Logo angezeigt (was ich ganz angenehm finde – aber bei der Aktivierung des Portlets auf efire steht klipp und klar, dass nur die Anzeige dieses Logos ein Zeichen dafür wäre, dass das Modul richtig installiert sei…

Diese Action ist mir offensichtlich erspart geblieben:
http://forum.oxid-esales.com/showthread.php?t=15949&page=2#post102090

dann muss ich mal meine Theme-Einstellungen angehen
http://wiki.oxidforge.org/Tutorials/Understanding_theme_management_in_OXID_eShop_from_4.5.0
Das war erfreulich einfach – die paar templates, die ich vorher geändert hatte, konnte ich alle ohne weitere Änderungen weiter verwenden, musste sie nur in die neue Ordnerstruktur meiens Themes schreiben.
Jetzt hat eigentlich alles geklappt und ich kann unseren laufenden Shop updaten – habe ja jetzt eine siebenseitige Anleitung dafür :slight_smile: