Zum Inhalt

Isotope erweitern

Isotope registriert mehrere Verhaltensfamilien über PHP-Attribute und Factories. Folge der jeweiligen Core-Implementierung von der Registrierung über die Backendkonfiguration bis zum Laufzeitverhalten.

Registrierte Typfamilien

Attribut Erweiterungsbereich
AsPayment Zahlungsarten
AsShipping Versandarten
AsDocument Dokumentrenderer
AsGallery Produktgalerien
AsRuleCondition Regelbedingungen
AsCheckoutStep Kassenschritte
AsProductFactory Produktkonstruktion
AsAttribute Produktattribute
AsProductFilter Produktabfrage-/Filterverhalten
AsProductAction Produktaktionen
AsProductCollectionAction Warenkorb-/Bestell-Collection-Aktionen
AsProductCollectionItemAction Aktionen auf Collection-Positionen

Diese liegen in Isotope\CoreBundle\DependencyInjection\Attribute. Autokonfiguration und Compiler-Passes des Bundles verbinden sie mit den jeweiligen Registries. Prüfe vor der Implementierung Konstruktor und Schnittstelle jedes Typs, da sich die Verträge unterscheiden.

Eine vollständige eigene Methode benötigt mehrere Teile

Plane für Zahlungs- oder Versandtypen Laufzeitimplementierung, Factory, Backendfelder/-palette, Übersetzungen, Konfigurationsspeicherung sowie Verfügbarkeit und Preisverhalten. Eine zusätzliche Bezeichnung in der Typauswahl reicht nicht.

Verwende die aktuelle Core-Factory als Beispiel. Prüfe vor Abhängigkeiten, ob eine Basisklasse intern ist, und binde und teste gegen unterstützte Isotope-Versionen.

Aufgaben einer Zahlungsintegration

Eine Anbieterintegration muss Konfiguration, Zahlungsinitiierung, Erfolgs-/Fehler-/Rückkehrverarbeitung, maßgebliche Anbietermeldungen, Betrags-/Währungsabgleich und doppelte Zustellung behandeln. Sie muss Ergebnisse der richtigen Bestelltransaktion zuordnen.

Vertraue keinem Browser-Abfrageparameter als Zahlungsbestätigung. Verwende das verifizierte Anbieterergebnis und definiere Wiederholungs-, Stornierungs- und Erstattungsverhalten ausdrücklich.

Dokumentrenderer

Ein Dokumenttyp erzeugt ein OrderDocument mit Nummer, Erstellungszeit, Dateiname, Inhaltstyp und Inhalt. Der Standardtyp ist HTML. Ein PDF-Renderer muss tatsächlichen PDF-Inhalt mit korrektem Medientyp zurückgeben und Schriften und Layout selbst behandeln.

Verwende bestehende Nummerierungs- und Speicherdienste über den vorgesehenen Workflow, damit erzeugte Datensätze der richtigen Bestellung zugeordnet bleiben.

Hooks

Das PHP-Attribut AsIsotopeHook ersetzt die alte Annotationssyntax. Registriere nur einen Hook, der in der installierten Version tatsächlich ausgelöst wird, und implementiere dessen genauen Argument-/Rückgabevertrag.

Bevorzuge das zweckspezifische Event, wenn es das benötigte Verhalten bereitstellt. Übersetze einen alten Hooknamen nicht mechanisch in ein neues Serviceattribut in der Annahme, dass seine Auslösung weiter existiert.

Integrationsabnahme

Teste normalen Ablauf, nicht verfügbare Konfiguration, ungültige Eingabe, Anbieterausfall, wiederholte Rückrufe und Wiederholungen. Teste gegebenenfalls gemischte Produkttypen, Mitglieder-/Gastkontext und Währungswechsel.

Halte integrationsspezifische Einrichtungsanweisungen bei der Erweiterung und verlinke sie aus den Betriebsunterlagen des Shops. Kennzeichne klar, welches Verhalten der Core und welches die Erweiterung liefert.

Quelle: Registrierung im IsotopeBundle.