Beispielintegration Shopware

Zuerst müssen die RiskRules im Backend-Modul erweitert werden, sodass eigene Regeln angelegt werden können. Sind diese in der Regelkonfiguration gespeichert, können individuelle Checks mit folgendem Code für diesen Regelnamen registriert werden:

/**
* @return array
*/
public static function getSubscribedEvents()
{
return [
// frontend
'Shopware_Modules_Admin_Execute_Risk_Rule_sRiskBUERGELSCOREGT' => 'executeRiskRule',
'Enlight_Controller_Action_Frontend_Checkout_Finish' => 'onCheckoutFinish',
];
}

Ein komplettes Integrationsbeispiel können Sie aus dem CRIF Bürgel Riskmanagement Modul ableiten, das Sie auf der Status-Seite herunterladen können. Hierbei sind die Subscribes/Hooks in den Dateien Subscriber/Frontend.php sowie Subscriber/RiskManagement.php relevant und verdeutlichen die Möglichkeit der Integration. Die Unterscheidung zwischen einem aktiven und einem passiven Check ist von dem Event abhängig. Während das Riskmanagement von Shopware immer eine aktive Steuerung vornimmt, kann eine passive Steuerung durchgeführt werden, indem man ein Event vor CheckoutFinish registriert und das Erstellen der Order verhindert, sollte die Zahlart nicht zur Verfügung stehen.

/**
* function for checkout/finish performs score checks
*
* @param \Enlight_Event_EventArgs $arguments
* @return boolean
*/
public function onCheckoutFinish(\Enlight_Event_EventArgs $arguments)
{
/**@var $checkoutController Shopware_Controllers_Frontend_Checkout*/
$checkoutController = $arguments->getSubject();
$request = $checkoutController->Request();
$response = $checkoutController->Response();
$view = $checkoutController->View();
$session = Shopware()->Session();


// get order vars
$user = $session['sOrderVariables']->sUserData;
$payment = $session['sOrderVariables']->sPayment;
$basket = $session['sOrderVariables']->sBasket;

$riskRuleApplies = Shopware()->Modules()->Admin()->sManageRisks($payment["id"],$basket,$user);
if($riskRuleApplies) {
$checkoutController->redirect('checkout/shippingPayment/paymenterror/error');
return true;
}
}

Der Subscribe auf die Riskrule ist auch in einem solchen Fall sinnvoll, zumal beim zweiten Aufruf der Payment-Seite dann bereits negativ geprüfte Zahlarten ausgeblendet werden können.

Related Articles