jugo
24. März 2020 um 01:09
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
24. April 2020 um 13:14
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
27. April 2020 um 05:58
3
1 „Gefällt mir“
jugo
27. April 2020 um 12:59
4
klasse Shyim, das ist gut.