Tipps und Tricks » Zahlungsmethoden

Zahlungsmethoden von osCommerce nach modified eCommerce migrieren

Im aktuellen Fall geht es um die Zahlungsmethode für Payfast in Südafrika. An diesem Beispiel zeige ich auf, dass es zwar ein wenig Arbeit macht, ein vorhandenes Zahlungsmodul aus osCommerce zu migrieren und dass in dieser Konstellation die Migration allemal besser ist als das Rad neu zu erfinden.

Umstellung der Funktionsaufrufe

Die wesentlichen Funktionsaufrufe beginnen bei osCommerce mit "tep_", beim modified Shop mit "xtc_". Welcher Teufel die Entwickler geritten hat, als sie diese Bezeichnungen umstellten, weiß ich leider nicht. Inhaltlich sind sie oft identlisch, man kann also mit "suche und ersetze" diesen Teil der Migration schnell hinter sich bringen.

SQL-Queries für die Konfiguration umbauen

Die Datenbankstruktur der Konfiguration von osCommerce wurde umgebaut, um mehrsprachige Texte in der Administration zu ermöglichen. Daher führt der Versuch, das nach o.a. Umstellung der Funktionsaufrufe eingebaute Modul zu installieren, zu folgender Fehlermeldung:

1054 - Unknown column 'configuration_title' in 'field list'

INSERT
INTO configuration( configuration_title, configuration_key,
configuration_value, configuration_description, configuration_group_id,
sort_order, set_function, date_added ) VALUES( 'Enable Payfast?',
'MODULE_PAYMENT_PAYFAST_STATUS', 'False', 'Do you want to enable
Payfast?', '6', '0', 'xtc_cfg_select_option(array('True', 'False'),
', now() )

Die Attribute "configuration_title" und "configuration_description" sind beim modified Shop in die sprachabhängige Datei gewandert. Dabei wird der "configuration_key" um "_TITLE" für den Inhalt von "configuration_title" als Konstante definiert, analog dazu die "configuration_descritption" um "_DESC". Als Beispiel für die obige Fehlermeldung ist also in die Sprach-Datei einzutragen:

define('MODULE_PAYMENT_PAYFAST_STATUS_TITLE', 'Enable Payfast?');
define('MODULE_PAYMENT_PAYFAST_STATUS_DESC', 'Do you want to enable Payfast?';

Der Titel ist bereits im Anzeige-Modus im Backend zu sehen, die Bezeichnung wird nur im Edit-Modus angezeigt. Anschließend ist ein gründlicher Test angesagt. Immerhin könnte es sein, dass die eine oder andere "tep_"-Funktion aus osCommerce doch andere Ergebnisse liefert, als das entsprechende Gegenstück im modified Shop. Im obigen Beispiel wurde die Funktion "tep_get_version" schlicht nicht gefunden, und ich musste einen Workaround einbauen.

 

Powered by Etomite CMS.