jugo
March 24, 2020, 1:09am
#1
Hallo zusammen,
ich baue an einem Shop (SW5.6.6 CE), bei dem es möglich sein soll, dass verschiedene Kunden von ein und dem selben Betreuer betreut werden und daher auch die selbe Email-Adresse im jeweiligen Kundendatensatz aufweisen müssen können.
Bsp. Customer 1
“number”: “CoID1”,
“email”: “test@test.net ” => Create Customer über REST-API funktioniert wunderbar.
Bsp. Customer 2
“number”: “CoID2”,
“email”: “test@test.net ” => Create Customer über REST-API wird abgelehnt mit folgendem Fehler:
{
“success”: false,
“message”: “Validation error”,
“errors”: [
“email: Diese E-Mail-Adresse ist bereits registriert”
]
}
Ich habe nun diese Duplikat-Kontrolle im Quellcode gesucht, aber nicht gefunden. An welcher Stelle lässt die sich deaktivieren?
Ich suche händeringend nach einer Möglichkeit, da dies ein KO-Kriterium für meine Shopware-Instanz wäre.
Beste Grüße
Julian
jugo
April 24, 2020, 1:14pm
#2
So,
habe es nun leider so machen müssen, dass ich die Dateien
/Shopware5/SW5.5/engine/Shopware/Bundle/AccountBundle/Constraint/CustomerEmailValidator.php
an der Stelle
/*if (!$this->isFastLogin($constraint) && $this->isExistingEmail($email, $shop, $customerId)) {
$this->addError($this->getSnippet(self::SNIPPET_MAIL_DUPLICATE));
}*/
und
/Shopware5/SW5.5/engine/Shopware/Controllers/Backend/Customer.php
an der Stelle
//if (empty($customer) && $emailValidator->isValid($mail)) {
$this->Response()->setContent(1);
// } else {
// $this->Response()->setContent('');
// }
auskommentiert habe.
Somit funktioniert zumindest mein Use-Case.
Das ganze ist natürlich nicht update-sicher.
Lässt sich das mit dem Schreiben eines Plugins lösen oder geht das nur so unschön?
Beste Grüße
Julian
shyim
April 27, 2020, 5:58am
#3
1 Like
jugo
April 27, 2020, 12:59pm
#4
klasse Shyim, das ist gut.