Module von Drittanbietern

ShopFusion wurde so entwickelt, dass automatisch eine sehr hohe Kompatibilität zu Modulen von Drittanbietern besteht. Bitte lesen Sie zu diesem Thema auch den Artikel über Payment Module, in dem erläutert wird, wann es zu Kompatibilitätsproblemen kommen kann und wie Sie diese, mit minimalem Aufwand, umgehen können.

Schreiben Sie uns

Geben Sie uns Feedback, indem Sie uns anschreiben, wenn Sie Ihre Modul zukünftig mit ShopFusion-Unterstützung herausgeben. Wir empfehlen Ihr Modul dann gern als kompatible Option, im Zusammenspiel mit ShopFusion.

Eigene Module kompatibel mit ShopFusion machen

In weniger als 30 Minuten haben Sie Ihr Modul kompatibel zu ShopFusion gestaltet. Im Folgenden bekommen Sie alle nötigen Informationen und Code-Snippets, die Sie einfach in Ihr eigenes Modul implementieren. Sollten Sie dabei auf Komplikationen stossen, zögern Sie bitte nicht uns zu Kontaktieren. Wir unterstützen Sie bei der Implementierung gerne.

Wann ist die Kompatibilität in Gefahr?

Immer dann, wenn Sie in Ihrem Modul URLs generieren und diese nicht ins Frontend ausgeben, sondern im Hintergrund direkt an andere Dienste senden. Typischerweise ist dies bei Payment Modulen der Fall. Dort werden URLs an den Zahlungsanbieter übermittelt, auf die der Benutzer dann, je nach Zahlungsverlauf, zurückgeleitet wird.

Welche Anpassungen müssen in meinem Modul vorgenommen werden?

Bevor Sie eine erzeugte URL verschicken, muss diese gefixt werden. Dazu nehmen Sie einfach folgende Code-Snippets in Ihren Quellcode an entsprechender Stelle auf.

Für Magento

Fügen Sie diese Methode Ihrem Modul hinzu:

/**
 * Adjust urls to work with ShopFusion 
 * 
 * @param string $url
 * @return string fixed url
 */
private function sfFixUrl($url)
{
	if (Mage::getStoreConfig('shopfusion/settings/sfactive') == 1 && intval(Mage::getModel('core/cookie')->get('sfreq')) == 1) {
		$cmsUrl = Mage::getModel('core/cookie')->get('sfdes');
		if (strpos($cmsUrl, '?') !== FALSE) {
			$url = preg_replace("/^\w+:\/\/[^\/]+/", rawurldecode($cmsUrl), $url);
		} else {
			$url = preg_replace("/^\w+:\/\/[^\/]+\//", $cmsUrl, $url);
		}
	}
	return $url;
}

Und rufen Sie dann die Methode sfFixUrl mit Ihrem erzeugten URL als Parameter auf. Als Ergebnis erhalten Sie den für ShopFusion geeigneten URL zur weiteren Verwendung zurück:

$returnUrl = $this->sfFixUrl($returnUrl);
$cancelurl = $this->sfFixUrl($cancelurl);
$notifyUrl = $this->sfFixUrl($notifyUrl);

Hinweis
Am Besten fordern Sie eine kostenlose ShopFusion Testversion an, damit Sie direkt ausprobieren können, ob Ihre Anpassungen erfolgreich waren.

Für OXID

Lesen Sie die ShopFusion-Konfiguration aus:

$this->sfMyConfig = oxConfig::getInstance();
$this->conf = array(
    'sfActive' => $this->sfMyConfig->getShopConfVar('sfactive'),
    'sfcmsurl' => $this->sfMyConfig->getShopConfVar('sfcmsurl'),
    'sftoken' => $this->sfMyConfig->getShopConfVar('sftoken'),
    'sfhtaccessuser' => $this->sfMyConfig->getShopConfVar('sfhtaccessuser'),
    'sfhtaccesspass' => $this->sfMyConfig->getShopConfVar('sfhtaccesspass'),
    'sfconnectiontimeout' => $this->sfMyConfig->getShopConfVar('sfconnectiontimeout'),
    'sfstreamtimeout' => $this->sfMyConfig->getShopConfVar('sfstreamtimeout'),
    'request' => 'processemail'
);

Fügen Sie diese Methode Ihrem Modul hinzu:

/**
 * Adjust urls to work with ShopFusion 
 * 
 * @param string $url
 * @return string fixed url
 */
private function sfFixUrl($url) {
    $cArray = oxRegistry::get("oxUtilsServer")->getOxCookie();
 
    if ($this->conf['sfActive'] == 1 && intval($cArray['sfreq']) == 1) {
	$cmsUrl = $cArray['sfdes'];
	if (strpos($cmsUrl, '?') !== FALSE) {
	    preg_match("/^\w+:\/\/[^\/]+(.*)$/", $url, $matches);
	    $url = rawurldecode($cmsUrl).urlencode($matches[1]);
	} else {
	    $url = preg_replace("/^\w+:\/\/[^\/]+\//", $cmsUrl, $url);
	}
    }
    return $url;
}

Und rufen Sie dann die Methode sfFixUrl mit Ihrem erzeugten URL als Parameter auf. Als Ergebnis erhalten Sie den für ShopFusion geeigneten URL zur weiteren Verwendung zurück:

$returnUrl = $this->sfFixUrl($returnUrl);
$cancelurl = $this->sfFixUrl($cancelurl);
$notifyUrl = $this->sfFixUrl($notifyUrl);

Hinweis
Am Besten fordern Sie eine kostenlose ShopFusion Testversion an, damit Sie direkt ausprobieren können, ob Ihre Anpassungen erfolgreich waren.

Drucken/exportieren
QR-Code
QR-Code shopfusion:tipps_und_tricks:module_von_drittanbietern (erstellt für aktuelle Seite)