Zusammenspiel von dem Gambio-Extender- und Overload-System

Heute möchte ich grob das Gambio-Extender-System anschneiden und Ihnen verständlich machen, wie man Overloads für Gambio mit dem Hook-Point-System kombiniert.

Zunächst einmal eine kurze Begriffserklärung:

Was ist das Gambio-Extender-System?

Jeder der selbst entwickelt, wünscht sich das seine Änderungen, die man am Shopsystem gemacht hat, nach einem Update erhalten bleiben. Hier sind wir wieder bei der Thematik Updatesicherheit. Im Gambio gibt es sogenannte Extender-Klassen, man könnte diese auch Andock-Points nennen, wo man mittels Gambio-Overloads diverse Stellen manipulieren, modifizieren und erweitern kann, ohne in den eigentlichen Quellcode einzugreifen. Die Programmierungen und somit der Aufbau an den Extendern laufen immer nach einem bestimmte Schema ab, so dass das Überladen der Scripte zum Kinderspiel wird. Wie man Overloads richtig anfertigt und somit die Schnittstelle anspricht, beschreibe ich in einem anderen Beitrag und verzichte an dieser Stelle, die Ewähnung von Punkten, wie dem Suffix _parent, Verzeichpfad GXUserComponents/overloads/ und so weiter und so fort.

Welche Stellen lassen Sie mittel Overloads überladen?

Laut Quelle Gambio sind derzeit folgende Bereiche in der Version 3.13.1.0 ansprechbar:

  • AdminApplicationBottomExtenderComponent
  • AdminApplicationTopExtenderComponent
  • AdminApplicationTopPrimalExtenderComponent
  • AdminCategoriesExtenderComponent
  • AdminCategoriesOverviewExtenderComponent
  • AdminEditCategoryExtenderComponent
  • AdminEditProductExtenderComponent
  • AdminHeaderExtenderComponent
  • AdminLanguageExtenderComponent
  • AdminOrderActionExtenderComponent
  • AdminOrderOverviewExtenderComponent (deprecated)
  • AdminOrderOverviewTableExtenderComponent (deprecated)
  • AdminOrderStatusMailExtenderComponent
  • ApplicationBottomExtenderComponent
  • ApplicationTopExtenderComponent
  • ApplicationTopPrimalExtenderComponent
  • CheckoutSuccessExtenderComponent
  • HeaderExtenderComponent
  • JSAccountExtenderComponent (deprecated)
  • JSAccountHistoryExtenderComponent (deprecated)
  • JSAddressBookProcessExtenderComponent (deprecated)
  • JSCallbackServiceExtenderComponent (deprecated)
  • JSCartExtenderComponent (deprecated)
  • JSCatExtenderComponent (deprecated)
  • JSCheckoutExtenderComponent (deprecated)
  • JSGlobalExtenderComponent (deprecated)
  • JSGVSendExtenderComponent (deprecated)
  • JSIndexExtenderComponent (deprecated)
  • JSManufacturersExtenderComponent (deprecated)
  • JSPriceOfferExtenderComponent (deprecated)
  • JSProductInfoExtenderComponent (deprecated)
  • JSSectionExtenderComponent
  • JSWishlistExtenderComponent (deprecated)
  • JSWithdrawalExtenderComponent (deprecated)
  • LoginExtenderComponent
  • OrderExtenderComponent
  • PDFOrderExtenderComponent
  • PostInstallationAdminExtendercomponent
  • PostInstallationShopExtendercomponent
  • PostUpdateAdminExtendercomponent
  • PostUpdateShopExtendercomponent

 

Bei den Extenders, wo deprecated in Klammern steht, sollte man darauf achten, dass man diese Hook-Points nicht mehr verwendet, da sie veraltet sind.

Wir als Full-Service-Agentur bedienen uns dieser Hook-Point-Technik und versuchen die Updatesicherheit für Ihren Shop damit zu gewährleisten bzw. zu erhöhen.

Wenn Sie Unterstützung benötigen, so können Sie uns jederzeit kontaktieren und wir werden gemeinsam mit Ihnen eine Lösung erarbeiten. Rufen Sie uns an oder nutzen Sie unser Kontaktformular!

Class-Overloading und Updatesicherheit beim Gambio Onlineshop

Heute geht es um die Thematik Class-Overloading beim Erstellen von Script-Dateien oder Modulen, die die Updatesicherheit bei einem Gambio Shopsystem erhöhen können.

Wofür braucht man das genau und welchen Mehrwert bietet diese Art von Programmierungen dem Shopbetreiber?

Folgendes erstmal zur Ausgangssituation:

Sie besitzen einen eigenen Onlineshop und mit der Zeit werden entweder aufgrund von Erweiterungen das System modifiziert oder es sollen neue Module implementiert bzw. programmiert werden. Nun werden diese Entwicklungen nicht „Updatesicher“ gestaltet, was bedeutet, dass die Änderungen an den Klassen der vorhandenen Originaldateien vorgenommen werden.

In gewissen Zeitabständen gibt es Servicepacks oder Masterupdates von Gambio, die man beispielsweise in seinem Internetshop von seinem externen Dienstleister einspielen lassen kann.

Nun gab es im Gambioshop an diverses Dateien Neuerungen und es erfordert, dass die modifizierten Originaldateien überschrieben werden müssen, um in den Genuss der neuen Features zu kommen.

Sämtliche Arbeiten und Anpassungen wären somit überschrieben und nicht mehr vorhanden, was absolut katastrophal wäre.

Also, wie bekommt man eine gewisse Sicherheit, dass die Daten und der Quellcode nicht überschrieben werden?

Das Zauberwort an dieser Stelle lautet: Class-Overloading

Dank der MainFactory kann man mit dem Überladen von PHP-Klassen das Verhalten und die Ausführung von Systemdateien beeinflussen ohne die Originaldatei anzufassen. Auch die multiple Überladung von Klassen ist hiermit möglich.

Damit das System so funktioniert, muss man sich an diverse Vorgaben halten, was den Aufbau der Datei und die Verzeichnisstruktur betrifft.

Beherzigt man diese Sachen, so kann man im Prinzip alles Überladen, was die MainFactory ausführt.

Laut Gambio sind derzeit folgende Verzeichnisse inkl. Unterverzeichnisse überladbar:

  • admin/includes/classes
  • admin/includes/gm/classes
  • gm/classes
  • GXEngine
  • GXMainComponents
  • includes/classes (außer includes/classes/scssphp)
  • includes/modules/order_total
  • includes/modules/payment
  • includes/modules/shipping
  • system/classes
  • system/core
  • system/extender
  • system/overloads

 

Des Weiteren gibt es das sogenannte Extender-System, welches zur Überladung benutzt werden kann. Hierzu mehr in einem anderen Beitrag.

Um nun zur eigentlichen Frage zurückzukommen:

Mit dem Overloading können Sie Kosten und Mehraufwand einsparen, wenn es um das Einspielen von Updates geht, da diese an zentralen Stellen ausgeführt werden und somit ohne Dokumentation ersichtlich ist, wo diese Dateien greifen.

Da das Thema relativ komplex ist, kann ich nur auf Bruchstücke und relevante Informationen für Sie als Shopbesitzer eingehen.

Wir als Full-Service-Agentur bedienen uns dieser Technik und versuchen die Updatesicherheit für Ihren Shop damit zu gewährleisten bzw. zu erhöhen.

Wenn Sie Unterstützung benötigen, so können Sie uns jederzeit kontaktieren und wir werden gemeinsam mit Ihnen eine Lösung erarbeiten. Rufen Sie uns an oder nutzen Sie unser Kontaktformular!