Risk-Management erweitern um Kunden Freifeld

Hallo,

ich habe eine Checkbox als Freifeld für Kunden angelegt und möchte diese gerne im Risk-Management nutzen.

Die Zahlungsart Rechnung soll blockiert sein, wenn der Haken gesetzt ist.

Als Grundlage nehme ich das Beispiel aus den Docs: Custom Risk Rules

Also muss ich dort in /SwagCustomRiskRule/Subscriber/CustomRule.php diese Checkbox in s_user_attributes abfragen?

Aber wie komme ich an die ran?

Bzw. wie kann ich im Backend entsprechend debugen um da ran zukommen?

    public function onmgRiskUser(Enlight_Event_EventArgs $args)
    {
        $rule = $args->get('rule');
        $user = $args->get('user');

        if ($user['Freifeld'] == true ) {
            return true; // it's a risky customer
        }

        return false;
    }

 

Die Attribute kannst du in deinem Plugin so laden:

 $service = $this->container->get('shopware_attribute.data_loader');
        $sqlUserAttributes = [
            'attributes' => $service->load('s_user_attributes', $userID)
        ];

Du musst natürlich die UserID übergeben um irgendwie an die Daten zu kommen. Die sollten aber im Checkout während des Riskmanagements auch in einer der Variablen stehen.

@Moritz Naczenski schrieb:

Die Attribute kannst du in deinem Plugin so laden:

$service = $this->container->get(‚shopware_attribute.data_loader‘);
$sqlUserAttributes = [
‚attributes‘ => $service->load(‚s_user_attributes‘, $userID)
];

Du musst natürlich die UserID übergeben um irgendwie an die Daten zu kommen. Die sollten aber im Checkout während des Riskmanagements auch in einer der Variablen stehen.

Danke für deine Mühe!

Also hab ich im Plugin jetzt die Attribute. Wie finde ich darin das Freifeld? Wie kann ich mir hier im Backend etwas testweise ausgeben um $service jetzt auszulesen?

@Moritz Naczenski schrieb:

Du musst natürlich die UserID übergeben um irgendwie an die Daten zu kommen.

Und die bekomme ich irgendwie aus…?

        $user = $args->get('user');

Auch hier: Wie kann ich das auslesen?

 

@Moritz Naczenski schrieb:

Die sollten aber im Checkout während des Riskmanagements auch in einer der Variablen stehen.

Da kommen direkt die nächsten Fragen auf.

Ich denke ich verstehe hier zu wenig um das allein umzusetzen. Kannst du mir helfen hier learning by doing voranzukommen? Hast du mir hilfreiche Ressourcen?